diff options
Diffstat (limited to 'midi_launchpad_mini_integrationtest.py')
-rw-r--r-- | midi_launchpad_mini_integrationtest.py | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/midi_launchpad_mini_integrationtest.py b/midi_launchpad_mini_integrationtest.py index 4601c8d..8779503 100644 --- a/midi_launchpad_mini_integrationtest.py +++ b/midi_launchpad_mini_integrationtest.py @@ -82,6 +82,8 @@ def test_jumpToAButton(uut, midiWrapperMock, soloTool, playerMock): assert playerMock.position == ab[0] def test_previousAndNextSongButtons(uut, midiWrapperMock, soloTool, playerMock): + nextSongButton = 119 + previousSongButton = 118 songs = [ "test.flac", "test.mp3" @@ -91,21 +93,66 @@ def test_previousAndNextSongButtons(uut, midiWrapperMock, soloTool, playerMock): uut.connect() assert playerMock.currentSong == None - midiWrapperMock.simulateInput(119) + midiWrapperMock.simulateInput(nextSongButton) assert playerMock.currentSong == songs[0] - midiWrapperMock.simulateInput(119) + midiWrapperMock.simulateInput(nextSongButton) assert playerMock.currentSong == songs[1] - midiWrapperMock.simulateInput(118) + midiWrapperMock.simulateInput(previousSongButton) assert playerMock.currentSong == songs[0] - midiWrapperMock.simulateInput(118) + midiWrapperMock.simulateInput(previousSongButton) assert playerMock.currentSong == songs[0] -def test_unprogrammedButton(uut, midiWrapperMock): - unusedButton = 48 +def test_previousAndNextAbButtons(uut, midiWrapperMock, soloTool, playerMock): + nextLimitButton = 103 + previousLimitButton = 102 + song = "test.flac" + abLimits = [ + [0.2, 0.4], + [0.1, 0.3] + ] + + soloTool.addSong(song) + soloTool.setSong(0) + soloTool.setAbLimitEnable(True) + + for ab in abLimits: + soloTool.storeAbLimits(ab[0], ab[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 + + checkLimit(0.0, 0.0) + + midiWrapperMock.simulateInput(nextLimitButton) + checkLimit(abLimits[0][0], abLimits[0][1]) + + midiWrapperMock.simulateInput(nextLimitButton) + checkLimit(abLimits[1][0], abLimits[1][1]) + + midiWrapperMock.simulateInput(nextLimitButton) + checkLimit(abLimits[1][0], abLimits[1][1]) + + midiWrapperMock.simulateInput(previousLimitButton) + checkLimit(abLimits[0][0], abLimits[0][1]) + + midiWrapperMock.simulateInput(previousLimitButton) + checkLimit(abLimits[0][0], abLimits[0][1]) + +def test_unassignedButton(uut, midiWrapperMock): + unassignedButton = 48 uut.connect() # expect no crash - midiWrapperMock.simulateInput(48) + midiWrapperMock.simulateInput(unassignedButton) + # XXX would be better to assert that nothing changed in the solo tool |