summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_memoryview.py25
-rw-r--r--Objects/memoryobject.c11
2 files changed, 33 insertions, 3 deletions
diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py
new file mode 100644
index 0000000..27adc5e
--- /dev/null
+++ b/Lib/test/test_memoryview.py
@@ -0,0 +1,25 @@
+"""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()
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index f0a45f6..2f177c2 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -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);
}