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)
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)
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 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)
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_get_rnode(self): eq_(tc.CLIENT_NODE.get_rnode(1), RoutingNode(tc.CLIENT_NODE, 1))
def test_repr(self): _ = repr(RoutingNode(tc.CLIENT_NODE, 1))