Exemple #1
0
class TestRoutingNode:

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

    def test_timeouts_in_a_row(self):
        rnode = RoutingNode(tc.NODES[0], 1)
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 0)
        # got query
        rnode.add_event(time.time(), node.QUERY)
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 0)
        # got timeout
        rnode.add_event(time.time(), node.TIMEOUT)
        eq_(rnode.timeouts_in_a_row(), 1)
        eq_(rnode.timeouts_in_a_row(True), 1)
        eq_(rnode.timeouts_in_a_row(False), 1)
        # got query
        rnode.add_event(time.time(), node.QUERY)
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 1)
        # got timeout
        rnode.add_event(time.time(), node.TIMEOUT)
        eq_(rnode.timeouts_in_a_row(), 1)
        eq_(rnode.timeouts_in_a_row(True), 1)
        eq_(rnode.timeouts_in_a_row(False), 2)
        # got response
        rnode.add_event(time.time(), node.RESPONSE)
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 0)
        
    def test_repr(self):
        _ = repr(RoutingNode(tc.CLIENT_NODE, 1))

    def test_get_node_and_get_rnode(self):
        rn1 = self.rnode1.get_rnode()
        eq_(rn1, self.rnode1)
        n1 = rn1.get_node()
        eq_(n1, rn1)
        rn1_duplicate = n1.get_rnode(1)
        eq_(rn1_duplicate, rn1)
Exemple #2
0
class TestRoutingNode:
    def setup(self):
        self.rnode1 = RoutingNode(Node(addr1, id1), 1)
        self.rnode2 = RoutingNode(Node(addr2, id2), 1)

    def test_timeouts_in_a_row(self):
        rnode = RoutingNode(tc.NODES[0], 1)
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 0)
        # got query
        rnode.last_events.append((time.time(), node.QUERY))
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 0)
        # got timeout
        rnode.last_events.append((time.time(), node.TIMEOUT))
        eq_(rnode.timeouts_in_a_row(), 1)
        eq_(rnode.timeouts_in_a_row(True), 1)
        eq_(rnode.timeouts_in_a_row(False), 1)
        # got query
        rnode.last_events.append((time.time(), node.QUERY))
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 1)
        # got timeout
        rnode.last_events.append((time.time(), node.TIMEOUT))
        eq_(rnode.timeouts_in_a_row(), 1)
        eq_(rnode.timeouts_in_a_row(True), 1)
        eq_(rnode.timeouts_in_a_row(False), 2)
        # got response
        rnode.last_events.append((time.time(), node.RESPONSE))
        eq_(rnode.timeouts_in_a_row(), 0)
        eq_(rnode.timeouts_in_a_row(True), 0)
        eq_(rnode.timeouts_in_a_row(False), 0)

    def test_repr(self):
        _ = repr(RoutingNode(tc.CLIENT_NODE, 1))

    def test_get_node_and_get_rnode(self):
        rn1 = self.rnode1.get_rnode()
        eq_(rn1, self.rnode1)
        n1 = rn1.get_node()
        eq_(n1, rn1)
        rn1_duplicate = n1.get_rnode(1)
        eq_(rn1_duplicate, rn1)
Exemple #3
0
 def test_timeouts_in_a_row(self):
     rnode = RoutingNode(tc.NODES[0], 1)
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 0)
     # got query
     rnode.add_event(time.time(), node.QUERY)
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 0)
     # got timeout
     rnode.add_event(time.time(), node.TIMEOUT)
     eq_(rnode.timeouts_in_a_row(), 1)
     eq_(rnode.timeouts_in_a_row(True), 1)
     eq_(rnode.timeouts_in_a_row(False), 1)
     # got query
     rnode.add_event(time.time(), node.QUERY)
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 1)
     # got timeout
     rnode.add_event(time.time(), node.TIMEOUT)
     eq_(rnode.timeouts_in_a_row(), 1)
     eq_(rnode.timeouts_in_a_row(True), 1)
     eq_(rnode.timeouts_in_a_row(False), 2)
     # got response
     rnode.add_event(time.time(), node.RESPONSE)
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 0)
Exemple #4
0
 def setup(self):
     self.rnode1 = RoutingNode(Node(addr1, id1), 1)
     self.rnode2 = RoutingNode(Node(addr2, id2), 1)
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)
Exemple #6
0
 def test_timeouts_in_a_row(self):
     rnode = RoutingNode(tc.NODES[0], 1)
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 0)
     # got query
     rnode.last_events.append((time.time(), node.QUERY))
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 0)
     # got timeout
     rnode.last_events.append((time.time(), node.TIMEOUT))
     eq_(rnode.timeouts_in_a_row(), 1)
     eq_(rnode.timeouts_in_a_row(True), 1)
     eq_(rnode.timeouts_in_a_row(False), 1)
     # got query
     rnode.last_events.append((time.time(), node.QUERY))
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 1)
     # got timeout
     rnode.last_events.append((time.time(), node.TIMEOUT))
     eq_(rnode.timeouts_in_a_row(), 1)
     eq_(rnode.timeouts_in_a_row(True), 1)
     eq_(rnode.timeouts_in_a_row(False), 2)
     # got response
     rnode.last_events.append((time.time(), node.RESPONSE))
     eq_(rnode.timeouts_in_a_row(), 0)
     eq_(rnode.timeouts_in_a_row(True), 0)
     eq_(rnode.timeouts_in_a_row(False), 0)
Exemple #7
0
 def setup(self):
     self.rnode1 = RoutingNode(Node(addr1, id1), 1)
     self.rnode2 = RoutingNode(Node(addr2, id2), 1)
Exemple #8
0
 def test_get_rnode(self):
     eq_(tc.CLIENT_NODE.get_rnode(1), RoutingNode(tc.CLIENT_NODE, 1))
Exemple #9
0
 def test_repr(self):
     _ = repr(RoutingNode(tc.CLIENT_NODE, 1))
Exemple #10
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)