def setUp(self): self.peer1 = BTPeer(5, 15151) self.peer1.debug = True self.peer2 = BTPeer(5, 25252) self.peer2.debug = True self.t1 = threading.Thread(target = self.peer1.mainloop) self.t2 = threading.Thread(target = self.peer2.mainloop)
def __init__(self, maxpeers, serverport, name, register_server): BTPeer.__init__(self, maxpeers, serverport) self.requests = set() self.name = name self.register_server = register_server self.ext_ip = None handlers = { "DISC": self.handle_discovery, "REGR": self.handle_register_reply, "DISR": self.handle_discovery_reply, "BINT": self.handle_forward, "BTCR": self.handle_forward, "TRSC": self.handle_forward, "INIT": self.handle_forward } # Add node types here self.node_types = { "translation": "TRANSLATION", "broker": "BROKER", "transcription": "TRANSCRIPTION", "interface": "INTERFACE" } # Add Message to node type mapping here self.message_node_mapping = { "TRAN": "TRANSLATION", "BTCR": "BROKER", "TRSC": "TRANSCRIPTION", "BINT": "BROKER" } self.registered = False self.peerType = {} for m_type in handlers.keys(): self.addhandler(m_type, handlers[m_type])
def __init__(self, maxpeers, serverport): BTPeer.__init__(self, maxpeers, serverport) self.requests = set() handlers = { "TRAN": self.handle_forward, "ACKT": self.handle_forward, "DISC": self.handle_forward, "REGS": self.handle_register, "REGR": self.handle_forward, "BINT": self.handle_forward, "BTCR": self.handle_forward, "TRSC": self.handle_forward, "INIT": self.handle_forward } for m_type in handlers.keys(): self.addhandler(m_type, handlers[m_type]) self.nodes = {} if os.path.exists('interface-info.txt'): os.remove('interface-info.txt')
class BTPeerTest(unittest.TestCase): def setUp(self): self.peer1 = BTPeer(5, 15151) self.peer1.debug = True self.peer2 = BTPeer(5, 25252) self.peer2.debug = True self.t1 = threading.Thread(target = self.peer1.mainloop) self.t2 = threading.Thread(target = self.peer2.mainloop) def test_simple(self): m1 = 'hello from peer2' m2 = 'HELLO FROM PEER1' returns = {} def handler1(peerconn, msgdata, returns=returns): print peerconn, msgdata returns['p1'] = msgdata def handler2(peerconn, msgdata, returns=returns): print peerconn, msgdata returns['p2'] = msgdata self.peer1.addhandler('HELL', handler1) self.peer2.addhandler('HELL', handler2) self.t1.start() self.t2.start() time.sleep(0.5) self.peer1.connectandsend('localhost', 25252, 'HELL', m2) self.peer2.connectandsend('localhost', 15151, 'HELL', m1) time.sleep(0.1) self.assertEqual(returns['p1'], m1) self.assertEqual(returns['p2'], m2) def tearDown(self): self.peer1.shutdown = True self.peer2.shutdown = True # motivate threads to exit try: c = BTPeerConnection(None, 'localhost', 15151) c.close() except socket.error: pass try: c = BTPeerConnection(None, 'localhost', 25252) c.close() except socket.error: pass