def prepare(self):
        self.consumer = StubConsumer(["broker"], ["topic"], num_partitions=3)
        self.event_source = EventSource(self.consumer,
                                        0,
                                        deserialise_function=lambda x: x)

        self.consumer.add_messages(self.serialised_messages[0::3], 0)
        self.consumer.add_messages(self.serialised_messages[1::3], 1)
        self.consumer.add_messages(self.serialised_messages[2::3], 2)
    def test_if_x_new_messages_on_only_one_partition_then_data_has_x_items(
            self):
        consumer = StubConsumer(["broker"], ["topic"], num_partitions=3)
        event_source = EventSource(consumer,
                                   0,
                                   deserialise_function=lambda x: x)
        messages = get_fake_event_messages(5)
        consumer.add_messages(serialise_messages(messages))

        data = event_source.get_new_data()

        assert len(data) == len(messages)
        for i, m in enumerate(messages):
            assert compare_two_messages(m, data[i])
Esempio n. 3
0
def create_event_source(configuration, start, stop):
    """
    Create an event source.

    :param configuration The configuration.
    :param start: The start time.
    :param stop: The stop time.
    :return: The created event source.
    """
    consumer = Consumer(configuration["data_brokers"],
                        configuration["data_topics"])
    event_source = EventSource(consumer, start, stop)

    if start:
        event_source.seek_to_start_time()
    return event_source
    def test_if_no_new_messages_then_no_data(self):
        consumer = StubConsumer(["broker"], ["topic"])
        event_source = EventSource(consumer, 0)

        data = event_source.get_new_data()
        assert len(data) == 0
 def test_if_no_consumer_supplied_then_raises(self):
     with pytest.raises(Exception):
         EventSource(None, 10)
 def prepare(self):
     self.consumer = StubConsumer(["broker"], ["topic"])
     self.consumer.add_messages(self.serialised_messages)
     self.event_source = EventSource(self.consumer,
                                     0,
                                     deserialise_function=lambda x: x)