7 if __name__ =="__main__":
8 tests = unittest.defaultTestLoader.loadTestsFromNames([sys.argv[0][:-3]])
9 result = unittest.TextTestRunner().run(tests)
12 def connectionForAddr(host, port):
15 class Receiver(protocol.Factory):
19 def krpc_store(self, msg, _krpc_sender):
21 def krpc_echo(self, msg, _krpc_sender):
24 class SimpleTest(TestCase):
30 self.a = listenAirhookStream(4040, self.af)
31 self.b = listenAirhookStream(4041, self.bf)
33 def testSimpleMessage(self):
35 self.a.connectionForAddr(('127.0.0.1', 4041)).protocol.sendRequest('store', {'msg' : "This is a test."})
39 self.assertEqual(self.bf.buf, ["This is a test."])
41 class SimpleTest(TestCase):
47 self.a = listenAirhookStream(4050, self.af)
48 self.b = listenAirhookStream(4051, self.bf)
50 def testSimpleMessage(self):
52 self.a.connectionForAddr(('127.0.0.1', 4051)).protocol.sendRequest('store', {'msg' : "This is a test."})
56 self.assertEqual(self.bf.buf, ["This is a test."])
58 class EchoTest(TestCase):
65 self.a = listenAirhookStream(4042, self.af)
66 self.b = listenAirhookStream(4043, self.bf)
70 df = self.a.connectionForAddr(('127.0.0.1', 4043)).protocol.sendRequest('echo', {'msg' : "This is a test."})
71 df.addCallback(self.gotMsg)
76 self.assertEqual(self.msg, "This is a test.")
78 def gotMsg(self, msg):
81 class MultiEchoTest(TestCase):
88 self.a = listenAirhookStream(4048, self.af)
89 self.b = listenAirhookStream(4049, self.bf)
91 def testMultiEcho(self):
93 df = self.a.connectionForAddr(('127.0.0.1', 4049)).protocol.sendRequest('echo', {'msg' : "This is a test."})
94 df.addCallback(self.gotMsg)
99 self.assertEqual(self.msg, "This is a test.")
101 df = self.a.connectionForAddr(('127.0.0.1', 4049)).protocol.sendRequest('echo', {'msg' : "This is another test."})
102 df.addCallback(self.gotMsg)
107 self.assertEqual(self.msg, "This is another test.")
109 df = self.a.connectionForAddr(('127.0.0.1', 4049)).protocol.sendRequest('echo', {'msg' : "This is yet another test."})
110 df.addCallback(self.gotMsg)
115 self.assertEqual(self.msg, "This is yet another test.")
117 def gotMsg(self, msg):
120 class UnknownMethErrTest(TestCase):
126 self.a = listenAirhookStream(4044, self.af)
127 self.b = listenAirhookStream(4045, self.bf)
129 def testUnknownMeth(self):
131 df = self.a.connectionForAddr(('127.0.0.1', 4045)).protocol.sendRequest('blahblah', {'msg' : "This is a test."})
132 df.addErrback(self.gotErr)
137 self.assertEqual(self.err, KRPC_ERROR_METHOD_UNKNOWN)
139 def gotErr(self, err):