Skip to content

Commit df9e383

Browse files
committed
Integration tests: Reset volume/mute settings
Reset testvm1 audio volume and clear mute setting after each test. To avoid conflicts with subsequent tests
1 parent d5b9b6c commit df9e383

1 file changed

Lines changed: 39 additions & 2 deletions

File tree

qubes/tests/integ/audio.py

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

800837
def create_testcases_for_templates():

0 commit comments

Comments
 (0)