def test_exit_when_inactive_empty(self): q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = queue.Empty() call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = False generator = bidi._RequestQueueGenerator(q) generator.call = call items = list(generator) assert items == []
def test_exit_when_inactive_empty(self): q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = queue.Empty() call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = False generator = bidi._RequestQueueGenerator(q) generator.call = call items = list(generator) assert items == []
def test_yield_initial_and_exit(self): q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = queue.Empty() call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = False generator = bidi._RequestQueueGenerator(q, initial_request=mock.sentinel.A) generator.call = call items = list(generator) assert items == [mock.sentinel.A]
def test_yield_initial_callable_and_exit(self): q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = queue.Empty() call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = False generator = bidi._RequestQueueGenerator( q, initial_request=lambda: mock.sentinel.A) generator.call = call items = list(generator) assert items == [mock.sentinel.A]
def test_exit_when_inactive_with_item(self): q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = [mock.sentinel.A, queue.Empty()] call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = False generator = bidi._RequestQueueGenerator(q) generator.call = call items = list(generator) assert items == [] # Make sure it put the item back. q.put.assert_called_once_with(mock.sentinel.A)
def test_exit_when_inactive_with_item(self): q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = [mock.sentinel.A, queue.Empty()] call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = False generator = bidi._RequestQueueGenerator(q) generator.call = call items = list(generator) assert items == [] # Make sure it put the item back. q.put.assert_called_once_with(mock.sentinel.A)
def test_bounded_consume(self): call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = True def queue_generator(rpc): yield mock.sentinel.A yield queue.Empty() yield mock.sentinel.B rpc.is_active.return_value = False yield mock.sentinel.C q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = queue_generator(call) generator = bidi._RequestQueueGenerator(q) generator.call = call items = list(generator) assert items == [mock.sentinel.A, mock.sentinel.B]
def test_bounded_consume(self): call = mock.create_autospec(grpc.Call, instance=True) call.is_active.return_value = True def queue_generator(rpc): yield mock.sentinel.A yield queue.Empty() yield mock.sentinel.B rpc.is_active.return_value = False yield mock.sentinel.C q = mock.create_autospec(queue.Queue, instance=True) q.get.side_effect = queue_generator(call) generator = bidi._RequestQueueGenerator(q) generator.call = call items = list(generator) assert items == [mock.sentinel.A, mock.sentinel.B]