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/test/player_mock.py | 18 ++++++ .../test/solo_tool_tracks_integrationtest.py | 74 ++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 solo-tool-project/test/solo_tool_tracks_integrationtest.py (limited to 'solo-tool-project/test') 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