Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions tests/copilot_usage/test_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -1229,6 +1229,40 @@ def test_render_summary_rejects_positional_since(self) -> None:
with pytest.raises(TypeError):
render_summary(sessions, datetime.now(tz=UTC)) # type: ignore[misc]

def test_pure_active_empty_metrics_shows_active_output_tokens(self) -> None:
"""Pure-active session with empty model_metrics shows active_output_tokens in Totals."""
session = SessionSummary(
session_id="pure-actv-abc",
name="Pure Active",
is_active=True,
model_metrics={},
active_output_tokens=1_500,
active_model_calls=3,
active_user_messages=2,
model_calls=3,
user_messages=2,
)
output = _capture_summary([session])
assert "1.5K" in output # format_tokens(1500) == "1.5K"

def test_pure_active_empty_metrics_no_model_table(self) -> None:
"""Pure-active session with empty model_metrics must not render per-model table."""
session = SessionSummary(
session_id="pure-actv-abc",
name="Pure Active",
is_active=True,
model_metrics={},
active_output_tokens=1_500,
active_model_calls=3,
active_user_messages=2,
model_calls=3,
user_messages=2,
)
output = _capture_summary([session])
# _aggregate_model_metrics returns {} for empty model_metrics,
# so no per-model breakdown table should appear.
assert "claude-" not in output


# ---------------------------------------------------------------------------
# Coverage gap tests — report.py
Expand Down
Loading