Files
StarPilot/starpilot/common/tests/test_testing_grounds.py
T
firestar5683 f63ee3375a Comover
2026-08-21 13:21:20 -05:00

55 lines
2.3 KiB
Python

import json
from openpilot.starpilot.common import testing_grounds as tg
def test_invalid_testing_ground_selection_is_migrated(tmp_path, monkeypatch):
invalid_slot_id = "99"
state_path = tmp_path / "slots.json"
state_path.write_text(json.dumps({
"schemaVersion": tg.TESTING_GROUNDS_SCHEMA_VERSION,
"activeSlot": invalid_slot_id,
"activeVariant": tg.TESTING_GROUND_TEST_VARIANT,
}), encoding="utf-8")
monkeypatch.setattr(tg, "TESTING_GROUNDS_STATE_PATH", state_path)
monkeypatch.setattr(tg, "_CACHE_LAST_REFRESH", 0.0)
monkeypatch.setattr(tg, "_CACHE_LAST_MTIME_NS", -1)
monkeypatch.setattr(tg, "_VISIBLE_TESTING_GROUND_IDS", tuple(tg.TESTING_GROUND_IDS))
monkeypatch.setattr(tg, "_DEFAULT_ACTIVE_SLOT", tg.TESTING_GROUND_1)
monkeypatch.setattr(tg, "_CACHE_ACTIVE_SLOT", tg._DEFAULT_ACTIVE_SLOT)
monkeypatch.setattr(tg, "_CACHE_ACTIVE_VARIANT", tg.DEFAULT_TESTING_GROUND_VARIANT)
active_slot, active_variant = tg.get_testing_ground_selection(refresh_interval_s=0.0)
assert active_slot == tg.TESTING_GROUND_1
assert active_variant == tg.DEFAULT_TESTING_GROUND_VARIANT
payload = json.loads(state_path.read_text(encoding="utf-8"))
assert payload["activeSlot"] == tg.TESTING_GROUND_1
assert payload["activeVariant"] == tg.DEFAULT_TESTING_GROUND_VARIANT
def test_invalid_slot_variant_is_migrated_off_slot(tmp_path, monkeypatch):
state_path = tmp_path / "slots.json"
state_path.write_text(json.dumps({
"schemaVersion": tg.TESTING_GROUNDS_SCHEMA_VERSION,
"activeSlot": "99",
"activeVariant": "C",
}), encoding="utf-8")
monkeypatch.setattr(tg, "TESTING_GROUNDS_STATE_PATH", state_path)
monkeypatch.setattr(tg, "_CACHE_LAST_REFRESH", 0.0)
monkeypatch.setattr(tg, "_CACHE_LAST_MTIME_NS", -1)
monkeypatch.setattr(tg, "_CACHE_ACTIVE_SLOT", tg._DEFAULT_ACTIVE_SLOT)
monkeypatch.setattr(tg, "_CACHE_ACTIVE_VARIANT", tg.DEFAULT_TESTING_GROUND_VARIANT)
active_slot, active_variant = tg.get_testing_ground_selection(refresh_interval_s=0.0)
assert active_slot == tg.TESTING_GROUND_1
assert active_variant == tg.DEFAULT_TESTING_GROUND_VARIANT
payload = json.loads(state_path.read_text(encoding="utf-8"))
assert payload["activeSlot"] == tg.TESTING_GROUND_1
assert payload["activeVariant"] == tg.DEFAULT_TESTING_GROUND_VARIANT