1from pybind11_tests import docstring_options as m 2 3 4def test_docstring_options(): 5 # options.disable_function_signatures() 6 assert not m.test_function1.__doc__ 7 8 assert m.test_function2.__doc__ == "A custom docstring" 9 10 # docstring specified on just the first overload definition: 11 assert m.test_overloaded1.__doc__ == "Overload docstring" 12 13 # docstring on both overloads: 14 assert m.test_overloaded2.__doc__ == "overload docstring 1\noverload docstring 2" 15 16 # docstring on only second overload: 17 assert m.test_overloaded3.__doc__ == "Overload docstr" 18 19 # options.enable_function_signatures() 20 assert m.test_function3.__doc__ .startswith("test_function3(a: int, b: int) -> None") 21 22 assert m.test_function4.__doc__ .startswith("test_function4(a: int, b: int) -> None") 23 assert m.test_function4.__doc__ .endswith("A custom docstring\n") 24 25 # options.disable_function_signatures() 26 # options.disable_user_defined_docstrings() 27 assert not m.test_function5.__doc__ 28 29 # nested options.enable_user_defined_docstrings() 30 assert m.test_function6.__doc__ == "A custom docstring" 31 32 # RAII destructor 33 assert m.test_function7.__doc__ .startswith("test_function7(a: int, b: int) -> None") 34 assert m.test_function7.__doc__ .endswith("A custom docstring\n") 35 36 # Suppression of user-defined docstrings for non-function objects 37 assert not m.DocstringTestFoo.__doc__ 38 assert not m.DocstringTestFoo.value_prop.__doc__ 39