Commit 7b6fc8e1 authored by Christian Heimes's avatar Christian Heimes

Fixed memoryview constructor. It allowed arbitrary keyword arguments. The bug...

Fixed memoryview constructor. It allowed arbitrary keyword arguments. The bug was found by mykhal from #python. I've also added a small test case in the new test_memoryview.py
parent c1bdbc31
"""Unit tests for the memoryview
XXX We need more tests! Some tests are in test_bytes
"""
import unittest
import test.test_support
class MemoryviewTest(unittest.TestCase):
def test_constructor(self):
ob = b'test'
self.assert_(memoryview(ob))
self.assert_(memoryview(object=ob))
self.assertRaises(TypeError, memoryview)
self.assertRaises(TypeError, memoryview, ob, ob)
self.assertRaises(TypeError, memoryview, argument=ob)
self.assertRaises(TypeError, memoryview, ob, argument=True)
def test_main():
test.test_support.run_unittest(MemoryviewTest)
if __name__ == "__main__":
test_main()
......@@ -69,10 +69,15 @@ PyMemoryView_FromObject(PyObject *base)
static PyObject *
memory_new(PyTypeObject *subtype, PyObject *args, PyObject *kwds)
{
PyObject *obj;
if (!PyArg_UnpackTuple(args, "memoryview", 1, 1, &obj)) return NULL;
PyObject *obj;
static char *kwlist[] = {"object", 0};
return PyMemoryView_FromObject(obj);
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O:memoryview", kwlist,
&obj)) {
return NULL;
}
return PyMemoryView_FromObject(obj);
}
......
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