Files
python-gpiozero/tests/test_devices.py
Andrew Scheller c0d70f35f6 MockPin improvements
Change MockPin (and MockPWMPin) to make them behave more like 'real' pins - fixes #206
Add new MockPin tests, and rework some of the existing ones
Incorporate #216
2016-02-21 00:35:01 +00:00

71 lines
1.5 KiB
Python

from __future__ import (
unicode_literals,
absolute_import,
print_function,
division,
)
str = type('')
import pytest
from gpiozero.pins.mock import MockPin
from gpiozero import *
def teardown_function(function):
MockPin.clear_pins()
# TODO add more devices tests!
def test_device_no_pin():
with pytest.raises(GPIOPinMissing):
device = GPIODevice()
def test_device_init():
pin = MockPin(2)
device = GPIODevice(pin)
assert not device.closed
assert device.pin == pin
def test_device_init_twice_same_pin():
pin = MockPin(2)
device = GPIODevice(pin)
with pytest.raises(GPIOPinInUse):
device2 = GPIODevice(pin)
def test_device_init_twice_different_pin():
pin = MockPin(2)
device = GPIODevice(pin)
pin2 = MockPin(3)
device2 = GPIODevice(pin2)
def test_device_close():
pin = MockPin(2)
device = GPIODevice(pin)
device.close()
assert device.closed
assert device.pin is None
def test_device_reopen_same_pin():
pin = MockPin(2)
device = GPIODevice(pin)
device.close()
device2 = GPIODevice(pin)
assert not device2.closed
assert device2.pin == pin
assert device.closed
assert device.pin is None
def test_device_repr():
pin = MockPin(2)
device = GPIODevice(pin)
assert repr(device) == '<gpiozero.GPIODevice object on pin %s, is_active=False>' % pin
def test_device_repr_after_close():
pin = MockPin(2)
device = GPIODevice(pin)
device.close()
assert repr(device) == '<gpiozero.GPIODevice object closed>'