aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/skype/test.py
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@vmiklos.hu>2013-01-13 12:51:02 +0100
committerMiklos Vajna <vmiklos@vmiklos.hu>2013-01-13 12:51:02 +0100
commit650d2b479d6aa079f41c620c15b47764ac91595a (patch)
tree3f4d36747b266df04c0001b1a3410e4a4d080909 /protocols/skype/test.py
parent9ec6b36ca5b9ee1a2a9311c4c8ebfa18c0c65b1e (diff)
skype: convert msg test to a mock-based one
Diffstat (limited to 'protocols/skype/test.py')
-rwxr-xr-xprotocols/skype/test.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/protocols/skype/test.py b/protocols/skype/test.py
new file mode 100755
index 00000000..99883747
--- /dev/null
+++ b/protocols/skype/test.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python2.7
+
+import subprocess
+import sys
+import pexpect
+import unittest
+import shutil
+import os
+import hashlib
+
+class Test(unittest.TestCase):
+ def openssl(self, args):
+ with open(os.devnull, "w") as devnull:
+ proc = subprocess.Popen(['openssl'] + args, stdin=subprocess.PIPE, stderr=devnull)
+ for i in range(6):
+ proc.stdin.write("\n")
+ proc.stdin.close()
+ proc.communicate()
+ def mock(self, name):
+ skyped_log = open("t/skyped.log", "w")
+ skyped = subprocess.Popen([sys.executable, "skyped.py", "-c", "t/skyped/skyped.conf", "-n", "-d", "-m", "t/%s-skyped.mock" % name],
+ stdout=skyped_log, stderr=subprocess.STDOUT)
+
+ try:
+ bitlbee = pexpect.spawn('../../bitlbee', ['-d', 't/bitlbee'])
+ bitlbee_mock = open("t/%s-bitlbee.mock" % name)
+ for i in bitlbee_mock.readlines():
+ line = i.strip()
+ if line.startswith(">> "):
+ bitlbee.expect(line[3:], timeout=10)
+ elif line.startswith("<< "):
+ bitlbee.sendline(line[3:])
+ bitlbee_mock.close()
+ bitlbee.close()
+ finally:
+ skyped.terminate()
+ skyped.communicate()
+ skyped_log.close()
+
+ def setUp(self):
+ try:
+ shutil.rmtree("t/bitlbee")
+ except OSError:
+ pass
+ os.makedirs("t/bitlbee")
+
+ try:
+ shutil.rmtree("t/skyped")
+ except OSError:
+ pass
+ os.makedirs("t/skyped")
+ cwd = os.getcwd()
+ os.chdir("t/skyped")
+ shutil.copyfile("../../skyped.cnf", "skyped.cnf")
+ self.openssl(['req', '-new', '-x509', '-days', '365', '-nodes', '-config', 'skyped.cnf', '-out', 'skyped.cert.pem', '-keyout', 'skyped.key.pem'])
+ with open("skyped.conf", "w") as sock:
+ sock.write("[skyped]\n")
+ sock.write("username = alice\n")
+ sock.write("password = %s\n" % hashlib.sha1("foo").hexdigest())
+ sock.write("cert = %s/skyped.cert.pem\n" % os.getcwd())
+ sock.write("key = %s/skyped.key.pem\n" % os.getcwd())
+ sock.write("port = 2727\n")
+ os.chdir(cwd)
+
+
+ def testMsg(self):
+ self.mock("msg")
+
+ def testLogin(self):
+ self.mock("login")
+
+ def testInfo(self):
+ self.mock("info")
+
+ def testCall(self):
+ self.mock("call")
+
+if __name__ == '__main__':
+ unittest.main()