aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/test/solo_tool_volume_integrationtest.py
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2025-07-17 23:24:15 +0200
committerEddy Pedroni <epedroni@pm.me>2025-07-17 23:24:15 +0200
commit748f056faf16b08ac41de991b1aeb664f2b86d8e (patch)
tree451b807a1abd54f99057070423eda6f49f8511ab /solo-tool-project/test/solo_tool_volume_integrationtest.py
parent7fb8e255e2e1cc912b029a5715db5b92258293b6 (diff)
Per-song volumeHEADv2.1master
Diffstat (limited to 'solo-tool-project/test/solo_tool_volume_integrationtest.py')
-rw-r--r--solo-tool-project/test/solo_tool_volume_integrationtest.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/solo-tool-project/test/solo_tool_volume_integrationtest.py b/solo-tool-project/test/solo_tool_volume_integrationtest.py
new file mode 100644
index 0000000..cc1aeef
--- /dev/null
+++ b/solo-tool-project/test/solo_tool_volume_integrationtest.py
@@ -0,0 +1,54 @@
+import pytest
+
+from fixtures import soloTool as uut, mockPlayer, testSongs
+
+def test_perSongVolumeFlow(uut, mockPlayer, testSongs):
+ # Before a song is added, the volume starts at 100%
+ assert uut.song is None
+ assert mockPlayer.currentSong == None
+ assert uut.volume == 1.0
+ assert mockPlayer.volume == 1.0
+
+ # When songs are added, their volume starts at 100%
+ uut.addSong(testSongs[0])
+ assert uut.song == 0
+ assert uut.volume == 1.0
+ assert mockPlayer.volume == 1.0
+
+ # It's possible to change the volume
+ uut.volume = 0.5
+ assert uut.volume == 0.5
+ assert mockPlayer.volume == 0.5
+
+ # New song song is added, volume stays because the new song is not selected
+ uut.addSong(testSongs[1])
+ assert uut.song == 0
+ assert uut.volume == 0.5
+ assert mockPlayer.volume == 0.5
+
+ # Select new song, volume is 100%
+ uut.song = 1
+ assert uut.volume == 1.0
+ assert mockPlayer.volume == 1.0
+
+ uut.volume = 0.75
+
+ # Previous song retains its volume
+ uut.song = 0
+ assert uut.volume == 0.5
+ assert mockPlayer.volume == 0.5
+
+ # New song also
+ uut.song = 1
+ assert uut.volume == 0.75
+ assert mockPlayer.volume == 0.75
+
+def test_perSongVolumeEdgeCases(uut, mockPlayer, testSongs):
+ # If the player volume is not 100% when the first song is added, it is set to 100%
+ uut.volume = 0.5
+ assert mockPlayer.volume == 0.5
+
+ uut.addSong(testSongs[0])
+ assert uut.volume == 1.0
+ assert mockPlayer.volume == 1.0
+