X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=test_krpc.py;h=3c41d076b0225f00f2abc7940df14932a3da70fd;hb=8b06bc6271b9403934d89573af14cc90488b2a31;hp=d7f975403c8aaca6efb82237eb0497b7bd81307b;hpb=0b8fd85da9d9ec060effca7ce0911305d4d2b248;p=quix0rs-apt-p2p.git diff --git a/test_krpc.py b/test_krpc.py index d7f9754..3c41d07 100644 --- a/test_krpc.py +++ b/test_krpc.py @@ -1,22 +1,25 @@ ## Copyright 2002-2003 Andrew Loewenstern, All Rights Reserved # see LICENSE.txt for license information -from unittest import * -from krpc import * -from airhook import * +from unittest import defaultTestLoader, TestCase, TextTestRunner +import sys -KRPC.noisy = 0 +from twisted.internet import protocol +from twisted.internet import reactor -import sys +from krpc import KRPC, hostbroker, KRPC_ERROR_METHOD_UNKNOWN + +KRPC.noisy = 0 if __name__ =="__main__": - tests = unittest.defaultTestLoader.loadTestsFromNames([sys.argv[0][:-3]]) - result = unittest.TextTestRunner().run(tests) + tests = defaultTestLoader.loadTestsFromNames([sys.argv[0][:-3]]) + result = TextTestRunner().run(tests) def connectionForAddr(host, port): return host + class Receiver(protocol.Factory): protocol = KRPC def __init__(self): @@ -26,51 +29,35 @@ class Receiver(protocol.Factory): def krpc_echo(self, msg, _krpc_sender): return msg -class SimpleTest(TestCase): +def make(port): + af = Receiver() + a = hostbroker(af) + a.protocol = KRPC + p = reactor.listenUDP(port, a) + return af, a, p + +class KRPCTests(TestCase): def setUp(self): self.noisy = 0 - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4040, self.af) - self.b = listenAirhookStream(4041, self.bf) - - def testSimpleMessage(self): - self.noisy = 0 - self.a.connectionForAddr(('127.0.0.1', 4041)).protocol.sendRequest('store', {'msg' : "This is a test."}) - reactor.iterate() + self.af, self.a, self.ap = make(1180) + self.bf, self.b, self.bp = make(1181) + + def tearDown(self): + self.ap.stopListening() + self.bp.stopListening() reactor.iterate() reactor.iterate() - self.assertEqual(self.bf.buf, ["This is a test."]) -class SimpleTest(TestCase): - def setUp(self): - self.noisy = 0 - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4050, self.af) - self.b = listenAirhookStream(4051, self.bf) - def testSimpleMessage(self): self.noisy = 0 - self.a.connectionForAddr(('127.0.0.1', 4051)).protocol.sendRequest('store', {'msg' : "This is a test."}) + self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('store', {'msg' : "This is a test."}) reactor.iterate() reactor.iterate() reactor.iterate() self.assertEqual(self.bf.buf, ["This is a test."]) -class BlastTest(TestCase): - def setUp(self): - self.noisy = 0 - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4060, self.af) - self.b = listenAirhookStream(4061, self.bf) - def testMessageBlast(self): - self.a.connectionForAddr(('127.0.0.1', 4061)).protocol.sendRequest('store', {'msg' : "This is a test."}) + self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('store', {'msg' : "This is a test."}) reactor.iterate() reactor.iterate() reactor.iterate() @@ -78,23 +65,13 @@ class BlastTest(TestCase): self.bf.buf = [] for i in range(100): - self.a.connectionForAddr(('127.0.0.1', 4061)).protocol.sendRequest('store', {'msg' : "This is a test."}) + self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('store', {'msg' : "This is a test."}) reactor.iterate() #self.bf.buf = [] self.assertEqual(self.bf.buf, ["This is a test."] * 100) -class EchoTest(TestCase): - def setUp(self): - self.noisy = 0 - self.msg = None - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4042, self.af) - self.b = listenAirhookStream(4043, self.bf) - def testEcho(self): - df = self.a.connectionForAddr(('127.0.0.1', 4043)).protocol.sendRequest('echo', {'msg' : "This is a test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is a test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -107,18 +84,8 @@ class EchoTest(TestCase): msg = dict['rsp'] self.msg = msg -class ManyEchoTest(TestCase): - def setUp(self): - self.noisy = 0 - self.msg = None - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4588, self.af) - self.b = listenAirhookStream(4589, self.bf) - def testManyEcho(self): - df = self.a.connectionForAddr(('127.0.0.1', 4589)).protocol.sendRequest('echo', {'msg' : "This is a test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is a test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -127,32 +94,17 @@ class ManyEchoTest(TestCase): self.assertEqual(self.msg, "This is a test.") for i in xrange(100): self.msg = None - df = self.a.connectionForAddr(('127.0.0.1', 4589)).protocol.sendRequest('echo', {'msg' : "This is a test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is a test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() reactor.iterate() reactor.iterate() self.assertEqual(self.msg, "This is a test.") - - def gotMsg(self, dict): - _krpc_sender = dict['_krpc_sender'] - msg = dict['rsp'] - self.msg = msg -class MultiEchoTest(TestCase): - def setUp(self): - self.noisy = 0 - self.msg = None - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4048, self.af) - self.b = listenAirhookStream(4049, self.bf) - def testMultiEcho(self): self.noisy = 1 - df = self.a.connectionForAddr(('127.0.0.1', 4049)).protocol.sendRequest('echo', {'msg' : "This is a test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is a test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -160,7 +112,7 @@ class MultiEchoTest(TestCase): reactor.iterate() self.assertEqual(self.msg, "This is a test.") - df = self.a.connectionForAddr(('127.0.0.1', 4049)).protocol.sendRequest('echo', {'msg' : "This is another test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is another test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -168,7 +120,7 @@ class MultiEchoTest(TestCase): reactor.iterate() self.assertEqual(self.msg, "This is another test.") - df = self.a.connectionForAddr(('127.0.0.1', 4049)).protocol.sendRequest('echo', {'msg' : "This is yet another test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is yet another test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -176,24 +128,9 @@ class MultiEchoTest(TestCase): reactor.iterate() self.assertEqual(self.msg, "This is yet another test.") - def gotMsg(self, dict): - _krpc_sender = dict['_krpc_sender'] - msg = dict['rsp'] - self.msg = msg - -class EchoResetTest(TestCase): - def setUp(self): - self.noisy = 0 - self.msg = None - - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4078, self.af) - self.b = listenAirhookStream(4079, self.bf) - def testEchoReset(self): self.noisy = 1 - df = self.a.connectionForAddr(('127.0.0.1', 4079)).protocol.sendRequest('echo', {'msg' : "This is a test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is a test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -201,7 +138,7 @@ class EchoResetTest(TestCase): reactor.iterate() self.assertEqual(self.msg, "This is a test.") - df = self.a.connectionForAddr(('127.0.0.1', 4079)).protocol.sendRequest('echo', {'msg' : "This is another test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is another test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -209,8 +146,8 @@ class EchoResetTest(TestCase): reactor.iterate() self.assertEqual(self.msg, "This is another test.") - del(self.a.connections[('127.0.0.1', 4079)]) - df = self.a.connectionForAddr(('127.0.0.1', 4079)).protocol.sendRequest('echo', {'msg' : "This is yet another test."}) + del(self.a.connections[('127.0.0.1', 1181)]) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('echo', {'msg' : "This is yet another test."}) df.addCallback(self.gotMsg) reactor.iterate() reactor.iterate() @@ -221,23 +158,10 @@ class EchoResetTest(TestCase): def testLotsofEchoReset(self): for i in range(100): self.testEchoReset() - def gotMsg(self, dict): - _krpc_sender = dict['_krpc_sender'] - msg = dict['rsp'] - self.msg = msg - -class UnknownMethErrTest(TestCase): - def setUp(self): - self.noisy = 0 - self.err = None - self.af = Receiver() - self.bf = Receiver() - self.a = listenAirhookStream(4044, self.af) - self.b = listenAirhookStream(4045, self.bf) - + def testUnknownMeth(self): self.noisy = 1 - df = self.a.connectionForAddr(('127.0.0.1', 4045)).protocol.sendRequest('blahblah', {'msg' : "This is a test."}) + df = self.a.connectionForAddr(('127.0.0.1', 1181)).sendRequest('blahblah', {'msg' : "This is a test."}) df.addErrback(self.gotErr) reactor.iterate() reactor.iterate() @@ -247,4 +171,4 @@ class UnknownMethErrTest(TestCase): def gotErr(self, err): self.err = err.value - + \ No newline at end of file