def test_is_open(self, _find): _impl = Mock() plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin url = TEST_URL node = Node('') reader = Reader(node, url) is_open = reader.is_open() _impl.is_open.assert_called_once_with() self.assertEqual(is_open, _impl.is_open.return_value)
def run(self): """ Main consumer loop. """ self.reader = Reader(self.node, self.url) self.reader.authenticator = self.authenticator self.open() try: while not Thread.aborted(): self.read() finally: self.close()
def test_next_not_found(self, _find): _impl = Mock() plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin # test reader = Reader(Node('')) reader.get = Mock(return_value=None) reader.authenticator = Mock() _message, _document = reader.next(10) # validation reader.get.assert_called_once_with(10) self.assertEqual(_message, None) self.assertEqual(_document, None)
def test_init(self, _find): _impl = Mock() plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin node = Node('test') url = TEST_URL # test reader = Reader(node, url) # validation _find.assert_called_with(url) plugin.Reader.assert_called_with(node, url) self.assertEqual(reader.authenticator, None) self.assertTrue(isinstance(reader, BaseReader))
def test_get(self, _find): message = Mock() _impl = Mock() _impl.get.return_value = message plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin node = Node('') url = TEST_URL # test reader = Reader(node, url) # validation m = reader.get(10) _impl.get.assert_called_with(10) self.assertEqual(m, message)
def test_next_auth_rejected(self, _find, auth, validate): _impl = Mock() plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin message = Mock(body='test-content') auth.validate.side_effect = ModelError # test reader = Reader(Node('')) reader.get = Mock(return_value=message) reader.authenticator = Mock() self.assertRaises(ModelError, reader.next, 10) # validation reader.get.assert_called_once_with(10) auth.validate.assert_called_once_with(reader.authenticator, message.body) message.ack.assert_called_once_with() self.assertFalse(validate.called)
def test_next(self, _find, auth, validate): _impl = Mock() plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin message = Mock(body='test-content') document = Mock() auth.validate.return_value = document # test reader = Reader(Node('')) reader.get = Mock(return_value=message) reader.authenticator = Mock() _message, _document = reader.next(10) # validation reader.get.assert_called_once_with(10) auth.validate.assert_called_once_with(reader.authenticator, message.body) validate.assert_called_once_with(document) self.assertEqual(_message, reader.get.return_value) self.assertEqual(_document, document)
def test_search_timeout(self, _find): _impl = Mock() plugin = Mock() plugin.Reader.return_value = _impl _find.return_value = plugin received = [(Mock(), Document(sn='1')), (Mock(), Document(sn='2')), (None, None)] # test url = TEST_URL node = Node('') reader = Reader(node, url) reader.next = Mock(side_effect=received) document = reader.search('', timeout=10) # validation next_calls = reader.next.call_args_list self.assertEqual(len(next_calls), len(received)) self.assertEqual(document, None) for call in next_calls: self.assertEqual(call[0][0], 10) self.assertTrue(received[0][0].ack.called) self.assertTrue(received[1][0].ack.called)