1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
import pytest
import respx
from httpx import Response
from pytrydan.exceptions import (
TrydanCommunicationError,
TrydanInvalidResponse,
)
from .conftest import _get_mock_trydan, _load_json_fixture
@pytest.mark.asyncio
@respx.mock
async def test_bad_status():
respx.get("/RealTimeData").mock(return_value=Response(404, json={}))
envoy = await _get_mock_trydan()
with pytest.raises(TrydanInvalidResponse):
data = await envoy.get_data()
assert data is None
respx.get("/RealTimeData").mock(return_value=Response(403, json={}))
envoy = await _get_mock_trydan()
with pytest.raises(TrydanCommunicationError):
data = await envoy.get_data()
assert data is None
@pytest.mark.asyncio
@respx.mock
async def test_status():
respx.get("/RealTimeData").mock(
return_value=Response(200, json=_load_json_fixture("RealTimeData"))
)
envoy = await _get_mock_trydan()
data = await envoy.get_data()
assert data is not None
assert data.charge_state == 1
assert data.ready_state == 1
assert data.charge_power == 0
assert data.charge_energy == 7.6
assert data.slave_error == 0
assert data.charge_time == 9979
assert data.house_power == 0
assert data.fv_power == 0
assert data.paused == 0
assert data.locked == 0
assert data.timer == 1
assert data.intensity == 16
assert data.dynamic == 0
assert data.min_intensity == 6
assert data.max_intensity == 16
assert data.pause_dynamic == 0
assert data.firmware_version == "1.6.18"
assert data.dynamic_power_mode == 2
assert data.contracted_power == 4600
@pytest.mark.asyncio
@respx.mock
async def test_status_charging():
respx.get("/RealTimeData").mock(
return_value=Response(200, json=_load_json_fixture("RealTimeData_Charging"))
)
envoy = await _get_mock_trydan()
data = await envoy.get_data()
assert data is not None
assert data.charge_state == 2
assert data.ready_state == 0
assert data.charge_power == 2664
assert data.charge_energy == 0.07
assert data.slave_error == 0
assert data.charge_time == 105
assert data.house_power == 0
assert data.fv_power == 0
assert data.paused == 0
assert data.locked == 0
assert data.timer == 1
assert data.intensity == 12
assert data.dynamic == 0
assert data.min_intensity == 6
assert data.max_intensity == 16
assert data.pause_dynamic == 0
assert data.firmware_version == "1.6.18"
assert data.dynamic_power_mode == 2
assert data.contracted_power == 4600
|