Skip to content

Commit b835203

Browse files
committed
Adjust update method
1 parent 047728b commit b835203

3 files changed

Lines changed: 56 additions & 19 deletions

File tree

openevsehttp/__init__.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ def __init__(self, host: str, user: str = None, pwd: str = None) -> None:
4444
self._user = user
4545
self._pwd = pwd
4646
self._url = f"http://{host}"
47-
self._status = self.update(mode="status")
48-
self._config = self.update(mode="config")
47+
self._status = None
48+
self._config = None
4949

5050
async def send_command(self, command: str) -> tuple | None:
5151
"""Send a command via HTTP to the charger and prases the response."""
@@ -68,19 +68,24 @@ async def send_command(self, command: str) -> tuple | None:
6868
resp = value.json()
6969
return resp[0] == "OK", resp[1:]
7070

71-
def update(self, mode: str) -> Optional[Dict[Any, Any]] | None:
71+
def update(self, mode: str = "status") -> None:
7272
"""Update the values."""
73-
url = f"{self._url}/{mode}"
74-
75-
_LOGGER.debug("Updating data from %s", url)
76-
if self._user is not None:
77-
value = requests.get(url, auth=(self._user, self._pwd))
78-
else:
79-
value = requests.get(url)
80-
81-
if value.status_code == 401:
82-
raise AuthenticationError
83-
return value.json()
73+
urls = [f"{self._url}/status", f"{self._url}/config"]
74+
75+
for url in urls:
76+
_LOGGER.debug("Updating data from %s", url)
77+
if self._user is not None:
78+
value = requests.get(url, auth=(self._user, self._pwd))
79+
else:
80+
value = requests.get(url)
81+
82+
if value.status_code == 401:
83+
raise AuthenticationError
84+
85+
if "/status" in url:
86+
self._status = value.json()
87+
else:
88+
self._config = value.json()
8489

8590
@property
8691
def hostname(self) -> str:

tests/conftest.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ def test_charger_auth(status_mock, config_mock):
1616
@pytest.fixture(name="test_charger_auth_err")
1717
def test_charger_auth_err(status_mock_err, config_mock_err):
1818
"""Load the charger data."""
19-
with pytest.raises(openevsehttp.AuthenticationError):
20-
return openevsehttp.OpenEVSE(
21-
"openevse.test.tld", user="testuser", pwd="fakepassword"
22-
)
19+
return openevsehttp.OpenEVSE(
20+
"openevse.test.tld", user="testuser", pwd="fakepassword"
21+
)
2322

2423

2524
@pytest.fixture(name="status_mock_err")

tests/test_init.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
import pytest
2+
import openevsehttp
23

34

45
def test_get_status_auth(test_charger_auth):
56
"""Test v4 Status reply"""
7+
test_charger_auth.update()
68
status = test_charger_auth.status
79
assert status == "sleeping"
810

911

1012
def test_get_status_auth_err(test_charger_auth_err):
1113
"""Test v4 Status reply"""
12-
assert test_charger_auth_err is None
14+
with pytest.raises(openevsehttp.AuthenticationError):
15+
test_charger_auth_err.update()
16+
assert test_charger_auth_err is None
1317

1418

