示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
    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()
示例#6
0
    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)
示例#7
0
    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()
示例#8
0
    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)
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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()
示例#12
0
    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()