def test_read_nothing(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.return_value = (None, None) consumer.dispatch = Mock() # test consumer.read() # validate self.assertFalse(consumer.dispatch.called)
def test_read_validation_failed(self): url = 'test-url' node = Node('test-queue') failed = ValidationFailed(details='test') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.side_effect = failed consumer.rejected = Mock() # test consumer.read() # validate consumer.rejected.assert_called_once_with( failed.code, failed.description, failed.document, failed.details)
def test_read_exception(self, sleep): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.side_effect = IndexError consumer.open = Mock() consumer.close = Mock() # test consumer.read() # validation consumer.close.assert_called_once_with() consumer.open.assert_called_once_with() sleep.assert_called_once_with(60)
def test_read_not_found(self, sleep): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.side_effect = NotFound consumer.open = Mock() consumer.close = Mock() # test consumer.read() # validation consumer.close.assert_called_once_with() consumer.open.assert_called_once_with() sleep.assert_called_once_with(10)
def test_read(self): url = 'test-url' node = Node('test-queue') message = Mock() document = Mock() consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.return_value = (message, document) consumer.dispatch = Mock() # test consumer.read() # validate consumer.reader.next.assert_called_once_with(consumer.wait) consumer.dispatch.assert_called_once_with(document) message.ack.assert_called_once_with()
def test_read_invalid_document(self): url = 'test-url' node = Node('test-queue') code = 12 description = 'just up and failed' document = Mock() details = 'crashed' ir = InvalidDocument(code, description, document, details) consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.side_effect = ir consumer.rejected = Mock() # test consumer.read() # validate consumer.rejected.assert_called_once_with( ir.code, ir.description, ir.document, ir.details)
def test_read_invalid_document(self): url = 'test-url' node = Node('test-queue') code = 12 description = 'just up and failed' document = Mock() details = 'crashed' ir = DocumentError(code, description, document, details) consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.next.side_effect = ir consumer.rejected = Mock() # test consumer.read() # validate consumer.rejected.assert_called_once_with( ir.code, ir.description, ir.document, ir.details)
def test_run(self, reader): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.open = Mock() consumer.close = Mock() consumer.read = Mock(side_effect=StopIteration) # test try: consumer.run() except StopIteration: pass # validation reader.assert_called_once_with(node, url) consumer.open.assert_called_once_with() consumer.read.assert_called_once_with() consumer.close.assert_called_once_with()