def test_use(self):
     response = RouteResponse('id', '', Delay(), repeat=1)
     assert response.is_active
     assert response.used_count == 0
     assert response.repeat == 1
     response.use()
     assert not response.is_active
     assert response.used_count == 1
     assert response.repeat == 1
    def test_cycle_selection(self):
        strategy = ResponseSelectionStrategy.cycle
        r1 = RouteResponse('id1', '', Delay(), repeat=2)
        r2 = RouteResponse('id2', '', Delay(), repeat=3)

        assert strategy.select_response([r1, r2]) is r1
        r1.use()
        assert strategy.select_response([r1, r2]) is r2
        r2.use()
        assert strategy.select_response([r1, r2]) is r1
        r1.use()
        assert strategy.select_response([r1, r2]) is r2
        r2.use()
        assert strategy.select_response([r1, r2]) is r2
        r2.use()
        assert strategy.select_response([r1, r2]) is None