Validate battery percentage range on manual edit; clamp HA values to 0-100

This commit is contained in:
2026-06-10 12:31:11 -05:00
parent a9835fee1e
commit 17bad3f36b
4 changed files with 50 additions and 0 deletions
+20
View File
@@ -117,6 +117,26 @@ def test_edit_notes(seeded_client):
# Battery — assign (per-battery, kept for special cases)
# ------------------------------------------------------------------ #
def test_edit_details_percentage_out_of_range_rejected(seeded_client):
for bad in ("150", "-5"):
resp = seeded_client.post("/battery/1/edit-details",
data={"battery_percentage": bad},
follow_redirects=True)
assert b"between 0 and 100" in resp.data
data = _json.loads(seeded_client.get("/export/all.json").data)
bat = next(b for b in data["batteries"] if b["id"] == 1)
assert bat["battery_percentage"] is None
assert data["pct_logs"] == []
def test_edit_details_percentage_valid(seeded_client):
seeded_client.post("/battery/1/edit-details", data={"battery_percentage": "100"})
data = _json.loads(seeded_client.get("/export/all.json").data)
bat = next(b for b in data["batteries"] if b["id"] == 1)
assert bat["battery_percentage"] == 100
assert any(l["battery_id"] == 1 and l["source"] == "manual" for l in data["pct_logs"])
def test_assign_battery(seeded_client):
resp = seeded_client.post("/battery/1/assign",
data={"device_id": "1"},