diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py index d3723c04820d9d..0832e2a2db5d25 100644 --- a/Lib/test/test_wave.py +++ b/Lib/test/test_wave.py @@ -172,6 +172,19 @@ def test__all__(self): not_exported = {'KSDATAFORMAT_SUBTYPE_PCM'} support.check__all__(self, wave, not_exported=not_exported) + def test_getfp(self): + fp = io.BytesIO() + with wave.open(fp, 'wb') as w: + w.setnchannels(1) + w.setsampwidth(1) + w.setframerate(11025) + fp.seek(0) + with wave.open(fp) as r: + chunk = r.getfp() + self.assertIsNotNone(chunk) + self.assertIs(chunk.file, fp) + self.assertEqual(chunk.chunkname, b'RIFF') + class WaveLowLevelTest(unittest.TestCase): @@ -474,6 +487,158 @@ def test_open_pathlike(self): with wave.open(fake_path, 'rb') as f: pass + def test_open_invalid_mode(self): + with self.assertRaisesRegex(wave.Error, "mode must be"): + wave.open(io.BytesIO(), 'xb') + + +class WaveReadErrorTest(unittest.TestCase): + """Cover error and edge paths of Wave_read, _Chunk and wave.open().""" + + FMT_PCM = struct.pack('