diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2018-02-20 14:06:58 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-20 14:06:58 -0800 |
commit | 1d927d4feba856cacc026a9167ba38c73a4e7657 (patch) | |
tree | 982f58f7aed1477ecff827a89660734787e2838f /Lib/test/test_aifc.py | |
parent | bab4fe320ad2e24c1084fd57d2059ef342688aa9 (diff) | |
download | cpython-git-1d927d4feba856cacc026a9167ba38c73a4e7657.tar.gz |
bpo-31848: Fix broken error handling in Aifc_read.initfp() when the SSND chunk is not found (GH-5240)
Initialize self._ssnd_chunk so that aifc.Error is raised as intended,
not AttributeError.
(cherry picked from commit 80d20b918bd8a882043c493a7f958333ecb41727)
Co-authored-by: Zackery Spytz <zspytz@gmail.com>
Diffstat (limited to 'Lib/test/test_aifc.py')
-rw-r--r-- | Lib/test/test_aifc.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/test/test_aifc.py b/Lib/test/test_aifc.py index a064a32470..8fd306a365 100644 --- a/Lib/test/test_aifc.py +++ b/Lib/test/test_aifc.py @@ -266,6 +266,14 @@ class AIFCLowLevelTest(unittest.TestCase): b = io.BytesIO(b'FORM' + struct.pack('>L', 4) + b'AIFF') self.assertRaises(aifc.Error, aifc.open, b) + def test_read_no_ssnd_chunk(self): + b = b'FORM' + struct.pack('>L', 4) + b'AIFC' + b += b'COMM' + struct.pack('>LhlhhLL', 38, 0, 0, 0, 0, 0, 0) + b += b'NONE' + struct.pack('B', 14) + b'not compressed' + b'\x00' + with self.assertRaisesRegex(aifc.Error, 'COMM chunk and/or SSND chunk' + ' missing'): + aifc.open(io.BytesIO(b)) + def test_read_wrong_compression_type(self): b = b'FORM' + struct.pack('>L', 4) + b'AIFC' b += b'COMM' + struct.pack('>LhlhhLL', 23, 0, 0, 0, 0, 0, 0) |