Merge pull request #214 from lurch/patch-4

MockPin fixups
This commit is contained in:
Dave Jones
2016-02-20 17:41:46 +00:00
2 changed files with 18 additions and 3 deletions

View File

@@ -64,9 +64,10 @@ class MockPin(Pin):
def _set_state(self, value): def _set_state(self, value):
if self._function == 'input': if self._function == 'input':
raise PinSetInput() raise PinSetInput('cannot set state of pin %r' % self)
assert self._function == 'output' assert self._function == 'output'
assert 0 <= value <= 1 assert 0 <= value <= 1
value = bool(value)
if self._state != value: if self._state != value:
t = time() t = time()
self._state = value self._state = value
@@ -77,7 +78,8 @@ class MockPin(Pin):
return None return None
def _set_frequency(self, value): def _set_frequency(self, value):
raise PinPWMUnsupported() if value is not None:
raise PinPWMUnsupported()
def _get_pull(self): def _get_pull(self):
return self._pull return self._pull
@@ -159,6 +161,18 @@ class MockPWMPin(MockPin):
super(MockPWMPin, self).__init__(number) super(MockPWMPin, self).__init__(number)
self._frequency = None self._frequency = None
def _set_state(self, value):
if self._function == 'input':
raise PinSetInput('cannot set state of pin %r' % self)
assert self._function == 'output'
assert 0 <= value <= 1
value = float(value)
if self._state != value:
t = time()
self._state = value
self.states.append(PinState(t - self._last_change, value))
self._last_change = t
def _get_frequency(self): def _get_frequency(self):
return self._frequency return self._frequency

View File

@@ -24,8 +24,9 @@ def test_mock_pin_init():
assert MockPin(2).number == 2 assert MockPin(2).number == 2
def test_mock_pin_frequency_unsupported(): def test_mock_pin_frequency_unsupported():
pin = MockPin(3)
pin.frequency = None
with pytest.raises(PinPWMUnsupported): with pytest.raises(PinPWMUnsupported):
pin = MockPin(3)
pin.frequency = 100 pin.frequency = 100
def test_mock_pin_frequency_supported(): def test_mock_pin_frequency_supported():