Preserve historical activity selection (#103)

This commit is contained in:
xavierk
2026-09-28 17:46:18 +05:30
parent f780212a02
commit c4524cf654
5 changed files with 847 additions and 198 deletions
+19 -19
View File
@@ -927,6 +927,7 @@ class TestBarGraphTUI:
for i in range(14):
d = (datetime(2026, 9, 15) + timedelta(days=i)).strftime("%Y-%m-%d")
_insert_day(conn, d, bw=1024*1024*100)
_insert_local_day(conn, d, bw=1024*1024*100)
_insert_sample(conn, "2026-09-30T10:00:00+00:00")
conn.close()
@@ -941,11 +942,9 @@ class TestBarGraphTUI:
assert "Unalloc" in legend
assert "Zero" in legend
range_label = str(app.query_one("#bar-range").render())
assert "14 days" in range_label
assert "UTC" in range_label
assert "14 local days" in range_label
plotted = str(app.query_one("#bar-render").render())
assert "Writes (" in legend
assert "UTC" in range_label
assert "─" in plotted
@pytest.mark.asyncio
@@ -957,6 +956,7 @@ class TestBarGraphTUI:
for i in range(14):
d = (datetime(2026, 9, 15) + timedelta(days=i)).strftime("%Y-%m-%d")
_insert_day(conn, d, bw=1024*1024*100)
_insert_local_day(conn, d, bw=1024*1024*100)
_insert_sample(conn, "2026-09-30T10:00:00+00:00")
conn.close()
@@ -1030,6 +1030,7 @@ class TestBarGraphTUI:
for i in range(14):
d = (datetime(2026, 9, 15) + timedelta(days=i)).strftime("%Y-%m-%d")
_insert_day(conn, d, bw=1024*1024*100)
_insert_local_day(conn, d, bw=1024*1024*100)
_insert_sample(conn, "2026-09-30T10:00:00+00:00")
conn.close()
@@ -1043,15 +1044,16 @@ class TestBarGraphTUI:
# Newest day is selected initially.
readout = str(app.query_one("#bar-readout").render())
assert "UTC" in readout
assert "GB" in readout
assert "so_far" in readout
assert "W 0.105 GB known" in readout
# Moving left updates the selected-day readout.
await pilot.press("left")
await pilot.pause()
readout = str(app.query_one("#bar-readout").render())
assert "2026-09" in readout
assert "GB" in readout
assert "incomplete" in readout
assert "W 0.105 GB known" in readout
@pytest.mark.asyncio
async def test_hourly_drill_down_and_back(self, tmp_path):
@@ -1062,6 +1064,7 @@ class TestBarGraphTUI:
for i in range(14):
d = (datetime(2026, 9, 15) + timedelta(days=i)).strftime("%Y-%m-%d")
_insert_day(conn, d, bw=1024*1024*100)
_insert_local_day(conn, d, bw=1024*1024*100)
# Insert hours for each day
for h in range(24):
hour = "%sT%02d:00:00+00:00" % (d, h)
@@ -1078,30 +1081,27 @@ class TestBarGraphTUI:
await pilot.pause()
await pilot.pause()
# The newest day is selected automatically.
assert graph.selected_index == len(graph._day_data) - 1
assert graph.view_mode == "daily"
assert app.query_one("#activity-tabs").active == "view-history"
daily_readout = str(app.query_one("#bar-readout").render())
# Enter drill-down
await pilot.press("enter")
await pilot.pause()
assert graph.view_mode == "hourly"
assert graph.drill_day is not None
assert len(graph._hour_data) == 24
assert app.query_one("#activity-tabs").active == "view-day"
assert "UTC" in str(app.query_one("#bar-readout").render())
# Five-minute data refreshes retain the selected hour.
graph._hourly_selected = 12
selected_hour = graph._hour_data[12]["hour"]
# Inspection identity survives refresh through visible readout.
await pilot.press("left")
selected_hour = str(app.query_one("#bar-readout").render())
app._refresh()
await pilot.pause()
assert graph.view_mode == "hourly"
assert graph._hour_data[graph._hourly_selected]["hour"] == selected_hour
assert str(app.query_one("#bar-readout").render()) == selected_hour
# Esc returns to daily
await pilot.press("escape")
await pilot.pause()
assert graph.view_mode == "daily"
assert graph.drill_day is None
assert app.query_one("#activity-tabs").active == "view-history"
assert str(app.query_one("#bar-readout").render()) == daily_readout
@pytest.mark.asyncio
async def test_empty_store_graph(self, tmp_path):