def test_sort_and_select_events_by_timestamp(): events = [ event.as_dict() for event in [ random_user_uttered_event(3), random_user_uttered_event(2), random_user_uttered_event(1), ] ] tracker_store = Mock() exporter = MockExporter(tracker_store) selected_events = exporter._sort_and_select_events_by_timestamp(events) # events are sorted assert selected_events == list( sorted(selected_events, key=lambda e: e["timestamp"])) # apply minimum timestamp requirement, expect to get only two events back exporter.minimum_timestamp = 2.0 assert exporter._sort_and_select_events_by_timestamp(events) == [ events[1], events[0], ] exporter.minimum_timestamp = None # apply maximum timestamp requirement, expect to get only one exporter.maximum_timestamp = 1.1 assert exporter._sort_and_select_events_by_timestamp(events) == [events[2]] # apply both requirements, get one event back exporter.minimum_timestamp = 2.0 exporter.maximum_timestamp = 2.1 assert exporter._sort_and_select_events_by_timestamp(events) == [events[1]]
def test_get_continuation_command( current_timestamp: float, maximum_timestamp: Optional[float], endpoints_path: Optional[Text], requested_ids: Optional[List[Text]], expected: Text, ): exporter = MockExporter() exporter.maximum_timestamp = maximum_timestamp exporter.endpoints_path = endpoints_path exporter.requested_conversation_ids = requested_ids # noinspection PyProtectedMember assert (export._get_continuation_command( exporter, current_timestamp) == f"rasa export {expected}")