2019-11-21 20:06:13 +01:00
|
|
|
import sys
|
|
|
|
from unittest import mock
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
from mopidy_raspberry_gpio import Extension
|
|
|
|
from mopidy_raspberry_gpio import frontend as frontend_lib
|
|
|
|
from mopidy_raspberry_gpio import pinconfig
|
|
|
|
|
|
|
|
deserialize = pinconfig.PinConfig().deserialize
|
|
|
|
|
|
|
|
dummy_config = {
|
|
|
|
"raspberry-gpio": {
|
|
|
|
# Plugins expect settings to be deserialized
|
|
|
|
"bcm1": deserialize("play_pause,active_low,30")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
def test_get_frontend_classes():
|
|
|
|
sys.modules["RPi"] = mock.Mock()
|
|
|
|
sys.modules["RPi.GPIO"] = mock.Mock()
|
|
|
|
|
|
|
|
ext = Extension()
|
|
|
|
registry = mock.Mock()
|
|
|
|
|
|
|
|
ext.setup(registry)
|
|
|
|
|
|
|
|
registry.add.assert_called_once_with(
|
|
|
|
"frontend", frontend_lib.RaspberryGPIOFrontend
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def test_frontend_handler_dispatch():
|
|
|
|
sys.modules["RPi"] = mock.Mock()
|
|
|
|
sys.modules["RPi.GPIO"] = mock.Mock()
|
|
|
|
|
|
|
|
frontend = frontend_lib.RaspberryGPIOFrontend(dummy_config, mock.Mock())
|
|
|
|
|
|
|
|
with pytest.raises(RuntimeError):
|
|
|
|
frontend.dispatch_input("tomato")
|