Add Pico buzzer abstraction

This commit is contained in:
2026-06-03 02:47:48 -06:00
parent c3ebaf6beb
commit 2c7b090cfb
2 changed files with 66 additions and 0 deletions
+40
View File
@@ -628,3 +628,43 @@ def test_alarm_view_model_sensor_failure():
assert alarm["severity"] == "warning"
assert alarm["title"] == "Sensor Failure"
assert alarm["detail"] == "Outside"
class FakePin:
def __init__(self):
self.values = []
def value(self, value):
self.values.append(value)
def test_buzzer_on_off():
from hardware.buzzer import Buzzer
pin = FakePin()
buzzer = Buzzer(pin)
buzzer.on()
assert buzzer.enabled is True
assert pin.values[-1] == 1
buzzer.off()
assert buzzer.enabled is False
assert pin.values[-1] == 0
def test_buzzer_updates_from_alarm_view():
from hardware.buzzer import Buzzer
from ui.alarm_view_model import AlarmViewModel
buzzer = Buzzer()
buzzer.update_from_alarm_view(AlarmViewModel(["fridge_zone_1_high"]))
assert buzzer.enabled is True
assert buzzer.pattern == "critical"
buzzer.update_from_alarm_view(AlarmViewModel([]))
assert buzzer.enabled is False
assert buzzer.pattern is None