def test_init(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) self.assertEqual(consumer.node, node) self.assertEqual(consumer.url, url) self.assertTrue(isinstance(consumer, Thread)) self.assertTrue(consumer.daemon) self.assertEqual(consumer._reader, None)
def test_init(self): url = 'test-url' node = Node('test-queue') # test consumer = Consumer(node, url) # validation self.assertEqual(consumer.node, node) self.assertEqual(consumer.url, url)
def test_close(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() # test consumer.close() # validation consumer.reader.close.assert_called_once_with()
def test_close_exception(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.close.side_effect = ValueError # test consumer.close() # validation consumer.reader.close.assert_called_once_with()
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_open_exception(self, sleep): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.open.side_effect = [ValueError, None] # test consumer.open() # validation sleep.assert_called_once_with(30) self.assertEqual(consumer.reader.open.call_count, 2)
def test_repair(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.open = Mock() consumer.close = Mock() # Test consumer.repair() # Validation consumer.close.assert_called_once_with() consumer.open.assert_called_once_with()
def attach(self): """ Attach (connect) to AMQP connector using the specified uuid. """ self.detach(False) self.refresh() model = BrokerModel(self) model.setup() node = Node(model.queue) consumer = RequestConsumer(node, self) consumer.authenticator = self.authenticator consumer.start() self.consumer = consumer log.info('plugin:%s, attached => %s', self.name, self.node)
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_open_not_found_raised(self, sleep): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.reader = Mock() consumer.reader.open.side_effect = [NotFound, None] consumer.no_route = Mock() # test consumer.open() # validation sleep.assert_called_once_with(10) consumer.no_route.assert_called_once_with() self.assertEqual(consumer.reader.open.call_count, 2)
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.dispatch.assert_called_once_with(document) message.ack.assert_called_once_with()
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_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()
def test_shutdown(self, abort): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.shutdown() abort.assert_called_once_with()
def test_dispatch(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.dispatch(Mock())
def test_rejected(self): url = 'test-url' node = Node('test-queue') consumer = ConsumerThread(node, url) consumer.rejected('1', '2', '3', '4')