1519
@pytest.mark.parametrize(
@@ -19,6 +23,7 @@ def test_get_status_auth_err(test_charger_auth_err):
1923
def test_get_status(fixture, expected, request):
2024
"""Test v4 Status reply"""
2125
charger = request.getfixturevalue(fixture)
26+
charger.update()
2227
status = charger.status
2328
assert status == expected
2429

@@ -30,6 +35,7 @@ def test_get_status(fixture, expected, request):
3035
def test_get_ssid(fixture, expected, request):
3136
"""Test v4 Status reply"""
3237
charger = request.getfixturevalue(fixture)
38+
charger.update()
3339
status = charger.wifi_ssid
3440
assert status == expected
3541

@@ -40,6 +46,7 @@ def test_get_ssid(fixture, expected, request):
4046
def test_get_firmware(fixture, expected, request):
4147
"""Test v4 Status reply"""
4248
charger = request.getfixturevalue(fixture)
49+
charger.update()
4350
status = charger.openevse_firmware
4451
assert status == expected
4552

@@ -51,6 +58,7 @@ def test_get_firmware(fixture, expected, request):
5158
def test_get_hostname(fixture, expected, request):
5259
"""Test v4 Status reply"""
5360
charger = request.getfixturevalue(fixture)
61+
charger.update()
5462
status = charger.hostname
5563
assert status == expected
5664

@@ -61,6 +69,7 @@ def test_get_hostname(fixture, expected, request):
6169
def test_get_ammeter_offset(fixture, expected, request):
6270
"""Test v4 Status reply"""
6371
charger = request.getfixturevalue(fixture)
72+
charger.update()
6473
status = charger.ammeter_offset
6574
assert status == expected
6675

@@ -71,6 +80,7 @@ def test_get_ammeter_offset(fixture, expected, request):
7180
def test_get_ammeter_scale_factor(fixture, expected, request):
7281
"""Test v4 Status reply"""
7382
charger = request.getfixturevalue(fixture)
83+
charger.update()
7484
status = charger.ammeter_scale_factor
7585
assert status == expected
7686

@@ -88,6 +98,7 @@ def test_get_ammeter_scale_factor(fixture, expected, request):
8898
def test_get_service_level(fixture, expected, request):
8999
"""Test v4 Status reply"""
90100
charger = request.getfixturevalue(fixture)
101+
charger.update()
91102
status = charger.service_level
92103
assert status == expected
93104

@@ -98,6 +109,7 @@ def test_get_service_level(fixture, expected, request):
98109
def test_get_wifi_firmware(fixture, expected, request):
99110
"""Test v4 Status reply"""
100111
charger = request.getfixturevalue(fixture)
112+
charger.update()
101113
status = charger.wifi_firmware
102114
assert status == expected
103115

@@ -109,6 +121,7 @@ def test_get_wifi_firmware(fixture, expected, request):
109121
def test_get_ip_address(fixture, expected, request):
110122
"""Test v4 Status reply"""
111123
charger = request.getfixturevalue(fixture)
124+
charger.update()
112125
status = charger.ip_address
113126
assert status == expected
114127

@@ -119,6 +132,7 @@ def test_get_ip_address(fixture, expected, request):
119132
def test_get_charging_voltage(fixture, expected, request):
120133
"""Test v4 Status reply"""
121134
charger = request.getfixturevalue(fixture)
135+
charger.update()
122136
status = charger.charging_voltage
123137
assert status == expected
124138

@@ -129,6 +143,7 @@ def test_get_charging_voltage(fixture, expected, request):
129143
def test_get_mode(fixture, expected, request):
130144
"""Test v4 Status reply"""
131145
charger = request.getfixturevalue(fixture)
146+
charger.update()
132147
status = charger.mode
133148
assert status == expected
134149

@@ -139,6 +154,7 @@ def test_get_mode(fixture, expected, request):
139154
def test_get_using_ethernet(fixture, expected, request):
140155
"""Test v4 Status reply"""
141156
charger = request.getfixturevalue(fixture)
157+
charger.update()
142158
status = charger.using_ethernet
143159
assert status == expected
144160

@@ -149,6 +165,7 @@ def test_get_using_ethernet(fixture, expected, request):
149165
def test_get_stuck_relay_trip_count(fixture, expected, request):
150166
"""Test v4 Status reply"""
151167
charger = request.getfixturevalue(fixture)
168+
charger.update()
152169
status = charger.stuck_relay_trip_count
153170
assert status == expected
154171

@@ -159,6 +176,7 @@ def test_get_stuck_relay_trip_count(fixture, expected, request):
159176
def test_get_no_gnd_trip_count(fixture, expected, request):
160177
"""Test v4 Status reply"""
161178
charger = request.getfixturevalue(fixture)
179+
charger.update()
162180
status = charger.no_gnd_trip_count
163181
assert status == expected
164182

@@ -169,6 +187,7 @@ def test_get_no_gnd_trip_count(fixture, expected, request):
169187
def test_get_gfi_trip_count(fixture, expected, request):
170188
"""Test v4 Status reply"""
171189
charger = request.getfixturevalue(fixture)
190+
charger.update()
172191
status = charger.gfi_trip_count
173192
assert status == expected
174193

@@ -179,6 +198,7 @@ def test_get_gfi_trip_count(fixture, expected, request):
179198
def test_get_charge_time_elapsed(fixture, expected, request):
180199
"""Test v4 Status reply"""
181200
charger = request.getfixturevalue(fixture)
201+
charger.update()
182202
status = charger.charge_time_elapsed
183203
assert status == expected
184204

@@ -189,6 +209,7 @@ def test_get_charge_time_elapsed(fixture, expected, request):
189209
def test_get_wifi_signal(fixture, expected, request):
190210
"""Test v4 Status reply"""
191211
charger = request.getfixturevalue(fixture)
212+
charger.update()
192213
status = charger.wifi_signal
193214
assert status == expected
194215

@@ -199,6 +220,7 @@ def test_get_wifi_signal(fixture, expected, request):
199220
def test_get_charging_current(fixture, expected, request):
200221
"""Test v4 Status reply"""
201222
charger = request.getfixturevalue(fixture)
223+
charger.update()
202224
status = charger.charging_current
203225
assert status == expected
204226

@@ -209,6 +231,7 @@ def test_get_charging_current(fixture, expected, request):
209231
def test_get_current_capacity(fixture, expected, request):
210232
"""Test v4 Status reply"""
211233
charger = request.getfixturevalue(fixture)
234+
charger.update()
212235
status = charger.current_capacity
213236
assert status == expected
214237

@@ -219,6 +242,7 @@ def test_get_current_capacity(fixture, expected, request):
219242
def test_get_usage_total(fixture, expected, request):
220243
"""Test v4 Status reply"""
221244
charger = request.getfixturevalue(fixture)
245+
charger.update()
222246
status = charger.usage_total
223247
assert status == expected
224248

@@ -229,6 +253,7 @@ def test_get_usage_total(fixture, expected, request):
229253
def test_get_ambient_temperature(fixture, expected, request):
230254
"""Test v4 Status reply"""
231255
charger = request.getfixturevalue(fixture)
256+
charger.update()
232257
status = charger.ambient_temperature
233258
assert status == expected
234259

@@ -239,6 +264,7 @@ def test_get_ambient_temperature(fixture, expected, request):
239264
def test_get_rtc_temperature(fixture, expected, request):
240265
"""Test v4 Status reply"""
241266
charger = request.getfixturevalue(fixture)
267+
charger.update()
242268
status = charger.rtc_temperature
243269
assert status == expected
244270

@@ -249,6 +275,7 @@ def test_get_rtc_temperature(fixture, expected, request):
249275
def test_get_ir_temperature(fixture, expected, request):
250276
"""Test v4 Status reply"""
251277
charger = request.getfixturevalue(fixture)
278+
charger.update()
252279
status = charger.ir_temperature
253280
assert status is None
254281

@@ -259,6 +286,7 @@ def test_get_ir_temperature(fixture, expected, request):
259286
def test_get_esp_temperature(fixture, expected, request):
260287
"""Test v4 Status reply"""
261288
charger = request.getfixturevalue(fixture)
289+
charger.update()
262290
status = charger.esp_temperature
263291
assert status == expected
264292

@@ -270,6 +298,7 @@ def test_get_esp_temperature(fixture, expected, request):
270298
def test_get_time(fixture, expected, request):
271299
"""Test v4 Status reply"""
272300
charger = request.getfixturevalue(fixture)
301+
charger.update()
273302
status = charger.time
274303
assert status == expected
275304

@@ -280,6 +309,7 @@ def test_get_time(fixture, expected, request):
280309
def test_get_usage_session(fixture, expected, request):
281310
"""Test v4 Status reply"""
282311
charger = request.getfixturevalue(fixture)
312+
charger.update()
283313
status = charger.usage_session
284314
assert status == expected
285315

@@ -290,6 +320,7 @@ def test_get_usage_session(fixture, expected, request):
290320
def test_get_protocol_version(fixture, expected, request):
291321
"""Test v4 Status reply"""
292322
charger = request.getfixturevalue(fixture)
323+
charger.update()
293324
status = charger.protocol_version
294325
assert status == expected
295326

@@ -300,6 +331,7 @@ def test_get_protocol_version(fixture, expected, request):
300331
def test_get_min_amps(fixture, expected, request):
301332
"""Test v4 Status reply"""
302333
charger = request.getfixturevalue(fixture)
334+
charger.update()
303335
status = charger.min_amps
304336
assert status == expected
305337

@@ -310,5 +342,6 @@ def test_get_min_amps(fixture, expected, request):
310342
def test_get_max_amps(fixture, expected, request):
311343
"""Test v4 Status reply"""
312344
charger = request.getfixturevalue(fixture)
345+
charger.update()
313346
status = charger.max_amps
314347
assert status == expected

0 commit comments

Comments
 (0)