Skip to content

Commit b5ecaeb

Browse files
committed
Store V3 system volumes as Volume enums (#290)
1 parent 801238c commit b5ecaeb

2 files changed

Lines changed: 27 additions & 22 deletions

File tree

simplipy/system/v3.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -161,15 +161,17 @@ def alarm_duration(self) -> int:
161161

162162
@property # type: ignore
163163
@guard_from_missing_data()
164-
def alarm_volume(self) -> int:
164+
def alarm_volume(self) -> Volume:
165165
"""Return the volume level of the alarm.
166166
167167
:rtype: ``int``
168168
"""
169-
return int(
170-
self.settings_data["settings"]["normal"][
171-
SYSTEM_PROPERTIES_VALUE_MAP["alarm_volume"]
172-
]
169+
return Volume(
170+
int(
171+
self.settings_data["settings"]["normal"][
172+
SYSTEM_PROPERTIES_VALUE_MAP["alarm_volume"]
173+
]
174+
)
173175
)
174176

175177
@property # type: ignore
@@ -183,15 +185,17 @@ def battery_backup_power_level(self) -> int:
183185

184186
@property # type: ignore
185187
@guard_from_missing_data()
186-
def chime_volume(self) -> int:
188+
def chime_volume(self) -> Volume:
187189
"""Return the volume level of the door chime.
188190
189191
:rtype: ``int``
190192
"""
191-
return int(
192-
self.settings_data["settings"]["normal"][
193-
SYSTEM_PROPERTIES_VALUE_MAP["chime_volume"]
194-
]
193+
return Volume(
194+
int(
195+
self.settings_data["settings"]["normal"][
196+
SYSTEM_PROPERTIES_VALUE_MAP["chime_volume"]
197+
]
198+
)
195199
)
196200

197201
@property # type: ignore
@@ -308,16 +312,17 @@ def rf_jamming(self) -> bool:
308312

309313
@property # type: ignore
310314
@guard_from_missing_data()
311-
def voice_prompt_volume(self) -> int:
315+
def voice_prompt_volume(self) -> Volume:
312316
"""Return the volume level of the voice prompt.
313317
314318
:rtype: ``int``
315319
"""
316-
return cast(
317-
int,
318-
self.settings_data["settings"]["normal"][
319-
SYSTEM_PROPERTIES_VALUE_MAP["voice_prompt_volume"]
320-
],
320+
return Volume(
321+
int(
322+
self.settings_data["settings"]["normal"][
323+
SYSTEM_PROPERTIES_VALUE_MAP["voice_prompt_volume"]
324+
]
325+
)
321326
)
322327

323328
@property # type: ignore

tests/system/test_v3.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,9 @@ async def test_properties(aresponses, v3_server, v3_settings_response):
264264
systems = await simplisafe.async_get_systems()
265265
system = systems[TEST_SYSTEM_ID]
266266
assert system.alarm_duration == 240
267-
assert system.alarm_volume == Volume.HIGH.value
267+
assert system.alarm_volume == Volume.HIGH
268268
assert system.battery_backup_power_level == 5293
269-
assert system.chime_volume == Volume.MEDIUM.value
269+
assert system.chime_volume == Volume.MEDIUM
270270
assert system.connection_type == "wifi"
271271
assert system.entry_delay_away == 30
272272
assert system.entry_delay_home == 30
@@ -277,7 +277,7 @@ async def test_properties(aresponses, v3_server, v3_settings_response):
277277
assert system.offline is False
278278
assert system.power_outage is False
279279
assert system.rf_jamming is False
280-
assert system.voice_prompt_volume == Volume.MEDIUM.value
280+
assert system.voice_prompt_volume == Volume.MEDIUM
281281
assert system.wall_power_level == 5933
282282
assert system.wifi_ssid == "MY_WIFI"
283283
assert system.wifi_strength == -49
@@ -308,14 +308,14 @@ async def test_properties(aresponses, v3_server, v3_settings_response):
308308
}
309309
)
310310
assert system.alarm_duration == 240
311-
assert system.alarm_volume == Volume.HIGH.value
312-
assert system.chime_volume == Volume.MEDIUM.value
311+
assert system.alarm_volume == Volume.HIGH
312+
assert system.chime_volume == Volume.MEDIUM
313313
assert system.entry_delay_away == 30
314314
assert system.entry_delay_home == 30
315315
assert system.exit_delay_away == 60
316316
assert system.exit_delay_home == 0
317317
assert system.light is True
318-
assert system.voice_prompt_volume == Volume.MEDIUM.value
318+
assert system.voice_prompt_volume == Volume.MEDIUM
319319

320320
aresponses.assert_plan_strictly_followed()
321321

0 commit comments

Comments
 (0)