Skip to content

Commit 77a155d

Browse files
committed
add test case for set_override failure handling when POST returns error status
1 parent f61adcb commit 77a155d

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

tests/test_override.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,35 @@ async def test_override_failure_logic(mock_aioclient):
600600
await charger.clear_override()
601601

602602

603+
async def test_set_override_post_failure(test_charger, mock_aioclient, caplog):
604+
"""Verify that set_override raises UnknownError when the POST response indicates failure."""
605+
await test_charger.update()
606+
test_charger.requester._update_callback = None
607+
value = {
608+
"state": "active",
609+
"charge_current": 0,
610+
"max_current": 0,
611+
"energy_limit": 0,
612+
"time_limit": 0,
613+
"auto_release": True,
614+
}
615+
mock_aioclient.get(
616+
TEST_URL_OVERRIDE,
617+
status=200,
618+
body=json.dumps(value),
619+
repeat=True,
620+
)
621+
mock_aioclient.post(
622+
TEST_URL_OVERRIDE,
623+
status=200,
624+
body='{"ok": false, "msg": "failed"}',
625+
)
626+
with caplog.at_level(logging.ERROR):
627+
with pytest.raises(UnknownError):
628+
await test_charger.set_override("active")
629+
assert "Problem setting override." in caplog.text
630+
631+
603632
async def test_clear_override_non_dict_response(test_charger, caplog):
604633
"""Verify that clear_override() handles non-dictionary responses gracefully."""
605634
with patch.object(test_charger, "_version_check", return_value=True):

0 commit comments

Comments
 (0)