mirror of
https://github.com/usestrix/strix.git
synced 2026-08-16 17:27:26 +02:00
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
"""Tests for scan telemetry emission."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
import pytest
|
|
|
|
from strix.report.state import ReportState
|
|
from strix.telemetry import posthog, scarf
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("backend", "sent_attribute"),
|
|
[
|
|
(posthog, "posthog_scan_ended_sent"),
|
|
(scarf, "scarf_scan_ended_sent"),
|
|
],
|
|
)
|
|
def test_scan_ended_is_sent_once_per_backend(
|
|
monkeypatch: pytest.MonkeyPatch,
|
|
backend: Any,
|
|
sent_attribute: str,
|
|
) -> None:
|
|
state = ReportState(run_name="test-run")
|
|
sent_events: list[tuple[str, dict[str, Any]]] = []
|
|
monkeypatch.setattr(
|
|
backend,
|
|
"_send",
|
|
lambda event, properties: sent_events.append((event, properties)),
|
|
)
|
|
|
|
backend.end(state, exit_reason="finished_by_tool")
|
|
backend.end(state, exit_reason="user_exit")
|
|
|
|
assert getattr(state, sent_attribute) is True
|
|
assert len(sent_events) == 1
|
|
assert sent_events[0][0] == "scan_ended"
|
|
assert sent_events[0][1]["exit_reason"] == "finished_by_tool"
|