示例#1
0
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())
示例#2
0
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)
示例#3
0
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())
示例#4
0
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())
示例#5
0
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)
示例#6
0
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()
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)