Beispiel #1
0
class TestRoutingNode:

    def setup(self):
        self.rnode1 = RoutingNode(Node(addr1, id1))
        self.rnode2 = RoutingNode(Node(addr2, id2))

    def test_rnode(self):
        RTT1 = 1
        RTT2 = 2
        assert self.rnode1.timeouts_in_a_row() == 0
        self.rnode1.on_timeout()
        self.rnode1.on_timeout()
        self.rnode1.on_timeout()
        assert self.rnode1.timeouts_in_a_row() == 3
        assert self.rnode1.timeouts_in_a_row(False) == 3
        self.rnode1.on_query_received()
        assert self.rnode1.timeouts_in_a_row() == 0
        eq_(self.rnode1.timeouts_in_a_row(False), 3)
        self.rnode1.on_response_received(1)
        assert self.rnode1.timeouts_in_a_row() == 0
        assert self.rnode1.timeouts_in_a_row(False) == 0
        assert self.rnode1._num_queries == 1
        assert self.rnode1._num_responses == 1
        assert self.rnode1._num_timeouts == 3        
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT1)
        self.rnode1.on_response_received(RTT2)
        eq_(self.rnode1._rtt_avg,
            RTT1 * (1 - LAST_RTT_W) + RTT2 * LAST_RTT_W)
        self.rnode1.on_timeout()
        self.rnode1.on_timeout()
    '''
    def _test_rank(self):
        eq_(self.rnode1.rank(), 0)
        self.rnode1.on_query_received()
        eq_(self.rnode1.rank(), 0)
        self.rnode1.on_response_received()
        eq_(self.rnode1.rank(), 1)
    '''
    def test_repr(self):
        _ = repr(RoutingNode(tc.CLIENT_NODE))

    def test_get_rnode(self):
        eq_(self.rnode1.get_rnode(),
            self.rnode1)