From 824912eb30d64c196e88602e5488803d8f16991a Mon Sep 17 00:00:00 2001 From: Brian Curtin Date: Tue, 1 Jun 2010 13:29:13 +0000 Subject: Fix #8618. Ask the Windows mixer API if there are any playback devices configured before attempting to test PlaySound. --- Lib/test/test_winsound.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py index 228dfa1..366c74b 100644 --- a/Lib/test/test_winsound.py +++ b/Lib/test/test_winsound.py @@ -5,6 +5,7 @@ from test import test_support import time import os import subprocess +import ctypes winsound = test_support.import_module('winsound') import _winreg @@ -12,6 +13,11 @@ import _winreg def has_sound(sound): """Find out if a particular event is configured with a default sound""" try: + # Ask the mixer API for the number of devices it knows about. + # When there are no devices, PlaySound will fail. + if ctypes.windll.winmm.mixerGetNumDevs() is 0: + return False + key = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER, "AppEvents\Schemes\Apps\.Default\{0}\.Default".format(sound)) value = _winreg.EnumValue(key, 0)[1] -- cgit v0.12