diff options
author | Eddy Pedroni <eddy@0xf7.com> | 2022-01-07 18:17:07 +0100 |
---|---|---|
committer | Eddy Pedroni <eddy@0xf7.com> | 2022-01-07 18:26:22 +0100 |
commit | 192100c0590dfbe2db498b356fbd1e1e19eace2c (patch) | |
tree | 22bd749baaa307e178160cf4cc8cb6976df44aff /solo_tool_cli_integrationtest.py | |
parent | 97f3c945fe2e1369c2e21cef4a474fac3ce4d8db (diff) |
Added very based CLI
Diffstat (limited to 'solo_tool_cli_integrationtest.py')
-rw-r--r-- | solo_tool_cli_integrationtest.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/solo_tool_cli_integrationtest.py b/solo_tool_cli_integrationtest.py new file mode 100644 index 0000000..ae007a3 --- /dev/null +++ b/solo_tool_cli_integrationtest.py @@ -0,0 +1,75 @@ +import pytest +import io +from contextlib import redirect_stdout + +from solo_tool_cli import SoloToolCLI +from solo_tool import SoloTool +from player_mock import Player + +class MockMidiController: + def __init__(self): + self.connected = False + + def connect(self): + self.connected = True + +@pytest.fixture +def mockPlayer(): + return Player() + +@pytest.fixture +def soloTool(mockPlayer): + return SoloTool(playerOverride=mockPlayer) + +@pytest.fixture +def mockMidi(soloTool): + return MockMidiController() + +@pytest.fixture +def uut(soloTool, mockMidi): + return SoloToolCLI("test_session.json", soloToolOverride=soloTool, midiOverride=mockMidi) + +def test_songSelection(uut, soloTool, mockPlayer): + expectedOutput = """\ +Songs: + 0 test.flac + 1 test.mp3 +Songs: + 0 test.flac + 1 test.mp3 +Songs: + 0 test.flac + 1 test.mp3 +""" + + with io.StringIO() as buf, redirect_stdout(buf): + uut.input("song") + assert mockPlayer.currentSong == None + + uut.input("song 0") + assert mockPlayer.currentSong == "test.flac" + + uut.input("song ") + + uut.input("song 1") + assert mockPlayer.currentSong == "test.mp3" + + uut.input("song") + + + assert buf.getvalue() == expectedOutput + +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 |