Merge pull request #304 from lurch/patch-2

Minor Energenie tweaks
This commit is contained in:
Dave Jones
2016-05-08 11:10:38 +01:00
2 changed files with 10 additions and 3 deletions

View File

@@ -846,6 +846,7 @@ class Energenie(SourceMixin, Device):
raise EnergenieSocketMissing('socket number must be provided')
if not (1 <= socket <= 4):
raise EnergenieBadSocket('socket number must be between 1 and 4')
self._value = None
super(Energenie, self).__init__()
self._socket = socket
self._master = _EnergenieMaster()
@@ -877,8 +878,9 @@ class Energenie(SourceMixin, Device):
@value.setter
def value(self, value):
self._master.transmit(self._socket, bool(value))
self._value = bool(value)
value = bool(value)
self._master.transmit(self._socket, value)
self._value = value
def on(self):
self.value = True

View File

@@ -430,11 +430,15 @@ def test_energenie_bad_init():
Energenie()
with pytest.raises(ValueError):
Energenie(0)
with pytest.raises(ValueError):
Energenie(5)
def test_energenie():
pins = [MockPin(n) for n in (17, 22, 23, 27, 24, 25)]
with Energenie(1, initial_value=True) as device1, \
Energenie(2, initial_value=False) as device2:
assert repr(device1) == '<gpiozero.Energenie object on socket 1>'
assert repr(device2) == '<gpiozero.Energenie object on socket 2>'
assert device1.value
assert not device2.value
[pin.clear_states() for pin in pins]
@@ -455,4 +459,5 @@ def test_energenie():
pins[3].assert_states_and_times([(0.0, True), (0.0, True)])
pins[4].assert_states_and_times([(0.0, False)])
pins[5].assert_states_and_times([(0.0, False), (0.1, True), (0.25, False)])
device1.close()
assert repr(device1) == '<gpiozero.Energenie object closed>'