def setUp(self): self.producer = Mock() self.producer_provider = Mock(return_value=self.producer) self.consumer = Mock() self.consumer_provider = Mock(return_value=self.consumer) self.topic = Topic( 'fruit', self.producer_provider, self.consumer_provider, FakeValueCodec())
class TestTopicIntegration(TestCase): def setUp(self): self.producer = Mock() self.producer_provider = Mock(return_value=self.producer) self.consumer = Mock() self.consumer_provider = Mock(return_value=self.consumer) self.registry = Mock() self.registry_provider = Mock(return_value=self.registry) self.topic = Topic( 'fruit', self.producer_provider, self.consumer_provider, MultiCodec( RegisteredSchemaAvroCodec( "Fruit-value", { "type": "string", "name": "Fruit_value", }, self.registry_provider), ZlibCodec())) def test_send_messages(self): self.topic.send_messages('banana', 'apple') self.producer.send_messages.assert_called_once_with( 'fruit', 'x\x9c\xe3IJ\xcc\x03B\x00\x08\xa4\x02n', 'x\x9c\xe3J,(\xc8I\x05\x00\x06t\x02\x1d') def test_consume_message(self): self.registry.get_subject_latest_version.return_value = { "type": "string", "name": "Fruit_value", } self.consumer.next.return_value = KafkaMessage( 'fruit', 0, 1, None, 'x\x9c\xe3IJ\xcc\x03B\x00\x08\xa4\x02n') msg = self.topic.next() self.assertEquals(msg.value, 'banana')
def setUp(self): self.producer = Mock() self.producer_provider = Mock(return_value=self.producer) self.consumer = Mock() self.consumer_provider = Mock(return_value=self.consumer) self.registry = Mock() self.registry_provider = Mock(return_value=self.registry) self.topic = Topic( 'fruit', self.producer_provider, self.consumer_provider, MultiCodec( RegisteredSchemaAvroCodec( "Fruit-value", { "type": "string", "name": "Fruit_value", }, self.registry_provider), ZlibCodec()))
class TestTopic(TestCase): def setUp(self): self.producer = Mock() self.producer_provider = Mock(return_value=self.producer) self.consumer = Mock() self.consumer_provider = Mock(return_value=self.consumer) self.topic = Topic( 'fruit', self.producer_provider, self.consumer_provider, FakeValueCodec()) def test_send_message(self): msg = 'banana' self.topic.send_messages(msg) self.producer.send_messages.assert_called_once_with('fruit', 'banana!') self.assertEqual(1, self.producer_provider.call_count) def test_send_messages(self): messages = ['apple', 'banana', 'lemon'] self.topic.send_messages(*messages) self.producer.send_messages.assert_called_once_with( 'fruit', 'apple!', 'banana!', 'lemon!') self.assertEqual(1, self.producer_provider.call_count) def test_multiple_send_messages(self): messages_a = ['apple', 'banana', 'lemon'] messages_b = ['lime', 'peach', 'grapes'] self.topic.send_messages(*messages_a) self.topic.send_messages(*messages_b) self.producer.send_messages.assert_has_calls([ call('fruit', 'apple!', 'banana!', 'lemon!'), call('fruit', 'lime!', 'peach!', 'grapes!')]) self.assertEqual(1, self.producer_provider.call_count) def test_consume_a_message(self): msg = KafkaMessage('fruit', 0, 1, None, 'banana!') self.consumer.next.return_value = msg decoded_msg = self.topic.next() self.assertEqual(decoded_msg.value, 'banana') self.consumer_provider.assert_called_once_with('fruit') def test_consume_messages_via_iterator(self): self.consumer.next.side_effect = [ KafkaMessage('fruit', 0, n, None, item) for n, item in enumerate(['apple!', 'banana!', 'lemon!']) ] messages = [] for message in self.topic: messages.append(message) if len(messages) >= 3: break self.assertEqual( ['apple', 'banana', 'lemon'], [msg.value for msg in messages]) self.consumer_provider.assert_called_once_with('fruit') def test_task_done(self): msg = Mock() self.topic.task_done(msg) self.consumer.task_done.assert_called_once_with(msg) def test_commit(self): self.topic.commit() self.consumer.commit.assert_called_once_with()