diff options
Diffstat (limited to 'Lib/test/test_ossaudiodev.py')
-rw-r--r-- | Lib/test/test_ossaudiodev.py | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py index 7a357a01ef9..9cb89d69a6d 100644 --- a/Lib/test/test_ossaudiodev.py +++ b/Lib/test/test_ossaudiodev.py @@ -1,9 +1,9 @@ -from test import test_support -test_support.requires('audio') +from test import support +support.requires('audio') -from test.test_support import findfile +from test.support import findfile -ossaudiodev = test_support.import_module('ossaudiodev') +ossaudiodev = support.import_module('ossaudiodev') import errno import sys @@ -44,7 +44,7 @@ class OSSAudioDevTests(unittest.TestCase): def play_sound_file(self, data, rate, ssize, nchannels): try: dsp = ossaudiodev.open('w') - except IOError, msg: + except IOError as msg: if msg.args[0] in (errno.EACCES, errno.ENOENT, errno.ENODEV, errno.EBUSY): raise unittest.SkipTest(msg) @@ -66,13 +66,13 @@ class OSSAudioDevTests(unittest.TestCase): for attr in ('closed', 'name', 'mode'): try: setattr(dsp, attr, 42) - except TypeError: + except (TypeError, AttributeError): pass else: self.fail("dsp.%s not read-only" % attr) # Compute expected running time of sound sample (in seconds). - expected_time = float(len(data)) / (ssize//8) / nchannels / rate + expected_time = float(len(data)) / (ssize/8) / nchannels / rate # set parameters based on .au file headers dsp.setparameters(AFMT_S16_NE, nchannels, rate) @@ -85,7 +85,8 @@ class OSSAudioDevTests(unittest.TestCase): percent_diff = (abs(elapsed_time - expected_time) / expected_time) * 100 self.assertTrue(percent_diff <= 10.0, - "elapsed time > 10% off of expected time") + "elapsed time (%s) > 10%% off of expected time (%s)" % + (elapsed_time, expected_time)) def set_parameters(self, dsp): # Two configurations for testing: @@ -137,7 +138,7 @@ class OSSAudioDevTests(unittest.TestCase): try: result = dsp.setparameters(fmt, channels, rate, True) - except ossaudiodev.OSSAudioError, err: + except ossaudiodev.OSSAudioError as err: pass else: self.fail("expected OSSAudioError") @@ -158,17 +159,28 @@ class OSSAudioDevTests(unittest.TestCase): dsp.close() self.assertTrue(dsp.closed) + def test_mixer_methods(self): + # Issue #8139: ossaudiodev didn't initialize its types properly, + # therefore some methods were unavailable. + with ossaudiodev.openmixer() as mixer: + self.assertGreaterEqual(mixer.fileno(), 0) + + def test_with(self): + with ossaudiodev.open('w') as dsp: + pass + self.assertTrue(dsp.closed) + def test_main(): try: dsp = ossaudiodev.open('w') - except (ossaudiodev.error, IOError), msg: + except (ossaudiodev.error, IOError) as msg: if msg.args[0] in (errno.EACCES, errno.ENOENT, errno.ENODEV, errno.EBUSY): raise unittest.SkipTest(msg) raise dsp.close() - test_support.run_unittest(__name__) + support.run_unittest(__name__) if __name__ == "__main__": test_main() |