]> granicus.if.org Git - python/commitdiff
Convert sunaudio.py to bytes. (It has no unit test of its own!)
authorGuido van Rossum <guido@python.org>
Tue, 21 Aug 2007 22:49:52 +0000 (22:49 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 21 Aug 2007 22:49:52 +0000 (22:49 +0000)
Fix test_ossaudiodev by closing the dsp properly (it can't be opened
multiple times on my box).

Lib/sunaudio.py
Lib/test/test_ossaudiodev.py

index 05bd867281c2fe0ee8c3214e91ddd00aabc7938b..ab4a8fa7e6f4d2ac5047271db4b1f1a9f56457ae 100644 (file)
@@ -1,14 +1,14 @@
 """Interpret sun audio headers."""
 
-MAGIC = '.snd'
+MAGIC = b'.snd'
 
 class error(Exception):
     pass
 
 
 def get_long_be(s):
-    """Convert a 4-char value to integer."""
-    return (ord(s[0])<<24) | (ord(s[1])<<16) | (ord(s[2])<<8) | ord(s[3])
+    """Convert a 4-byte value to integer."""
+    return (s[0]<<24) | (s[1]<<16) | (s[2]<<8) | s[3]
 
 
 def gethdr(fp):
@@ -26,15 +26,19 @@ def gethdr(fp):
     if excess > 0:
         info = fp.read(excess)
     else:
-        info = ''
+        info = b''
     return (data_size, encoding, sample_rate, channels, info)
 
 
 def printhdr(file):
     """Read and print the sound header of a named file."""
-    hdr = gethdr(open(file, 'r'))
+    f = open(file, 'rb')
+    try:
+        hdr = gethdr(f)
+    finally:
+        f.close()
     data_size, encoding, sample_rate, channels, info = hdr
-    while info[-1:] == '\0':
+    while info.endswith(b'\0'):
         info = info[:-1]
     print('File name:  ', file)
     print('Data size:  ', data_size)
index eb15e8890d4e109e8b3f79a6b1ba52a0aaf21796..0cdc93cc73020b0103f3154d072b02a66df8a86b 100644 (file)
@@ -170,6 +170,7 @@ def test_main():
                            errno.ENODEV, errno.EBUSY):
             raise TestSkipped(msg)
         raise
+    dsp.close()
     test_support.run_unittest(__name__)
 
 if __name__ == "__main__":