diff options
Diffstat (limited to 'cli-project/test/solo_tool_cli_integrationtest.py')
-rw-r--r-- | cli-project/test/solo_tool_cli_integrationtest.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/cli-project/test/solo_tool_cli_integrationtest.py b/cli-project/test/solo_tool_cli_integrationtest.py new file mode 100644 index 0000000..c29a223 --- /dev/null +++ b/cli-project/test/solo_tool_cli_integrationtest.py @@ -0,0 +1,41 @@ +import pytest +import io +from contextlib import redirect_stdout + +from solo_tool_cli import SoloToolCLI +from solo_tool import SoloTool + +class MockMidiController: + def __init__(self, soloTool): + self.connected = False + + def connect(self): + self.connected = True + +@pytest.fixture +def soloTool(): + return SoloTool() + +@pytest.fixture +def mockMidi(soloTool): + return MockMidiController(soloTool) + +@pytest.fixture +def uut(soloTool, mockMidi): + return SoloToolCLI("test_session.json", soloToolOverride=soloTool, midiOverride=mockMidi, tickEnable=False) + +def test_connectMidi(uut, mockMidi): + expectedOutput = """\ +Supported device: Novation Launchpad Mini MkII +Connecting to MIDI device... +""" + + with io.StringIO() as buf, redirect_stdout(buf): + uut.input("midi") + assert not mockMidi.connected + + uut.input("midi connect") + assert mockMidi.connected + + assert buf.getvalue() == expectedOutput + |