Beispiel #1
0
    def _patch_counter_and_input_krpc(self,
                                      krpc,
                                      method_name,
                                      num_calls=1,
                                      address=None):
        if address is None:
            address = ("127.0.0.1", 8888)
        k_messenger = KRPC_Sender(TreeRoutingTable, 2**50)
        # Patch in our counter
        counter = Counter()
        setattr(k_messenger, method_name, counter)

        # Pass in the krpc
        k_messenger.datagramReceived(krpc_coder.encode(krpc), address)
        self.assertEquals(num_calls, counter.count)
Beispiel #2
0
 def test_responseReceived(self):
     # Make a query that we will "send"
     query = Query()
     query.rpctype = "ping"
     # Make the protocol and patch in our counter, transport, and reactor
     counter = Counter()
     k_messenger = KRPC_Sender(TreeRoutingTable, 2**50)
     k_messenger.transport = HollowTransport()
     k_messenger.responseReceived = counter
     # Send the query and receive the response
     k_messenger.sendQuery(query, address, timeout)
     self.assertTrue(query._transaction_id in k_messenger._transactions)
     # Make a response that we will "receive"
     response = query.build_response()
     response._from = 9
     k_messenger.datagramReceived(krpc_coder.encode(response), address)
     _restore_reactor()
     self.assertEquals(1, counter.count)
Beispiel #3
0
 def setUp(self):
     _swap_out_reactor()
     self.k_messenger = KRPC_Sender(TreeRoutingTable, 2**50)
     self.k_messenger.transport = HollowTransport()
     self.query = Query()
     self.query.rpctype = "ping"