def test_initialize_telemetry_prints_info(monkeypatch: MonkeyPatch): # Mock actual training mock = Mock() monkeypatch.setattr(telemetry, "print_telemetry_reporting_info", mock) telemetry.initialize_telemetry() mock.assert_called_once()
def test_toggle_telemetry_reporting(monkeypatch: MonkeyPatch): # tests that toggling works if there is no config telemetry.toggle_telemetry_reporting(True) assert telemetry.initialize_telemetry() is True telemetry.toggle_telemetry_reporting(False) assert telemetry.initialize_telemetry() is False # tests that toggling works if config is set to false telemetry.toggle_telemetry_reporting(True) assert telemetry.initialize_telemetry() is True
def test_segment_does_not_raise_exception_on_failure(monkeypatch: MonkeyPatch): monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true") monkeypatch.setenv("RASA_TELEMETRY_WRITE_KEY", "foobar") telemetry.initialize_telemetry() with responses.RequestsMock() as rsps: rsps.add(responses.POST, "https://api.segment.io/v1/track", body="", status=505) # this call should complete without throwing an exception telemetry._track("test event", {"foo": "bar"}, {"foobar": "baz"}) assert rsps.assert_call_count("https://api.segment.io/v1/track", 1)
async def test_segment_does_not_raise_exception_on_failure( monkeypatch: MonkeyPatch): monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true") monkeypatch.setenv("RASA_TELEMETRY_WRITE_KEY", "foobar") telemetry.initialize_telemetry() with aioresponses() as mocked: mocked.post("https://api.segment.io/v1/track", payload={}, status=505) # this call should complete without throwing an exception await telemetry.track("test event", {"foo": "bar"}, {"foobar": "baz"}) r = utilities.latest_request(mocked, "POST", "https://api.segment.io/v1/track") assert r
async def test_track_sends_telemetry_id(monkeypatch: MonkeyPatch): monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true") telemetry.initialize_telemetry() mock = Mock() monkeypatch.setattr(telemetry, "_send_event", mock) await telemetry.track("foobar", {"foo": "bar"}, {"baz": "foo"}) assert telemetry.get_telemetry_id() is not None mock.assert_called_once() call_args = mock.call_args[0] assert call_args[0] == telemetry.get_telemetry_id() assert call_args[1] == "foobar" assert call_args[2]["foo"] == "bar" assert call_args[2]["metrics_id"] == telemetry.get_telemetry_id() assert call_args[3]["baz"] == "foo"
def test_segment_gets_called(monkeypatch: MonkeyPatch): monkeypatch.setenv("RASA_TELEMETRY_WRITE_KEY", "foobar") monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true") telemetry.initialize_telemetry() with responses.RequestsMock() as rsps: rsps.add(responses.POST, "https://api.segment.io/v1/track", json={}) telemetry._track("test event", {"foo": "bar"}, {"foobar": "baz"}) assert len(rsps.calls) == 1 r = rsps.calls[0] assert r b = json.loads(r.request.body) assert "userId" in b assert b["event"] == "test event" assert b["properties"].get("foo") == "bar" assert b["context"].get("foobar") == "baz"
async def test_segment_gets_called(monkeypatch: MonkeyPatch): monkeypatch.setenv("RASA_TELEMETRY_WRITE_KEY", "foobar") monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true") telemetry.initialize_telemetry() with aioresponses() as mocked: mocked.post( "https://api.segment.io/v1/track", payload={}, ) await telemetry.track("test event", {"foo": "bar"}, {"foobar": "baz"}) r = utilities.latest_request(mocked, "POST", "https://api.segment.io/v1/track") assert r b = utilities.json_of_latest_request(r) assert "userId" in b assert b["event"] == "test event" assert b["properties"].get("foo") == "bar" assert b["context"].get("foobar") == "baz"
def test_initialize_telemetry_env_overwrites_config(monkeypatch: MonkeyPatch): telemetry.toggle_telemetry_reporting(True) assert telemetry.initialize_telemetry() is True monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "false") assert telemetry.initialize_telemetry() is False
def test_initialize_telemetry_with_env_true(monkeypatch: MonkeyPatch): monkeypatch.setenv("RASA_TELEMETRY_ENABLED", "true") assert telemetry.initialize_telemetry() is True
def test_initialize_telemetry(): telemetry.initialize_telemetry() assert True