def __init__(self, kserver, signing_key):
     """
     A high level class for sending direct, market messages to other nodes.
     A node will need one of these to participate in buying and selling.
     Should be initialized after the Kademlia server.
     """
     self.kserver = kserver
     self.signing_key = signing_key
     self.router = kserver.protocol.router
     self.protocol = MarketProtocol(kserver.node.getProto(), self.router, signing_key)
 def test_MarketProtocol_rpc_get_image_invalid_image_hash(self):
     catcher = self.catcher
     mp = MarketProtocol(self.node, self.router, 0, 0)
     self.assertEqual(None, mp.rpc_get_image(mknode(), "invalid_hash"))
     catch_exception = catcher.pop()
     exception_message = catcher.pop()
     self.assertEquals(
         catch_exception["message"][0],
         "[WARNING] could not find image 696e76616c69645f68617368")
     self.assertEquals(
         exception_message["message"][0],
         "[WARNING] Image hash is not 20 characters invalid_hash")
 def test_MarketProtocol_add_listener_correctly(self):
     mp = MarketProtocol(0, 0, 0, 0)
     self.assertEqual(len(mp.listeners), 0)
     mp.add_listener(3)
     self.assertEqual(len(mp.listeners), 1)
 def test_MarketProtocol_connect_multiplexer_correctly(self):
     mp = MarketProtocol(0, 0, 0, 0)
     self.assertEqual(mp.multiplexer, None)
     mp.connect_multiplexer("3")
     self.assertEqual(mp.multiplexer, "3")