def test_stop(self): """Assert calling stop sets the ``should_stop`` flag.""" consumer = service.Consumer(None, 'backends') self.assertFalse(consumer.should_stop) consumer.stop() self.assertTrue(consumer.should_stop)
def test_multiple_queues(self): """Assert multiple queues are created when provided.""" queues = ['backends.email', 'backends.irc'] consumer = service.Consumer(None, queues) self.assertEqual([Queue(q) for q in queues], consumer.queues)
def test_get_consumers(self): """Assert the ``get_consumers`` interface provides a consumer with a callback.""" consumer = service.Consumer(None, 'backends') consumers = consumer.get_consumers(Consumer, Mock()) self.assertEqual(1, len(consumers)) self.assertEqual([consumer.on_message], consumers[0].callbacks)
def test_on_message_failed_delivery(self, mock_blocking_call): """Assert general exceptions in the delivery service re-queue the message.""" mock_blocking_call.side_effect = Exception message = Mock() consumer = service.Consumer(Mock(), 'backends') consumer.on_message({'hello': 'world'}, message) self.assertEqual(1, message.requeue.call_count) self.assertEqual(0, message.ack.call_count)
def test_on_message(self, mock_blocking): """Assert messages are passed on to the Twisted DeliveryService.""" message = Mock() mock_delivery = Mock() consumer = service.Consumer(mock_delivery, 'backends') consumer.on_message({'hello': 'world'}, message) mock_blocking.assert_called_with( service.reactor, mock_delivery.handle_message, {'hello': 'world'}) message.ack.assert_called_once_with()
def test_single_queue(self): """Assert a single queue as a string is supported.""" consumer = service.Consumer(None, 'backends') self.assertEqual([Queue('backends')], consumer.queues)