Skip to content

Commit 9595ed7

Browse files
committed
Add tests for lazy materialization of method doc strings
1 parent e189c2a commit 9595ed7

File tree

1 file changed

+18
-0
lines changed
  • graalpython/com.oracle.graal.python.test/src/tests/cpyext

1 file changed

+18
-0
lines changed

graalpython/com.oracle.graal.python.test/src/tests/cpyext/test_object.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,24 @@ def test_str_subclass(self):
573573
assert tester.replace("o", "uff") == "helluff\nwuffrld"
574574
assert tester.replace("o", "uff", 1) == "helluff\nworld"
575575

576+
def test_doc(self):
577+
TestDoc = CPyExtType("TestDoc",
578+
'''
579+
Py_ssize_t global_basicsize = -1;
580+
581+
static PyObject* some_member(PyObject* self) {
582+
return PyLong_FromLong(42);
583+
}
584+
''',
585+
tp_methods='{"some_member", (PyCFunction)some_member, METH_NOARGS, "This is some member that returns some value."}',
586+
)
587+
obj = TestDoc()
588+
expected_doc = "This is some member that returns some value."
589+
assert obj.some_member() == 42
590+
assert len(obj.some_member.__doc__) == len(expected_doc)
591+
assert obj.some_member.__doc__ == expected_doc
592+
593+
576594
class TestObjectFunctions(CPyExtTestCase):
577595
def compile_module(self, name):
578596
type(self).mro()[1].__dict__["test_%s" % name].create_module(name)

0 commit comments

Comments
 (0)