aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project
diff options
context:
space:
mode:
Diffstat (limited to 'solo-tool-project')
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py12
-rw-r--r--solo-tool-project/test/player_mock.py18
-rw-r--r--solo-tool-project/test/solo_tool_tracks_integrationtest.py74
3 files changed, 98 insertions, 6 deletions
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index 5ac7140..591d303 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -15,12 +15,12 @@ class SoloTool:
self._adHoc = False
tracks = [
- ("vocalTrackEnabled", Player.VOCAL_TRACK),
- ("guitarTrackEnabled", Player.GUITAR_TRACK),
- ("bassTrackEnabled", Player.BASS_TRACK),
- ("pianoTrackEnabled", Player.PIANO_TRACK),
- ("drumTrackEnabled", Player.DRUM_TRACK),
- ("otherTrackEnabled", Player.OTHER_TRACK)
+ ("vocalTrackEnabled", self._player.VOCAL_TRACK),
+ ("guitarTrackEnabled", self._player.GUITAR_TRACK),
+ ("bassTrackEnabled", self._player.BASS_TRACK),
+ ("pianoTrackEnabled", self._player.PIANO_TRACK),
+ ("drumTrackEnabled", self._player.DRUM_TRACK),
+ ("otherTrackEnabled", self._player.OTHER_TRACK)
]
for trackName, trackId in tracks:
if not hasattr(type(self), trackName):
diff --git a/solo-tool-project/test/player_mock.py b/solo-tool-project/test/player_mock.py
index a234e80..8c999d2 100644
--- a/solo-tool-project/test/player_mock.py
+++ b/solo-tool-project/test/player_mock.py
@@ -1,4 +1,11 @@
class Player():
+ VOCAL_TRACK = 1
+ GUITAR_TRACK = 2
+ BASS_TRACK = 3
+ PIANO_TRACK =4
+ DRUM_TRACK = 5
+ OTHER_TRACK = 6
+
def __init__(self):
self.playing = False
self.rate = 1.0
@@ -7,6 +14,8 @@ class Player():
self.currentSong = None
self.playingStateChangedCallback = None
self.playbackVolumeChangedCallback = None
+ self.tSupported = False
+ self.tracks = {i+1: True for i in range(6)}
def play(self):
previousState = self.playing
@@ -60,3 +69,12 @@ class Player():
def simulatePlaybackVolumeChanged(self):
self.playbackVolumeChangedCallback()
+
+ def tracksSupported(self):
+ return self.tSupported
+
+ def trackEnabled(self, trackId):
+ return self.tracks[trackId]
+
+ def setTrackEnabled(self, trackId, enable):
+ self.tracks[trackId] = enable
diff --git a/solo-tool-project/test/solo_tool_tracks_integrationtest.py b/solo-tool-project/test/solo_tool_tracks_integrationtest.py
new file mode 100644
index 0000000..55b20c3
--- /dev/null
+++ b/solo-tool-project/test/solo_tool_tracks_integrationtest.py
@@ -0,0 +1,74 @@
+import pytest
+
+from fixtures import soloTool as uut, mockPlayer, testSongs
+
+def test_trackConfigurationFlow(uut, mockPlayer, testSongs):
+ # Track support is reported according to player
+ mockPlayer.tSupported = False
+ assert not uut.tracksSupported
+ mockPlayer.tSupported = True
+ assert uut.tracksSupported
+
+ # Enabling each track affects the player accordingly
+ # Tracks are numbered according to the grabnsplit layout
+ expectedTrackState = mockPlayer.tracks.copy()
+
+ uut.vocalTrackEnabled = False
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[1] = False
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.vocalTrackEnabled = True
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[1] = True
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.guitarTrackEnabled = False
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[2] = False
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.guitarTrackEnabled = True
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[2] = True
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.bassTrackEnabled = False
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[3] = False
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.bassTrackEnabled = True
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[3] = True
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.pianoTrackEnabled = False
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[4] = False
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.pianoTrackEnabled = True
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[4] = True
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.drumTrackEnabled = False
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[5] = False
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.drumTrackEnabled = True
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[5] = True
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.otherTrackEnabled = False
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[6] = False
+ assert mockPlayer.tracks == expectedTrackState
+
+ uut.otherTrackEnabled = True
+ assert mockPlayer.tracks != expectedTrackState
+ expectedTrackState[6] = True
+ assert mockPlayer.tracks == expectedTrackState