From: Brian Curtin Date: Tue, 1 Jun 2010 13:42:48 +0000 (+0000) Subject: Merged revisions 81640 via svnmerge from X-Git-Tag: v2.6.6rc1~225 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=360878ffddf0f22c7e4ec8682b6f61afef477e60;p=python Merged revisions 81640 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81640 | brian.curtin | 2010-06-01 08:29:13 -0500 (Tue, 01 Jun 2010) | 3 lines Fix #8618. Ask the Windows mixer API if there are any playback devices configured before attempting to test PlaySound. ........ --- diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py index eff7229bd9..de444220c6 100644 --- a/Lib/test/test_winsound.py +++ b/Lib/test/test_winsound.py @@ -2,15 +2,23 @@ import unittest from test import test_support -import winsound, time +import time import os import subprocess +import ctypes + +winsound = test_support.import_module('winsound') 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]