diff options
Diffstat (limited to 'solo-tool-project/test/midi_launchpad_mini_integrationtest.py')
-rw-r--r-- | solo-tool-project/test/midi_launchpad_mini_integrationtest.py | 120 |
1 files changed, 33 insertions, 87 deletions
diff --git a/solo-tool-project/test/midi_launchpad_mini_integrationtest.py b/solo-tool-project/test/midi_launchpad_mini_integrationtest.py index c0d2b47..ec41ab2 100644 --- a/solo-tool-project/test/midi_launchpad_mini_integrationtest.py +++ b/solo-tool-project/test/midi_launchpad_mini_integrationtest.py @@ -1,6 +1,8 @@ import pytest from mido import Message +pytestmark = pytest.mark.skip(reason="not yet implemented") + from solo_tool.midi_controller_launchpad_mini import MidiController from solo_tool.solo_tool import SoloTool from player_mock import Player as PlayerMock @@ -22,12 +24,10 @@ previousSongButton = 48 playPauseButton = 112 stopButton = 96 -nextLimitButton = 119 -previousLimitButton = 118 -abToggleButton = 98 -jumpToAButton = 114 -setAButton = 116 -setBButton = 117 +nextKeyPositionButton = 119 +previousKeyPositionButton = 118 +setKeyPositionButton = 117 +jumpToKeyPositionButton = 114 class MidiWrapperMock: def __init__(self): @@ -120,35 +120,16 @@ def test_startPauseButtonLed(uut, midiWrapperMock, playerMock, soloTool): playerMock.simulatePlayingStateChanged() assert midiWrapperMock.getLatestMessage() == (playPauseButton, MidiController.LED_GREEN, 0) -def test_abToggleButton(uut, midiWrapperMock, soloTool): - uut.connect() - - midiWrapperMock.simulateInput(abToggleButton) - assert soloTool.isAbLimitEnabled() - assert midiWrapperMock.getLatestMessage() == (abToggleButton, MidiController.LED_GREEN, 0) - - midiWrapperMock.simulateInput(abToggleButton) - assert not soloTool.isAbLimitEnabled() - assert midiWrapperMock.getLatestMessage() == (abToggleButton, MidiController.LED_RED, 0) - -def test_abToggleButtonLed(uut, midiWrapperMock, soloTool): - uut.connect() - - soloTool.setAbLimitEnable(True) - assert midiWrapperMock.getLatestMessage() == (abToggleButton, MidiController.LED_GREEN, 0) - - soloTool.setAbLimitEnable(False) - assert midiWrapperMock.getLatestMessage() == (abToggleButton, MidiController.LED_RED, 0) - -def test_jumpToAButton(uut, midiWrapperMock, soloTool, playerMock): - ab = (0.5, 0.6) +def test_jumpToKeyPositionButton(uut, midiWrapperMock, soloTool, playerMock): + soloTool.addSong("test.flac") + soloTool.song = 0 uut.connect() - soloTool.setAbLimits(ab[0], ab[1]) + soloTool.keyPosition = 0.5 assert playerMock.position == 0.0 - midiWrapperMock.simulateInput(jumpToAButton) - assert playerMock.position == ab[0] + midiWrapperMock.simulateInput(jumpToKeyPositionButton) + assert playerMock.position == 0.5 def test_previousAndNextSongButtons(uut, midiWrapperMock, soloTool, playerMock): songs = [ @@ -172,47 +153,29 @@ def test_previousAndNextSongButtons(uut, midiWrapperMock, soloTool, playerMock): midiWrapperMock.simulateInput(previousSongButton) assert playerMock.currentSong == songs[0] -def test_previousAndNextAbButtons(uut, midiWrapperMock, soloTool, playerMock): +def test_previousAndNextKeyPositionButtons(uut, midiWrapperMock, soloTool, playerMock): song = "test.flac" - abLimits = [ - [0.2, 0.4], - [0.1, 0.3] - ] + keyPositions = [0.2, 0.1] soloTool.addSong(song) soloTool.song = 0 - soloTool.setAbLimitEnable(True) - - for ab in abLimits: - soloTool.storeAbLimits(ab[0], ab[1]) + soloTool.keyPositions = keyPositions uut.connect() - def checkLimit(aLimit, bLimit): - playerMock.position = bLimit - 0.1 - soloTool.tick() - assert playerMock.position == bLimit - 0.1 - - playerMock.position = bLimit + 0.1 - soloTool.tick() - assert playerMock.position == aLimit - - checkLimit(0.0, 0.0) - - midiWrapperMock.simulateInput(nextLimitButton) - checkLimit(abLimits[0][0], abLimits[0][1]) + assert soloTool.keyPosition == 0.0 - midiWrapperMock.simulateInput(nextLimitButton) - checkLimit(abLimits[1][0], abLimits[1][1]) + midiWrapperMock.simulateInput(nextKeyPositionButton) + soloTool.keyPosition == 0.1 - midiWrapperMock.simulateInput(nextLimitButton) - checkLimit(abLimits[1][0], abLimits[1][1]) + midiWrapperMock.simulateInput(nextKeyPositionButton) + soloTool.keyPosition == 0.2 - midiWrapperMock.simulateInput(previousLimitButton) - checkLimit(abLimits[0][0], abLimits[0][1]) + midiWrapperMock.simulateInput(previousKeyPositionButton) + soloTool.keyPosition == 0.1 - midiWrapperMock.simulateInput(previousLimitButton) - checkLimit(abLimits[0][0], abLimits[0][1]) + midiWrapperMock.simulateInput(previousKeyPositionButton) + soloTool.keyPosition == 0.1 def test_playbackRateButtons(uut, midiWrapperMock, soloTool, playerMock): playbackRateOptions = { @@ -406,41 +369,24 @@ def test_playingFeedbackWhenChangingSong(uut, midiWrapperMock, soloTool, playerM assert playerMock.state == PlayerMock.STOPPED assert midiWrapperMock.getLatestMessage() == (playPauseButton, LED_YELLOW, 0) -def test_setAbButtons(uut, midiWrapperMock, soloTool, playerMock): +def test_setKeyPositionButton(uut, midiWrapperMock, soloTool, playerMock): song = "test.flac" soloTool.addSong(song) soloTool.song = 0 - soloTool.setAbLimitEnable(True) - abLimits = (0.6, 0.8) - soloTool.storeAbLimits(abLimits[0], abLimits[1]) uut.connect() - def checkLimit(aLimit, bLimit): - playerMock.position = bLimit - 0.1 - soloTool.tick() - assert playerMock.position == bLimit - 0.1 - - playerMock.position = bLimit + 0.1 - soloTool.tick() - assert playerMock.position == aLimit - - # Set A limit playerMock.position = 0.3 - midiWrapperMock.simulateInput(setAButton) - playerMock.position = 0.5 - midiWrapperMock.simulateInput(jumpToAButton) + midiWrapperMock.simulateInput(setKeyPositionButton) + assert soloTool.keyPosition == 0.3 - assert playerMock.position == 0.3 - - # Set B limit - playerMock.position = 0.4 - midiWrapperMock.simulateInput(setBButton) - checkLimit(0.3, 0.4) + playerMock.position = 0.5 + midiWrapperMock.simulateInput(setKeyPositionButton) + assert soloTool.keyPosition == 0.5 - # Selecting preset overrides manually set limits - midiWrapperMock.simulateInput(nextLimitButton) - checkLimit(abLimits[0], abLimits[1]) + playerMock.position = 0.7 + midiWrapperMock.simulateInput(jumpToKeyPositionButton) + assert playerMock.position == 0.5 def test_seekButtons(uut, midiWrapperMock, soloTool, playerMock): song = "test.flac" |