audioop: adpcm2lin() and lin2adpcm() now raises a TypeError instead of a
SystemError if the state type is invalid.
This commit is contained in:
parent
6f055e73df
commit
daeffd2c08
|
@ -269,6 +269,11 @@ class TestAudioop(unittest.TestCase):
|
|||
self.assertEqual(audioop.lin2adpcm(b'\0' * w * 10, w, None),
|
||||
(b'\0' * 5, (0, 0)))
|
||||
|
||||
def test_invalid_adpcm_state(self):
|
||||
# state must be a tuple or None, not an integer
|
||||
self.assertRaises(TypeError, audioop.adpcm2lin, b'\0', 1, 555)
|
||||
self.assertRaises(TypeError, audioop.lin2adpcm, b'\0', 1, 555)
|
||||
|
||||
def test_lin2alaw(self):
|
||||
self.assertEqual(audioop.lin2alaw(datas[1], 1),
|
||||
b'\xd5\x87\xa4\x24\xaa\x2a\x5a')
|
||||
|
|
|
@ -1525,6 +1525,9 @@ audioop_lin2adpcm(PyObject *self, PyObject *args)
|
|||
/* First time, it seems. Set defaults */
|
||||
valpred = 0;
|
||||
index = 0;
|
||||
} else if (!PyTuple_Check(state)) {
|
||||
PyErr_SetString(PyExc_TypeError, "state must be a tuple or None");
|
||||
goto exit;
|
||||
} else if (!PyArg_ParseTuple(state, "ii", &valpred, &index))
|
||||
goto exit;
|
||||
|
||||
|
@ -1631,6 +1634,9 @@ audioop_adpcm2lin(PyObject *self, PyObject *args)
|
|||
/* First time, it seems. Set defaults */
|
||||
valpred = 0;
|
||||
index = 0;
|
||||
} else if (!PyTuple_Check(state)) {
|
||||
PyErr_SetString(PyExc_TypeError, "state must be a tuple or None");
|
||||
goto exit;
|
||||
} else if (!PyArg_ParseTuple(state, "ii", &valpred, &index))
|
||||
goto exit;
|
||||
|
||||
|
|
Loading…
Reference in New Issue