def test_incorrect_return_code(mock_class): spi = GPIO(channel=0, frequency=25000, library='wiringPi') spi.handle.wiringPiSPIDataRW = MagicMock() spi.handle.wiringPiSPIDataRW.return_value = -1 data = bitstring.pack('uint:4', 1) with pytest.raises(SPIDataTransmissionError): spi.send_data(data)
def test_pins_read(self, mock_class): interface = GPIO(channel=0, frequency=25000, library='wiringPi') interface.read_pin([0, 1, 2]) setup_calls = [call(0, 0), call(1, 0), call(2, 0)] interface.handle.pinMode.assert_has_calls(setup_calls) read_calls = [call(0), call(1), call(2)] interface.handle.digitalRead.assert_has_calls(read_calls)
def test_transmission(mock_class): spi = GPIO(channel=0, frequency=25000, library='wiringPi') spi.handle.wiringPiSPIDataRW = MagicMock() spi.handle.wiringPiSPIDataRW.return_value = 0 data = [1] spi.send_data(data) assert spi.handle.wiringPiSPIDataRW.called
def __init__(self, *args, **kwargs): self.channel = kwargs['channel'] self.frequency = kwargs['frequency'] self.gpio = GPIO(**kwargs) self.old_bit_string = None self.new_bit_string = None self.weather_data = {} self.bits: List[dict] = kwargs['bits'] self.stations = kwargs['stations']
def test_initialization_wrong_channel(): with pytest.raises(SPISetupException): GPIO(channel=2, frequency=25000, library='wiringPi')
def test_pack_with_large_bytes(mock_class): spi = GPIO(channel=0, frequency=25000, library='wiringPi') data = [-10, -1, 0, 255, 256, 266] with pytest.raises(ValueError): spi.pack(data=data)
def test_pack_with_iterable(mock_class): spi = GPIO(channel=0, frequency=25000, library='wiringPi') it = list(range(0, 10)) data_packet, length = spi.pack(data=it) assert [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] == list(data_packet) assert len(it) == length
def test_pack_with_two_elements(mock_class): spi = GPIO(channel=0, frequency=25000, library='wiringPi') data = [1, 2] data_packet, length = spi.pack(data) assert [1, 2] == list(data_packet) assert 2 == length
def test_pack_with_empty_list(mock_class): spi = GPIO(channel=0, frequency=25000, library='wiringPi') data = [] data_packet, length = spi.pack(data) assert [] == list(data_packet) assert length == 0
def test_initialization(mock_class): GPIO(channel=0, frequency=25000, library='wiringPi')
def test_pin_read(self, mock_class): interface = GPIO(channel=0, frequency=25000, library='wiringPi') interface.read_pin([3]) interface.handle.pinMode.assert_called_once_with(3, 0) interface.handle.digitalRead.assert_called_once_with(3)
def test_init_both_pins_and_spi(self, mock_loader): gpio = GPIO(channel=0, frequency=500000, library='wiringPi') gpio.handle.wiringPiSPISetup.assert_called_once_with(0, 500000)
def test_send(self, mock_loader): g = GPIO(channel=0, frequency=0, library='None') g.send_data('abc'.encode('UTF-16'))
def test_constructor(self, mock_loader): g = GPIO(channel=0, frequency=0, library='wiringPi') self.assertTrue(g)
def test_gpio_context_manager(self, mock_loader): g = GPIO(channel=0, frequency=10000, library='None', interrupt=0) l = [128] result, length = g.pack(l) self.assertEqual(list(result), l)