From 2165cb8be7a0c74d2902ec5431cac429ac5050b2 Mon Sep 17 00:00:00 2001 From: Eddy Pedroni Date: Fri, 23 Oct 2026 08:40:37 +0200 Subject: track integration tests --- solo-tool-project/src/solo_tool/solo_tool.py | 12 ++-- solo-tool-project/test/player_mock.py | 18 ++++++ .../test/solo_tool_tracks_integrationtest.py | 74 ++++++++++++++++++++++ 3 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 solo-tool-project/test/solo_tool_tracks_integrationtest.py 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 -- cgit v1.2.3