def test_rpilcdmenu_pulseEnable_is_blinking_pin_e():
    RPi_mock = Mock()
    RPi_mock.GPIO = Mock()
    RPi_mock.GPIO.output = Mock()

    with patch.dict(sys.modules, {'RPi': RPi_mock, 'RPi.GPIO': Mock()}):
        lcd = RpiLCDHwd(1, 2, [3, 4, 5, 6])

        lcd.pulseEnable()

        assert RPi_mock.GPIO.output.mock_calls == [
            call(2, False), call(2, True),
            call(2, False)
        ]
def test_rpilcdmenu_write4bits_transfers_data_through_GPIO():
    RPi_mock = Mock()
    RPi_mock.GPIO = Mock()
    RPi_mock.GPIO.output = Mock()

    with patch.dict(sys.modules, {'RPi': RPi_mock, 'RPi.GPIO': Mock()}):
        lcd = RpiLCDHwd(1, 2, [3, 4, 5, 6])

        lcd.delayMicroseconds = Mock()
        lcd.pulseEnable = Mock()

        lcd.write4bits(0x123)
        assert RPi_mock.GPIO.output.mock_calls == [
            call(1, False),
            call(3, False),
            call(4, False),
            call(5, False),
            call(6, False),
            call(6, True),
            call(3, True),
            call(3, False),
            call(4, False),
            call(5, False),
            call(6, False),
            call(3, True)
        ]