@@ -396,6 +396,33 @@ def _get_sink_volume(self, vm) -> str:
396396 self .fail ("{} sink-input not found in {}" .format (vm .name , audiovm .name ))
397397 assert False
398398
399+ def _reset_sink_volume (self , vm ) -> None :
400+ """Reset VM's sink-input volume to 100% and unmuted"""
401+ audiovm = vm .audiovm
402+
403+ sinks = json .loads (
404+ self ._call_in_audiovm (
405+ audiovm , ["pactl" , "-f" , "json" , "list" , "sink-inputs" ]
406+ )
407+ )
408+
409+ if not sinks :
410+ self .fail ("no sink-inputs found in {}" .format (audiovm .name ))
411+ assert False
412+
413+ for sink in sinks :
414+ if sink ["properties" ]["application.name" ] == vm .name :
415+ index = str (sink ["index" ])
416+ self ._call_in_audiovm (
417+ audiovm ,
418+ ["pactl" , "set-sink-input-volume" , index , "100%" ],
419+ )
420+ self ._call_in_audiovm (
421+ audiovm ,
422+ ["pactl" , index , "set-sink-input-mute" , "0" ],
423+ )
424+ break
425+
399426 async def retrieve_audio_input (self , vm , status ):
400427 try :
401428 await asyncio .wait_for (
@@ -784,7 +811,12 @@ def test_261_audio_initial_volume_42_percent(self):
784811 self .testvm1 .features ["audio-initial-volume" ] = "42"
785812 self .loop .run_until_complete (self .testvm1 .start ())
786813 self .wait_for_pulseaudio_startup (self .testvm1 )
787- assert self ._get_sink_volume (self .testvm1 ) == "42%"
814+ try :
815+ assert self ._get_sink_volume (self .testvm1 ) == "42%"
816+ except AssertionError :
817+ raise
818+ finally :
819+ self ._reset_sink_volume (self .testvm1 )
788820
789821 @unittest .skipUnless (
790822 spawn .find_executable ("pactl" ),
@@ -794,7 +826,12 @@ def test_262_audio_initial_volume_mute(self):
794826 self .testvm1 .features ["audio-initial-volume" ] = "mute"
795827 self .loop .run_until_complete (self .testvm1 .start ())
796828 self .wait_for_pulseaudio_startup (self .testvm1 )
797- assert self ._get_sink_volume (self .testvm1 ) == "mute"
829+ try :
830+ assert self ._get_sink_volume (self .testvm1 ) == "mute"
831+ except AssertionError :
832+ raise
833+ finally :
834+ self ._reset_sink_volume (self .testvm1 )
798835
799836
800837def create_testcases_for_templates ():
0 commit comments