Changeset 12f500f for protocols/skype/test.py
- Timestamp:
- 2013-02-21T13:16:26Z (11 years ago)
- Branches:
- master
- Children:
- 06eef80
- Parents:
- e4f5ca8 (diff), 9754c2f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/skype/test.py
re4f5ca8 r12f500f 9 9 import hashlib 10 10 11 def openssl(args): 12 with open(os.devnull, "w") as devnull: 13 proc = subprocess.Popen(['openssl'] + args, stdin=subprocess.PIPE, stderr=devnull) 14 for i in range(6): 15 proc.stdin.write("\n") 16 proc.stdin.close() 17 proc.communicate() 18 def setupSkyped(): 19 try: 20 shutil.rmtree("t/skyped") 21 except OSError: 22 pass 23 os.makedirs("t/skyped") 24 cwd = os.getcwd() 25 os.chdir("t/skyped") 26 try: 27 shutil.copyfile("../../skyped.cnf", "skyped.cnf") 28 openssl(['req', '-new', '-x509', '-days', '365', '-nodes', '-config', 'skyped.cnf', '-out', 'skyped.cert.pem', '-keyout', 'skyped.key.pem']) 29 with open("skyped.conf", "w") as sock: 30 sock.write("[skyped]\n") 31 sock.write("username = alice\n") 32 sock.write("password = %s\n" % hashlib.sha1("foo").hexdigest()) 33 sock.write("cert = %s/skyped.cert.pem\n" % os.getcwd()) 34 sock.write("key = %s/skyped.key.pem\n" % os.getcwd()) 35 sock.write("port = 2727\n") 36 finally: 37 os.chdir(cwd) 38 11 39 class Test(unittest.TestCase): 12 def openssl(self, args):13 with open(os.devnull, "w") as devnull:14 proc = subprocess.Popen(['openssl'] + args, stdin=subprocess.PIPE, stderr=devnull)15 for i in range(6):16 proc.stdin.write("\n")17 proc.stdin.close()18 proc.communicate()19 40 def mock(self, name): 20 skyped_log = open("t/skyped.log", "w") 21 skyped = subprocess.Popen([sys.executable, "skyped.py", "-c", "t/skyped/skyped.conf", "-n", "-d", "-m", "t/%s-skyped.mock" % name], 41 with open("t/skyped.log", "w") as skyped_log,\ 42 open("t/pexpect.log", "w") as pexpect_log: 43 skyped = subprocess.Popen([sys.executable, "skyped.py", 44 "-c", "t/skyped/skyped.conf", "-n", "-d", "-m", "t/%s-skyped.mock" % name], 22 45 stdout=skyped_log, stderr=subprocess.STDOUT) 23 24 try: 25 bitlbee = pexpect.spawn('../../bitlbee', ['-d', 't/bitlbee']) 26 bitlbee_mock = open("t/%s-bitlbee.mock" % name) 27 for i in bitlbee_mock.readlines(): 28 line = i.strip() 29 if line.startswith(">> "): 30 bitlbee.expect_exact(line[3:], timeout=10) 31 elif line.startswith("<< "): 32 bitlbee.sendline(line[3:]) 33 bitlbee_mock.close() 34 bitlbee.close() 35 finally: 36 skyped.terminate() 37 skyped.communicate() 38 skyped_log.close() 46 try: 47 bitlbee = pexpect.spawn('../../bitlbee', ['-d', 't/bitlbee'], logfile=pexpect_log) 48 if os.environ.get('ATTACH_GDB'): 49 subprocess.Popen(['gdb', '-batch-silent', 50 '-ex', 'set logging overwrite on', 51 '-ex', 'set logging file t/gdb-%s.log' % bitlbee.pid, 52 '-ex', 'set logging on', 53 '-ex', 'handle all pass nostop noprint', 54 '-ex', 'handle SIGSEGV pass stop print', 55 '-ex', 'set pagination 0', 56 '-ex', 'continue', 57 '-ex', 'backtrace full', 58 '-ex', 'info registers', 59 '-ex', 'thread apply all backtrace', 60 '-ex', 'quit', 61 '../../bitlbee', str(bitlbee.pid) ]) 62 bitlbee_mock = open("t/%s-bitlbee.mock" % name) 63 for i in bitlbee_mock.readlines(): 64 line = i.strip() 65 if line.startswith(">> "): 66 bitlbee.expect_exact(line[3:], timeout=10) 67 elif line.startswith("<< "): 68 bitlbee.sendline(line[3:]) 69 bitlbee_mock.close() 70 bitlbee.close() 71 finally: 72 skyped.terminate() 73 skyped.communicate() 39 74 40 75 def setUp(self): … … 44 79 pass 45 80 os.makedirs("t/bitlbee") 46 47 try:48 shutil.rmtree("t/skyped")49 except OSError:50 pass51 os.makedirs("t/skyped")52 cwd = os.getcwd()53 os.chdir("t/skyped")54 shutil.copyfile("../../skyped.cnf", "skyped.cnf")55 self.openssl(['req', '-new', '-x509', '-days', '365', '-nodes', '-config', 'skyped.cnf', '-out', 'skyped.cert.pem', '-keyout', 'skyped.key.pem'])56 with open("skyped.conf", "w") as sock:57 sock.write("[skyped]\n")58 sock.write("username = alice\n")59 sock.write("password = %s\n" % hashlib.sha1("foo").hexdigest())60 sock.write("cert = %s/skyped.cert.pem\n" % os.getcwd())61 sock.write("key = %s/skyped.key.pem\n" % os.getcwd())62 sock.write("port = 2727\n")63 os.chdir(cwd)64 65 81 66 82 def testMsg(self): … … 72 88 def testInfo(self): 73 89 self.mock("info") 74 90 75 91 def testCall(self): 76 92 self.mock("call") 77 93 78 94 def testCallFailed(self): 79 95 self.mock("call-failed") 80 96 81 97 def testAddYes(self): 82 98 self.mock("add-yes") 83 99 84 def testAddNo(self): 85 self.mock("add-no") 100 def testAddedYes(self): 101 self.mock("added-yes") 102 103 def testAddedNo(self): 104 self.mock("added-no") 86 105 87 106 def testGroupchatInvited(self): … … 90 109 def testGroupchatInvite(self): 91 110 self.mock("groupchat-invite") 92 111 93 112 def testCalledYes(self): 94 113 self.mock("called-yes") … … 103 122 self.mock("group-read") 104 123 124 def testCtcpHelp(self): 125 self.mock("ctcp-help") 126 127 def testSetMoodText(self): 128 self.mock("set-mood-text") 129 105 130 if __name__ == '__main__': 131 setupSkyped() 106 132 unittest.main()
Note: See TracChangeset
for help on using the changeset viewer.