Beispiel #1
0
def test_fail_safe_tracker_store_if_no_errors():
    mocked_tracker_store = Mock()

    tracker_store = FailSafeTrackerStore(mocked_tracker_store, None)

    # test save
    mocked_tracker_store.save = Mock()
    tracker_store.save(None)
    mocked_tracker_store.save.assert_called_once()

    # test retrieve
    expected = [1]
    mocked_tracker_store.retrieve = Mock(return_value=expected)
    sender_id = "10"
    assert tracker_store.retrieve(sender_id) == expected
    mocked_tracker_store.retrieve.assert_called_once_with(sender_id)

    # test keys
    expected = ["sender 1", "sender 2"]
    mocked_tracker_store.keys = Mock(return_value=expected)
    assert tracker_store.keys() == expected
    mocked_tracker_store.keys.assert_called_once()
def test_tracker_store_deprecated_session_retrieval_kwarg():
    tracker_store = SQLTrackerStore(
        Domain.empty(),
        retrieve_events_from_previous_conversation_sessions=True)

    conversation_id = uuid.uuid4().hex
    tracker = DialogueStateTracker.from_events(
        conversation_id,
        [
            ActionExecuted(ACTION_SESSION_START_NAME),
            SessionStarted(),
            UserUttered("hi"),
        ],
    )

    mocked_retrieve_full_tracker = Mock()
    tracker_store.retrieve_full_tracker = mocked_retrieve_full_tracker

    tracker_store.save(tracker)

    _ = tracker_store.retrieve(conversation_id)

    mocked_retrieve_full_tracker.assert_called_once()
Beispiel #3
0
def test_tracker_store_retrieve_with_session_started_events(
    tracker_store_type: Type[TrackerStore], tracker_store_kwargs: Dict, domain: Domain
):
    tracker_store = tracker_store_type(domain, **tracker_store_kwargs)
    events = [
        UserUttered("Hola", {"name": "greet"}, timestamp=1),
        BotUttered("Hi", timestamp=2),
        SessionStarted(timestamp=3),
        UserUttered("Ciao", {"name": "greet"}, timestamp=4),
    ]
    sender_id = "test_sql_tracker_store_with_session_events"
    tracker = DialogueStateTracker.from_events(sender_id, events)
    tracker_store.save(tracker)

    # Save other tracker to ensure that we don't run into problems with other senders
    other_tracker = DialogueStateTracker.from_events("other-sender", [SessionStarted()])
    tracker_store.save(other_tracker)

    # Retrieve tracker with events since latest SessionStarted
    tracker = tracker_store.retrieve(sender_id)

    assert len(tracker.events) == 2
    assert all((event == tracker.events[i] for i, event in enumerate(events[2:])))