Exemple #1
0
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]]
Exemple #2
0
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}")