def test_make_interface_noop(): """ :py:func:`luma.core.cmdline.make_interface.noop` returns an ``noop` instance. """ class opts: interface = 'noop' factory = cmdline.make_interface(opts) assert 'luma.core.interface.serial.noop' in repr(factory.noop())
def test_ensure_cmdline_opt_contains_all_interfaces(): """ Checks that the cmdline make_interface factory contains initializers for all interface classes """ class opts: pass factory = cmdline.make_interface(opts) for interface in cmdline.get_interface_types(): assert hasattr(factory, interface)
def test_make_interface_ftdi_i2c(mock_controller): """ :py:func:`luma.core.cmdline.make_interface.ftdi_i2c` returns an I2C instance. """ class opts: ftdi_device = 'ftdi://dummy' i2c_port = 200 i2c_address = 0x710 factory = cmdline.make_interface(opts) assert 'luma.core.interface.serial.i2c' in repr(factory.ftdi_i2c())
def test_make_interface_ftdi_spi(mock_controller): """ :py:func:`luma.core.cmdline.make_interface.ftdi_spi` returns an SPI instance. """ class opts(test_spi_opts): ftdi_device = 'ftdi://dummy' gpio_data_command = 5 gpio_reset = 6 gpio_backlight = 7 factory = cmdline.make_interface(opts) assert 'luma.core.interface.serial.spi' in repr(factory.ftdi_spi())
def test_make_interface_bitbang(): """ :py:func:`luma.core.cmdline.make_interface.bitbang` returns an BitBang instance. """ try: factory = cmdline.make_interface(test_spi_opts) assert 'luma.core.interface.serial.bitbang' in repr(factory.bitbang()) except ImportError: # non-rpi platform, e.g. macos pytest.skip(rpi_gpio_missing) except error.UnsupportedPlatform as e: # non-rpi platform, e.g. ubuntu 64-bit skip_unsupported_platform(e)
def test_make_interface_pcf8574(): """ :py:func:`luma.core.cmdline.make_interface.pcf8574` returns an pcf8574 instance. """ class opts: i2c_port = 200 i2c_address = 0x710 path_name = f'/dev/i2c-{opts.i2c_port}' fake_open = i2c_error(path_name, errno.ENOENT) factory = cmdline.make_interface(opts) with patch('os.open', fake_open): with pytest.raises(error.DeviceNotFoundError): factory.pcf8574()
def test_make_interface_bitbang_6800(): """ :py:func:`luma.core.cmdline.make_interface.bitbang_6800` returns a Bitbang-6800 instance. """ class opts: pass try: factory = cmdline.make_interface(opts) assert 'luma.core.interface.parallel.bitbang_6800' in repr(factory.bitbang_6800()) except ImportError: # non-rpi platform, e.g. macos pytest.skip(rpi_gpio_missing) except error.UnsupportedPlatform as e: # non-rpi platform, e.g. ubuntu 64-bit skip_unsupported_platform(e)
def test_make_interface_gpio_cs_spi(): """ :py:func:`luma.core.cmdline.make_interface.gpio_cs_spi` returns an gpio_cs_spi instance. """ class opts(test_spi_opts): interface = 'gpio_cs_spi' spi_cs_high = True gpio_chip_select = 4 try: factory = cmdline.make_interface(opts) assert 'luma.core.interface.serial.spi' in repr(factory.gpio_cs_spi()) except ImportError: # non-rpi platform, e.g. macos pytest.skip(rpi_gpio_missing) except error.UnsupportedPlatform as e: # non-rpi platform, e.g. ubuntu 64-bit skip_unsupported_platform(e)
def test_make_interface_bitbang_6800_alt_gpio(): """ :py:func:`luma.core.cmdline.make_interface.bitbang_6800` returns an Bitbang-6800 instance when using an alternative GPIO implementation. """ class opts(): gpio = 'fake_gpio' with patch.dict('sys.modules', **{ 'fake_gpio': Mock(unsafe=True) }): try: factory = cmdline.make_interface(opts) assert 'luma.core.interface.parallel.bitbang_6800' in repr(factory.bitbang_6800()) except ImportError: pytest.skip(spidev_missing) except error.DeviceNotFoundError as e: # non-rpi platform, e.g. ubuntu 64-bit skip_unsupported_platform(e)