示例#1
0
def test_spi_software_params():
    with patch('os.open'), patch('mmap.mmap') as mmap_mmap, patch(
            'io.open') as io_open:
        mmap_mmap.return_value = array(nstr('B'), (0, ) * 4096)
        io_open.return_value.__enter__.return_value = ['Revision: a21042']
        factory = NativeFactory()
        with patch('gpiozero.pins.local.SpiDev'):
            with factory.spi(select_pin=6) as device:
                assert isinstance(device, LocalPiSoftwareSPI)
                device.close()
                assert device.closed
            with factory.spi(clock_pin=11, mosi_pin=9, miso_pin=10) as device:
                assert isinstance(device, LocalPiSoftwareSPI)
                device._bus.close()
                assert device._bus.closed
                device.close()
                assert device.closed
            with factory.spi(select_pin=6, shared=True) as device:
                assert isinstance(device, LocalPiSoftwareSPIShared)
        with patch('gpiozero.pins.local.SpiDev', None):
            # Clear out the old factory's caches (this is only necessary because
            # we're being naughty switching out patches)
            factory.pins.clear()
            factory._reservations.clear()
            # Ensure software fallback works when SpiDev isn't present
            with factory.spi() as device:
                assert isinstance(device, LocalPiSoftwareSPI)
示例#2
0
def test_spi_software_params():
    with patch('os.open'), patch('mmap.mmap') as mmap_mmap, patch('io.open') as io_open:
        mmap_mmap.return_value = array(nstr('B'), (0,) * 4096)
        io_open.return_value.__enter__.return_value = ['Revision: a21042']
        factory = NativeFactory()
        with patch('gpiozero.pins.local.SpiDev'):
            with factory.spi(select_pin=6) as device:
                assert isinstance(device, LocalPiSoftwareSPI)
                device.close()
                assert device.closed
            with factory.spi(clock_pin=11, mosi_pin=9, miso_pin=10) as device:
                assert isinstance(device, LocalPiSoftwareSPI)
                device._bus.close()
                assert device._bus.closed
                device.close()
                assert device.closed
            with factory.spi(select_pin=6, shared=True) as device:
                assert isinstance(device, LocalPiSoftwareSPIShared)
        with patch('gpiozero.pins.local.SpiDev', None):
            # Clear out the old factory's caches (this is only necessary because
            # we're being naughty switching out patches)
            factory.pins.clear()
            factory._reservations.clear()
            # Ensure software fallback works when SpiDev isn't present
            with factory.spi() as device:
                assert isinstance(device, LocalPiSoftwareSPI)
示例#3
0
def test_spi_hardware_params():
    with patch('os.open'), patch('mmap.mmap') as mmap_mmap, patch(
            'io.open') as io_open:
        mmap_mmap.return_value = array(nstr('B'), (0, ) * 4096)
        io_open.return_value.__enter__.return_value = ['Revision: a21042']
        factory = NativeFactory()
        with patch('gpiozero.pins.local.SpiDev'):
            with factory.spi() as device:
                assert isinstance(device, LocalPiHardwareSPI)
                device.close()
                assert device.closed
            with factory.spi(port=0, device=0) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(port=0, device=1) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(clock_pin=11) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(clock_pin=11, mosi_pin=10,
                             select_pin=8) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(clock_pin=11, mosi_pin=10,
                             select_pin=7) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(shared=True) as device:
                assert isinstance(device, LocalPiHardwareSPIShared)
            with pytest.raises(ValueError):
                factory.spi(port=1)
            with pytest.raises(ValueError):
                factory.spi(device=2)
            with pytest.raises(ValueError):
                factory.spi(port=0, clock_pin=12)
            with pytest.raises(ValueError):
                factory.spi(foo='bar')
示例#4
0
def test_spi_hardware_params():
    with patch('os.open'), patch('mmap.mmap') as mmap_mmap, patch('io.open') as io_open:
        mmap_mmap.return_value = array(nstr('B'), (0,) * 4096)
        io_open.return_value.__enter__.return_value = ['Revision: a21042']
        factory = NativeFactory()
        with patch('gpiozero.pins.local.SpiDev'):
            with factory.spi() as device:
                assert isinstance(device, LocalPiHardwareSPI)
                device.close()
                assert device.closed
            with factory.spi(port=0, device=0) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(port=0, device=1) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(clock_pin=11) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(clock_pin=11, mosi_pin=10, select_pin=8) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(clock_pin=11, mosi_pin=10, select_pin=7) as device:
                assert isinstance(device, LocalPiHardwareSPI)
            with factory.spi(shared=True) as device:
                assert isinstance(device, LocalPiHardwareSPIShared)
            with pytest.raises(ValueError):
                factory.spi(port=1)
            with pytest.raises(ValueError):
                factory.spi(device=2)
            with pytest.raises(ValueError):
                factory.spi(port=0, clock_pin=12)
            with pytest.raises(ValueError):
                factory.spi(foo='bar')