summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-08-21 22:49:52 (GMT)
committerGuido van Rossum <guido@python.org>2007-08-21 22:49:52 (GMT)
commit23cfc9845c9b0fdeb4759bd120cf6a465bf0af9e (patch)
treec667e0c8bd44497830063df70cdd06e2e9d0598f
parent003b09883ee3a710e85a68183861168c059ef773 (diff)
downloadcpython-23cfc9845c9b0fdeb4759bd120cf6a465bf0af9e.zip
cpython-23cfc9845c9b0fdeb4759bd120cf6a465bf0af9e.tar.gz
cpython-23cfc9845c9b0fdeb4759bd120cf6a465bf0af9e.tar.bz2
Convert sunaudio.py to bytes. (It has no unit test of its own!)
Fix test_ossaudiodev by closing the dsp properly (it can't be opened multiple times on my box).
-rw-r--r--Lib/sunaudio.py16
-rw-r--r--Lib/test/test_ossaudiodev.py1
2 files changed, 11 insertions, 6 deletions
diff --git a/Lib/sunaudio.py b/Lib/sunaudio.py
index 05bd867..ab4a8fa 100644
--- a/Lib/sunaudio.py
+++ b/Lib/sunaudio.py
@@ -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)
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py
index eb15e88..0cdc93c 100644
--- a/Lib/test/test_ossaudiodev.py
+++ b/Lib/test/test_ossaudiodev.py
@@ -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__":