From 1146e216e8cf8c6fca77f3b5325ccd86078f827a Mon Sep 17 00:00:00 2001 From: Mike Kazantsev Date: Mon, 11 Feb 2013 13:56:03 +0100 Subject: skype.test: do proper cleanup of skyped process despite possible exceptions, keep pexpect.log --- protocols/skype/test.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index 9f4c13ce..6d4e9daf 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -17,25 +17,25 @@ class Test(unittest.TestCase): 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], + with open("t/skyped.log", "w") as skyped_log,\ + open("t/pexpect.log", "w") as pexpect_log: + 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_exact(line[3:], timeout=10) - elif line.startswith("<< "): - bitlbee.sendline(line[3:]) - bitlbee_mock.close() - bitlbee.close() - finally: - skyped.terminate() - skyped.communicate() - skyped_log.close() + try: + bitlbee = pexpect.spawn('../../bitlbee', ['-d', 't/bitlbee'], logfile=pexpect_log) + bitlbee_mock = open("t/%s-bitlbee.mock" % name) + for i in bitlbee_mock.readlines(): + line = i.strip() + if line.startswith(">> "): + bitlbee.expect_exact(line[3:], timeout=10) + elif line.startswith("<< "): + bitlbee.sendline(line[3:]) + bitlbee_mock.close() + bitlbee.close() + finally: + skyped.terminate() + skyped.communicate() def setUp(self): try: -- cgit v1.2.3 From ee3bccddcc2c197444be1bb685aa893e0ae2f910 Mon Sep 17 00:00:00 2001 From: Mike Kazantsev Date: Mon, 11 Feb 2013 13:56:03 +0100 Subject: skype: make chdirs work more reliably between tests --- protocols/skype/test.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index 6d4e9daf..f20039e2 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -51,16 +51,18 @@ class Test(unittest.TestCase): 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) + try: + 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") + finally: + os.chdir(cwd) def testMsg(self): @@ -71,13 +73,13 @@ class Test(unittest.TestCase): def testInfo(self): self.mock("info") - + def testCall(self): self.mock("call") - + def testCallFailed(self): self.mock("call-failed") - + def testAddYes(self): self.mock("add-yes") @@ -89,7 +91,7 @@ class Test(unittest.TestCase): def testGroupchatInvite(self): self.mock("groupchat-invite") - + def testCalledYes(self): self.mock("called-yes") -- cgit v1.2.3 From 3e238504209e998064f0906c9edfced9713ba94d Mon Sep 17 00:00:00 2001 From: Mike Kazantsev Date: Mon, 11 Feb 2013 13:56:03 +0100 Subject: skype: add ATTACH_GDB env flag, extend hacking instructions with info on pexpect/gdb --- protocols/skype/test.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index f20039e2..b3f25f46 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -24,6 +24,20 @@ class Test(unittest.TestCase): stdout=skyped_log, stderr=subprocess.STDOUT) try: bitlbee = pexpect.spawn('../../bitlbee', ['-d', 't/bitlbee'], logfile=pexpect_log) + if os.environ.get('ATTACH_GDB'): + subprocess.Popen(['gdb', '-batch-silent', + '-ex', 'set logging overwrite on', + '-ex', 'set logging file t/gdb-%s.log' % bitlbee.pid, + '-ex', 'set logging on', + '-ex', 'handle all pass nostop noprint', + '-ex', 'handle SIGSEGV pass stop print', + '-ex', 'set pagination 0', + '-ex', 'continue', + '-ex', 'backtrace full', + '-ex', 'info registers', + '-ex', 'thread apply all backtrace', + '-ex', 'quit', + '../../bitlbee', str(bitlbee.pid) ]) bitlbee_mock = open("t/%s-bitlbee.mock" % name) for i in bitlbee_mock.readlines(): line = i.strip() -- cgit v1.2.3 From 33ed4558048f8dd5a29275658b3d1892b7b4dd74 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sat, 16 Feb 2013 14:23:11 +0100 Subject: skype: rename these tests, these are about we are added, not about we add --- protocols/skype/test.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index b3f25f46..78f75bb1 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -94,11 +94,11 @@ class Test(unittest.TestCase): def testCallFailed(self): self.mock("call-failed") - def testAddYes(self): - self.mock("add-yes") + def testAddedYes(self): + self.mock("added-yes") - def testAddNo(self): - self.mock("add-no") + def testAddedNo(self): + self.mock("added-no") def testGroupchatInvited(self): self.mock("groupchat-invited") -- cgit v1.2.3 From 78e103e7e5c1d58a59d65a4e90cd5f9fbee92cee Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sat, 16 Feb 2013 14:33:46 +0100 Subject: test skype_add_buddy() --- protocols/skype/test.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index 78f75bb1..6c967ed2 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -94,6 +94,9 @@ class Test(unittest.TestCase): def testCallFailed(self): self.mock("call-failed") + def testAddYes(self): + self.mock("add-yes") + def testAddedYes(self): self.mock("added-yes") -- cgit v1.2.3 From 3a920204f1bbeadf4971530ee91514b89652610b Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sun, 17 Feb 2013 14:06:51 +0100 Subject: test skype_buddy_action_list() --- protocols/skype/test.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index 6c967ed2..9f92f252 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -121,5 +121,8 @@ class Test(unittest.TestCase): def testGroupRead(self): self.mock("group-read") + def testCtcpHelp(self): + self.mock("ctcp-help") + if __name__ == '__main__': unittest.main() -- cgit v1.2.3 From 130f7b85cf0d75da8dbb98df6d52595fe24c65c9 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sun, 17 Feb 2013 20:51:11 +0100 Subject: test skype_set_mood_text() --- protocols/skype/test.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index 9f92f252..ab90c955 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -124,5 +124,8 @@ class Test(unittest.TestCase): def testCtcpHelp(self): self.mock("ctcp-help") + def testSetMoodText(self): + self.mock("set-mood-text") + if __name__ == '__main__': unittest.main() -- cgit v1.2.3 From 94d9511f4e834f6082c2eadf6d1d35a65d162155 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sun, 17 Feb 2013 20:51:11 +0100 Subject: skype tests: run all tests with a single skyped config This makes them a bit faster, and there is no need to have separate skyped configs for each test ATM. --- protocols/skype/test.py | 57 +++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 28 deletions(-) (limited to 'protocols/skype/test.py') diff --git a/protocols/skype/test.py b/protocols/skype/test.py index ab90c955..632ae124 100755 --- a/protocols/skype/test.py +++ b/protocols/skype/test.py @@ -8,14 +8,35 @@ import shutil import os import hashlib +def openssl(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 setupSkyped(): + try: + shutil.rmtree("t/skyped") + except OSError: + pass + os.makedirs("t/skyped") + cwd = os.getcwd() + os.chdir("t/skyped") + try: + shutil.copyfile("../../skyped.cnf", "skyped.cnf") + 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") + finally: + os.chdir(cwd) + 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): with open("t/skyped.log", "w") as skyped_log,\ open("t/pexpect.log", "w") as pexpect_log: @@ -58,27 +79,6 @@ class Test(unittest.TestCase): pass os.makedirs("t/bitlbee") - try: - shutil.rmtree("t/skyped") - except OSError: - pass - os.makedirs("t/skyped") - cwd = os.getcwd() - os.chdir("t/skyped") - try: - 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") - finally: - os.chdir(cwd) - - def testMsg(self): self.mock("msg") @@ -128,4 +128,5 @@ class Test(unittest.TestCase): self.mock("set-mood-text") if __name__ == '__main__': + setupSkyped() unittest.main() -- cgit v1.2.3