Commit 3afa64a2 authored by Antoine Pitrou's avatar Antoine Pitrou

#3567: fix sunau for running with -bb and make test_ossaudiodev work.

parent c057aea5
...@@ -135,7 +135,7 @@ def _read_u32(file): ...@@ -135,7 +135,7 @@ def _read_u32(file):
x = 0 x = 0
for i in range(4): for i in range(4):
byte = file.read(1) byte = file.read(1)
if byte == '': if not byte:
raise EOFError raise EOFError
x = x*256 + ord(byte) x = x*256 + ord(byte)
return x return x
...@@ -144,10 +144,9 @@ def _write_u32(file, x): ...@@ -144,10 +144,9 @@ def _write_u32(file, x):
data = [] data = []
for i in range(4): for i in range(4):
d, m = divmod(x, 256) d, m = divmod(x, 256)
data.insert(0, m) data.insert(0, int(m))
x = d x = d
for i in range(4): file.write(bytes(data))
file.write(chr(int(data[i])))
class Au_read: class Au_read:
...@@ -198,7 +197,7 @@ class Au_read: ...@@ -198,7 +197,7 @@ class Au_read:
if self._hdr_size > 24: if self._hdr_size > 24:
self._info = file.read(self._hdr_size - 24) self._info = file.read(self._hdr_size - 24)
for i in range(len(self._info)): for i in range(len(self._info)):
if self._info[i] == '\0': if self._info[i] == b'\0':
self._info = self._info[:i] self._info = self._info[:i]
break break
else: else:
...@@ -451,7 +450,7 @@ class Au_write: ...@@ -451,7 +450,7 @@ class Au_write:
_write_u32(self._file, self._framerate) _write_u32(self._file, self._framerate)
_write_u32(self._file, self._nchannels) _write_u32(self._file, self._nchannels)
self._file.write(self._info) self._file.write(self._info)
self._file.write('\0'*(header_size - len(self._info) - 24)) self._file.write(b'\0'*(header_size - len(self._info) - 24))
def _patchheader(self): def _patchheader(self):
self._file.seek(8) self._file.seek(8)
......
...@@ -57,7 +57,7 @@ class OSSAudioDevTests(unittest.TestCase): ...@@ -57,7 +57,7 @@ class OSSAudioDevTests(unittest.TestCase):
dsp.fileno() dsp.fileno()
# Make sure the read-only attributes work. # Make sure the read-only attributes work.
self.failUnless(dsp.close) self.failIf(dsp.closed)
self.assertEqual(dsp.name, "/dev/dsp") self.assertEqual(dsp.name, "/dev/dsp")
self.assertEqual(dsp.mode, "w", "bad dsp.mode: %r" % dsp.mode) self.assertEqual(dsp.mode, "w", "bad dsp.mode: %r" % dsp.mode)
...@@ -65,7 +65,7 @@ class OSSAudioDevTests(unittest.TestCase): ...@@ -65,7 +65,7 @@ class OSSAudioDevTests(unittest.TestCase):
for attr in ('closed', 'name', 'mode'): for attr in ('closed', 'name', 'mode'):
try: try:
setattr(dsp, attr, 42) setattr(dsp, attr, 42)
except TypeError: except (TypeError, AttributeError):
pass pass
else: else:
self.fail("dsp.%s not read-only" % attr) self.fail("dsp.%s not read-only" % attr)
...@@ -75,7 +75,7 @@ class OSSAudioDevTests(unittest.TestCase): ...@@ -75,7 +75,7 @@ class OSSAudioDevTests(unittest.TestCase):
# set parameters based on .au file headers # set parameters based on .au file headers
dsp.setparameters(AFMT_S16_NE, nchannels, rate) dsp.setparameters(AFMT_S16_NE, nchannels, rate)
self.assertEquals("%.2f" % expected_time, "2.93") self.assertTrue(abs(expected_time - 2.94) < 1e-2, expected_time)
t1 = time.time() t1 = time.time()
dsp.write(data) dsp.write(data)
dsp.close() dsp.close()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment