diff options
Diffstat (limited to 'solo-tool-project/test')
3 files changed, 81 insertions, 62 deletions
| diff --git a/solo-tool-project/test/midi_launchpad_mini_integrationtest.py b/solo-tool-project/test/midi_launchpad_mini_integrationtest.py index ec41ab2..9588f9f 100644 --- a/solo-tool-project/test/midi_launchpad_mini_integrationtest.py +++ b/solo-tool-project/test/midi_launchpad_mini_integrationtest.py @@ -1,8 +1,6 @@  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 @@ -125,7 +123,7 @@ def test_jumpToKeyPositionButton(uut, midiWrapperMock, soloTool, playerMock):      soloTool.song = 0      uut.connect() -    soloTool.keyPosition = 0.5 +    soloTool.keyPoint = 0.5      assert playerMock.position == 0.0      midiWrapperMock.simulateInput(jumpToKeyPositionButton) @@ -147,6 +145,9 @@ def test_previousAndNextSongButtons(uut, midiWrapperMock, soloTool, playerMock):      midiWrapperMock.simulateInput(nextSongButton)      assert playerMock.currentSong == songs[1] +    midiWrapperMock.simulateInput(nextSongButton) +    assert playerMock.currentSong == songs[1] +      midiWrapperMock.simulateInput(previousSongButton)      assert playerMock.currentSong == songs[0] @@ -155,27 +156,27 @@ def test_previousAndNextSongButtons(uut, midiWrapperMock, soloTool, playerMock):  def test_previousAndNextKeyPositionButtons(uut, midiWrapperMock, soloTool, playerMock):      song = "test.flac" -    keyPositions = [0.2, 0.1] +    keyPoints = [0.2, 0.1]      soloTool.addSong(song)      soloTool.song = 0 -    soloTool.keyPositions = keyPositions +    soloTool.keyPoints = keyPoints      uut.connect() -    assert soloTool.keyPosition == 0.0 +    assert soloTool.keyPoint == 0.0      midiWrapperMock.simulateInput(nextKeyPositionButton) -    soloTool.keyPosition == 0.1 +    soloTool.keyPoint == 0.1      midiWrapperMock.simulateInput(nextKeyPositionButton) -    soloTool.keyPosition == 0.2 +    soloTool.keyPoint == 0.2      midiWrapperMock.simulateInput(previousKeyPositionButton) -    soloTool.keyPosition == 0.1 +    soloTool.keyPoint == 0.1      midiWrapperMock.simulateInput(previousKeyPositionButton) -    soloTool.keyPosition == 0.1 +    soloTool.keyPoint == 0.1  def test_playbackRateButtons(uut, midiWrapperMock, soloTool, playerMock):      playbackRateOptions = { @@ -233,9 +234,10 @@ def test_playbackRateLeds(uut, midiWrapperMock, soloTool, playerMock):      assert playerMock.rate == 1.0      for t, (rate, leds) in enumerate(playbackRateOptions): +        print(t)          midiWrapperMock.sentMessages.clear() -        soloTool.setPlaybackRate(rate) +        soloTool.rate = rate          assert playerMock.rate == rate          for i, colour in enumerate(leds): @@ -299,7 +301,7 @@ def test_playbackVolumeLeds(uut, midiWrapperMock, soloTool, playerMock):      for t, (volume, leds) in enumerate(playbackVolumeOptions):          midiWrapperMock.sentMessages.clear() -        soloTool.setPlaybackVolume(volume) +        soloTool.volume = volume          assert playerMock.volume == volume          for i, colour in enumerate(leds): @@ -319,22 +321,20 @@ def test_connectDisconnect(uut, midiWrapperMock):          [(i, LED_GREEN, 0) for i in range(0, 6)] +                      # volume row          [(i, LED_YELLOW, 0) for i in range(16, 22)] +                   # playback rate row          [ -            (stopButton,          LED_RED, 0), -            (playPauseButton,     LED_YELLOW, 0), -            (abToggleButton,      LED_RED, 0), -            (jumpToAButton,       LED_YELLOW, 0), -            (previousLimitButton, LED_RED, 0), -            (nextLimitButton,     LED_GREEN, 0), -            (setAButton,          LED_YELLOW, 0), -            (setBButton,          LED_YELLOW, 0), -            (previousSongButton,  LED_RED, 0), -            (rwd1PcButton,        LED_RED, 0), -            (rwd5PcButton,        LED_RED, 0), -            (rwd25PcButton,       LED_RED, 0), -            (nextSongButton,      LED_GREEN, 0), -            (fwd1PcButton,        LED_GREEN, 0), -            (fwd5PcButton,        LED_GREEN, 0), -            (fwd25PcButton,       LED_GREEN, 0), +            (stopButton,                LED_RED, 0), +            (playPauseButton,           LED_YELLOW, 0), +            (jumpToKeyPositionButton,   LED_YELLOW, 0), +            (previousKeyPositionButton, LED_RED, 0), +            (nextKeyPositionButton,     LED_GREEN, 0), +            (setKeyPositionButton,      LED_YELLOW, 0), +            (previousSongButton,        LED_RED, 0), +            (rwd1PcButton,              LED_RED, 0), +            (rwd5PcButton,              LED_RED, 0), +            (rwd25PcButton,             LED_RED, 0), +            (nextSongButton,            LED_GREEN, 0), +            (fwd1PcButton,              LED_GREEN, 0), +            (fwd5PcButton,              LED_GREEN, 0), +            (fwd25PcButton,             LED_GREEN, 0),          ])      teardownMessages = [(int(i / 8) * 16 + (i % 8), LED_OFF, 0) for i in range(0, 64)] # clear all @@ -378,11 +378,11 @@ def test_setKeyPositionButton(uut, midiWrapperMock, soloTool, playerMock):      playerMock.position = 0.3      midiWrapperMock.simulateInput(setKeyPositionButton) -    assert soloTool.keyPosition == 0.3 +    assert soloTool.keyPoint == 0.3      playerMock.position = 0.5      midiWrapperMock.simulateInput(setKeyPositionButton) -    assert soloTool.keyPosition == 0.5 +    assert soloTool.keyPoint == 0.5      playerMock.position = 0.7      midiWrapperMock.simulateInput(jumpToKeyPositionButton) diff --git a/solo-tool-project/test/solo_tool_controller_integrationtest.py b/solo-tool-project/test/solo_tool_controller_integrationtest.py index e39e5f9..8eb09f9 100644 --- a/solo-tool-project/test/solo_tool_controller_integrationtest.py +++ b/solo-tool-project/test/solo_tool_controller_integrationtest.py @@ -2,11 +2,11 @@ import pathlib  import shutil  import pytest -pytestmark = pytest.mark.skip(reason="not yet implemented") -  from solo_tool.solo_tool_controller import SoloToolController  from solo_tool.solo_tool import SoloTool +pytestmark = pytest.mark.skip(reason="not yet implemented") +  @pytest.fixture  def prepared_tmp_path(tmp_path):      testFiles = [ diff --git a/solo-tool-project/test/solo_tool_integrationtest.py b/solo-tool-project/test/solo_tool_integrationtest.py index 94d5cef..2a818ed 100644 --- a/solo-tool-project/test/solo_tool_integrationtest.py +++ b/solo-tool-project/test/solo_tool_integrationtest.py @@ -54,35 +54,58 @@ def test_playerControls(uut, mockPlayer):      assert uut.volume == 0.5  def test_sanitizePlaybackRate(uut): -    # Valid rates are > 0.0 -    with pytest.raises(ValueError): -        uut.rate = -0.1 +    # Initial value +    assert uut.rate == 1.0 -    with pytest.raises(ValueError): -        uut.rate = 0.0 +    # Valid rates are >= 0.0, invalid is ignored +    uut.rate = -0.1 +    assert uut.rate == 1.0 + +    uut.rate = 0.0 +    assert uut.rate == 0.0 +     +    uut.rate = 0.0001 +    assert uut.rate == 0.0001 -    uut.rate = 1.0      uut.rate = 150.0 +    assert uut.rate == 150.0  def test_sanitizePlaybackPosition(uut): -    # Valid positions are in [0, 1) -    with pytest.raises(ValueError): -        uut.position = -0.1 +    # Initial value +    assert uut.position == 0.0 + +    # Valid positions are in [0, 1], invalid is limited +    uut.position = 0.2 +    assert uut.position == 0.2 + +    uut.position = -0.1 +    assert uut.position == 0.0 + +    uut.position = 1.0 +    assert uut.position == 1.0 -    uut.position = 0.0 -    uut.position = 0.999 +    uut.position = 0.4 +    assert uut.position == 0.4 -    with pytest.raises(ValueError): -        uut.position = 1.0 +    uut.position = 1.5 +    assert uut.position == 1.0  def test_sanitizePlaybackVolume(uut): -    # Valid volumes are >= 0.0 -    with pytest.raises(ValueError): -        uut.volume = -0.1 +    # Initial value +    assert uut.volume == 1.0 + +    # Valid volumes are >= 0.0, invalid is ignored +    uut.volume = -0.1 +    assert uut.volume == 1.0      uut.volume = 0.0 +    assert uut.volume == 0.0 +      uut.volume = 1.0 +    assert uut.volume == 1.0 +      uut.volume = 150.0 +    assert uut.volume == 150.0  def test_addAndSelectSongs(uut, mockPlayer):      songs = [ @@ -112,17 +135,14 @@ def test_addAndSelectSongs(uut, mockPlayer):          assert uut.song == i      # The current song cannot be de-selected -    with pytest.raises(ValueError): -        uut.song = None +    uut.song = None      assert uut.song == len(uut.songs) - 1      # Non-existent songs cannot be selected -    with pytest.raises(ValueError): -        uut.song = -1 +    uut.song = -1      assert uut.song == len(uut.songs) - 1 -    with pytest.raises(ValueError): -        uut.song = 2 +    uut.song = 2      assert uut.song == len(uut.songs) - 1  def test_addAndJumpToKeyPoints(uut, mockPlayer): @@ -174,22 +194,21 @@ def test_sanitizeKeyPoint(uut):      # Key point and key point list cannot be none      uut.keyPoint = 0.5 -    with pytest.raises(ValueError): -        uut.keyPoint = None +    uut.keyPoint = None      assert uut.keyPoint == 0.5 -    with pytest.raises(ValueError): -        uut.keyPoints = None +    uut.keyPoints = None      assert uut.keyPoints == [0.1, 0.2, 0.4]      # Valid key points are in [0, 1) -    with pytest.raises(ValueError): -        uut.keyPoint = -0.1 +    uut.keyPoint = -0.1 +    assert uut.keyPoint == 0.5 -    with pytest.raises(ValueError): -        uut.keyPoint = 1.0 +    uut.keyPoint = 1.0 +    assert uut.keyPoint == 0.5      uut.keyPoint = 0.999 +    assert uut.keyPoint == 0.999  def test_keyPointsPerSong(uut, mockPlayer):      songs = [ | 
