Issue #9243: Fix sndhdr module and add unit tests, contributed by James Lee.
This commit is contained in:
parent
903396ee66
commit
e9ebde48cf
|
@ -57,12 +57,12 @@ tests = []
|
|||
|
||||
def test_aifc(h, f):
|
||||
import aifc
|
||||
if h.startswith(b'FORM'):
|
||||
if not h.startswith(b'FORM'):
|
||||
return None
|
||||
if h[8:12] == b'AIFC':
|
||||
fmt = 'aifc'
|
||||
elif h[8:12] == b'AIFF':
|
||||
fmt = b'aiff'
|
||||
fmt = 'aiff'
|
||||
else:
|
||||
return None
|
||||
f.seek(0)
|
||||
|
@ -123,7 +123,7 @@ tests.append(test_hcom)
|
|||
|
||||
|
||||
def test_voc(h, f):
|
||||
if h.startswith(b'Creative Voice File\032'):
|
||||
if not h.startswith(b'Creative Voice File\032'):
|
||||
return None
|
||||
sbseek = get_short_le(h[20:22])
|
||||
rate = 0
|
||||
|
@ -150,7 +150,7 @@ tests.append(test_wav)
|
|||
|
||||
|
||||
def test_8svx(h, f):
|
||||
if h.startswith(b'FORM') or h[8:12] != b'8SVX':
|
||||
if not h.startswith(b'FORM') or h[8:12] != b'8SVX':
|
||||
return None
|
||||
# Should decode it to get #channels -- assume always 1
|
||||
return '8svx', 0, 1, 0, 8
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
Sound file samples used by Lib/test/test_sndhdr.py and generated using the
|
||||
following commands:
|
||||
|
||||
dd if=/dev/zero of=sndhdr.raw bs=20 count=1
|
||||
sox -s -2 -c 2 -r 44100 sndhdr.raw sndhdr.<format>
|
||||
|
||||
Sound file samples used by Lib/test/test_sndhdr.py and generated using the
|
||||
following commands:
|
||||
|
||||
dd if=/dev/zero of=sndhdr.raw bs=20 count=1
|
||||
sox -s -2 -c 2 -r 44100 sndhdr.raw sndhdr.<format>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,47 @@
|
|||
import sndhdr
|
||||
import unittest
|
||||
from test.support import findfile
|
||||
|
||||
class TestFormats(unittest.TestCase):
|
||||
def test_data(self):
|
||||
for filename, expected in (
|
||||
('sndhdr.8svx', ('8svx', 0, 1, 0, 8)),
|
||||
('sndhdr.aifc', ('aifc', 44100, 2, 5, 16)),
|
||||
('sndhdr.aiff', ('aiff', 44100, 2, 5, 16)),
|
||||
('sndhdr.au', ('au', 44100, 2, 5.0, 16)),
|
||||
('sndhdr.hcom', ('hcom', 22050.0, 1, -1, 8)),
|
||||
('sndhdr.sndt', ('sndt', 44100, 1, 5, 8)),
|
||||
('sndhdr.voc', ('voc', 0, 1, -1, 8)),
|
||||
('sndhdr.wav', ('wav', 44100, 2, -1, 16)),
|
||||
):
|
||||
filename = findfile(filename, subdir="sndhdrdata")
|
||||
what = sndhdr.what(filename)
|
||||
self.assertNotEqual(what, None, filename)
|
||||
self.assertSequenceEqual(what, expected)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
import sndhdr
|
||||
import unittest
|
||||
from test.support import findfile
|
||||
|
||||
class TestFormats(unittest.TestCase):
|
||||
def test_data(self):
|
||||
for filename, expected in (
|
||||
('sndhdr.8svx', ('8svx', 0, 1, 0, 8)),
|
||||
('sndhdr.aifc', ('aifc', 44100, 2, 5, 16)),
|
||||
('sndhdr.aiff', ('aiff', 44100, 2, 5, 16)),
|
||||
('sndhdr.au', ('au', 44100, 2, 5.0, 16)),
|
||||
('sndhdr.hcom', ('hcom', 22050.0, 1, -1, 8)),
|
||||
('sndhdr.sndt', ('sndt', 44100, 1, 5, 8)),
|
||||
('sndhdr.voc', ('voc', 0, 1, -1, 8)),
|
||||
('sndhdr.wav', ('wav', 44100, 2, -1, 16)),
|
||||
):
|
||||
filename = findfile(filename, subdir="sndhdrdata")
|
||||
what = sndhdr.what(filename)
|
||||
self.assertNotEqual(what, None, filename)
|
||||
self.assertSequenceEqual(what, expected)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
|
@ -454,6 +454,7 @@ Ben Laurie
|
|||
Simon Law
|
||||
Chris Lawrence
|
||||
Brian Leair
|
||||
James Lee
|
||||
John J. Lee
|
||||
Inyeol Lee
|
||||
Thomas Lee
|
||||
|
|
Loading…
Reference in New Issue