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()
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:])))