summaryrefslogtreecommitdiff
path: root/Lib/test/test_winsound.py
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2008-03-05 05:14:18 +0000
committerNeal Norwitz <nnorwitz@gmail.com>2008-03-05 05:14:18 +0000
commit218072595e815b584e78b7af97d01e14e9b919f5 (patch)
tree2e02ba68272a7b148231924d3084af35be89e877 /Lib/test/test_winsound.py
parent31e88934ed567f80cdcc671d05862cb58ce61b1b (diff)
downloadcpython-git-218072595e815b584e78b7af97d01e14e9b919f5.tar.gz
Get this test to pass even when there is no sound card in the system.
Patch from Trent Nelson. (I can't test this.)
Diffstat (limited to 'Lib/test/test_winsound.py')
-rw-r--r--Lib/test/test_winsound.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/Lib/test/test_winsound.py b/Lib/test/test_winsound.py
index 19d4459a55..5606c44cc0 100644
--- a/Lib/test/test_winsound.py
+++ b/Lib/test/test_winsound.py
@@ -8,6 +8,13 @@ import subprocess
class BeepTest(unittest.TestCase):
+ # As with PlaySoundTest, incorporate the _have_soundcard() check
+ # into our test methods. If there's no audio device present,
+ # winsound.Beep returns 0 and GetLastError() returns 127, which
+ # is: ERROR_PROC_NOT_FOUND ("The specified procedure could not
+ # be found"). (FWIW, virtual/Hyper-V systems fall under this
+ # scenario as they have no sound devices whatsoever (not even
+ # a legacy Beep device).)
def test_errors(self):
self.assertRaises(TypeError, winsound.Beep)
@@ -15,12 +22,17 @@ class BeepTest(unittest.TestCase):
self.assertRaises(ValueError, winsound.Beep, 32768, 75)
def test_extremes(self):
- winsound.Beep(37, 75)
- winsound.Beep(32767, 75)
+ if _have_soundcard():
+ winsound.Beep(37, 75)
+ winsound.Beep(32767, 75)
+ else:
+ self.assertRaises(RuntimeError, winsound.Beep, 37, 75)
+ self.assertRaises(RuntimeError, winsound.Beep, 32767, 75)
def test_increasingfrequency(self):
- for i in xrange(100, 2000, 100):
- winsound.Beep(i, 75)
+ if _have_soundcard():
+ for i in xrange(100, 2000, 100):
+ winsound.Beep(i, 75)
class MessageBeepTest(unittest.TestCase):