112391Sjason@lowepower.comfrom pybind11_tests import docstring_options as m 211986Sandreas.sandberg@arm.com 311986Sandreas.sandberg@arm.com 411986Sandreas.sandberg@arm.comdef test_docstring_options(): 512391Sjason@lowepower.com # options.disable_function_signatures() 612391Sjason@lowepower.com assert not m.test_function1.__doc__ 711986Sandreas.sandberg@arm.com 812391Sjason@lowepower.com assert m.test_function2.__doc__ == "A custom docstring" 911986Sandreas.sandberg@arm.com 1012037Sandreas.sandberg@arm.com # docstring specified on just the first overload definition: 1112391Sjason@lowepower.com assert m.test_overloaded1.__doc__ == "Overload docstring" 1212037Sandreas.sandberg@arm.com 1312037Sandreas.sandberg@arm.com # docstring on both overloads: 1412391Sjason@lowepower.com assert m.test_overloaded2.__doc__ == "overload docstring 1\noverload docstring 2" 1512037Sandreas.sandberg@arm.com 1612037Sandreas.sandberg@arm.com # docstring on only second overload: 1712391Sjason@lowepower.com assert m.test_overloaded3.__doc__ == "Overload docstr" 1812037Sandreas.sandberg@arm.com 1911986Sandreas.sandberg@arm.com # options.enable_function_signatures() 2012391Sjason@lowepower.com assert m.test_function3.__doc__ .startswith("test_function3(a: int, b: int) -> None") 2111986Sandreas.sandberg@arm.com 2212391Sjason@lowepower.com assert m.test_function4.__doc__ .startswith("test_function4(a: int, b: int) -> None") 2312391Sjason@lowepower.com assert m.test_function4.__doc__ .endswith("A custom docstring\n") 2411986Sandreas.sandberg@arm.com 2511986Sandreas.sandberg@arm.com # options.disable_function_signatures() 2611986Sandreas.sandberg@arm.com # options.disable_user_defined_docstrings() 2712391Sjason@lowepower.com assert not m.test_function5.__doc__ 2811986Sandreas.sandberg@arm.com 2911986Sandreas.sandberg@arm.com # nested options.enable_user_defined_docstrings() 3012391Sjason@lowepower.com assert m.test_function6.__doc__ == "A custom docstring" 3111986Sandreas.sandberg@arm.com 3211986Sandreas.sandberg@arm.com # RAII destructor 3312391Sjason@lowepower.com assert m.test_function7.__doc__ .startswith("test_function7(a: int, b: int) -> None") 3412391Sjason@lowepower.com assert m.test_function7.__doc__ .endswith("A custom docstring\n") 3511986Sandreas.sandberg@arm.com 3611986Sandreas.sandberg@arm.com # Suppression of user-defined docstrings for non-function objects 3712391Sjason@lowepower.com assert not m.DocstringTestFoo.__doc__ 3812391Sjason@lowepower.com assert not m.DocstringTestFoo.value_prop.__doc__ 39