コード例 #1
0
def test_session_scope_error(monkeypatch: MonkeyPatch, capsys: CaptureFixture,
                             default_domain: Domain):
    tracker_store = SQLTrackerStore(default_domain)
    tracker_store.sessionmaker = Mock()

    requested_schema = uuid.uuid4().hex

    # `ensure_schema_exists()` raises `ValueError`
    mocked_ensure_schema_exists = Mock(
        side_effect=ValueError(requested_schema))
    monkeypatch.setattr(
        rasa.core.tracker_store,
        "ensure_schema_exists",
        mocked_ensure_schema_exists,
    )

    # `SystemExit` is triggered by failing `ensure_schema_exists()`
    with pytest.raises(SystemExit):
        with tracker_store.session_scope() as _:
            pass

    # error message is printed
    assert (
        f"Requested PostgreSQL schema '{requested_schema}' was not found in the "
        f"database." in capsys.readouterr()[0])
コード例 #2
0
def test_sql_additional_events(default_domain: Domain):
    tracker_store = SQLTrackerStore(default_domain)
    additional_events, tracker = create_tracker_with_partially_saved_events(
        tracker_store)

    # make sure only new events are returned
    with tracker_store.session_scope() as session:
        # noinspection PyProtectedMember
        assert (list(tracker_store._additional_events(
            session, tracker)) == additional_events)
コード例 #3
0
def test_sql_additional_events_with_session_start(default_domain: Domain):
    sender = "test_sql_additional_events_with_session_start"
    tracker_store = SQLTrackerStore(default_domain)
    tracker = _saved_tracker_with_multiple_session_starts(tracker_store, sender)

    tracker.update(UserUttered("hi2"), default_domain)

    # make sure only new events are returned
    with tracker_store.session_scope() as session:
        # noinspection PyProtectedMember
        additional_events = list(tracker_store._additional_events(session, tracker))
        assert len(additional_events) == 1
        assert isinstance(additional_events[0], UserUttered)
コード例 #4
0
def test_sql_additional_events(
        domain: Domain, retrieve_events_from_previous_conversation_sessions):
    tracker_store = SQLTrackerStore(
        domain,
        retrieve_events_from_previous_conversation_sessions=
        retrieve_events_from_previous_conversation_sessions,
    )
    additional_events, tracker = create_tracker_with_partially_saved_events(
        tracker_store)

    # make sure only new events are returned
    with tracker_store.session_scope() as session:
        # noinspection PyProtectedMember
        assert (list(tracker_store._additional_events(
            session, tracker)) == additional_events)