mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-09-04 23:23:42 +08:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from datetime import UTC, datetime
|
|
|
|
from openpilot.starpilot.system.starpilot_tracking import StarPilotTracking
|
|
|
|
|
|
class FakeParams:
|
|
def __init__(self):
|
|
self.writes = []
|
|
|
|
def put(self, key, value):
|
|
self.writes.append((key, value))
|
|
|
|
|
|
def test_flush_persists_time_since_last_checkpoint():
|
|
params = FakeParams()
|
|
tracking = StarPilotTracking.__new__(StarPilotTracking)
|
|
tracking.params = params
|
|
tracking.starpilot_stats = {"StarPilotMeters": 1000}
|
|
tracking.tracked_time = 12.5
|
|
tracking.previously_enabled = True
|
|
tracking.drive_added = False
|
|
tracking.model_name = "test-model"
|
|
|
|
tracking.flush(datetime(2026, 8, 27, tzinfo=UTC), time_validated=True)
|
|
|
|
assert tracking.tracked_time == 0
|
|
assert tracking.starpilot_stats["StarPilotSeconds"] == 12.5
|
|
assert tracking.starpilot_stats["TrackedTime"] == 12.5
|
|
assert tracking.starpilot_stats["ModelTimes"] == {"test-model": 12.5}
|
|
assert tracking.starpilot_stats["StarPilotDrives"] == 1
|
|
assert params.writes == [("StarPilotStats", dict(sorted(tracking.starpilot_stats.items())))]
|
|
|
|
|
|
def test_flush_does_not_count_a_drive_without_star_pilot_engagement():
|
|
params = FakeParams()
|
|
tracking = StarPilotTracking.__new__(StarPilotTracking)
|
|
tracking.params = params
|
|
tracking.starpilot_stats = {"StarPilotMeters": 1000}
|
|
tracking.tracked_time = 12.5
|
|
tracking.previously_enabled = False
|
|
tracking.drive_added = False
|
|
tracking.model_name = "test-model"
|
|
|
|
tracking.flush()
|
|
|
|
assert tracking.tracked_time == 12.5
|
|
assert params.writes == []
|