test_docstring_options.py revision 12037
111986Sandreas.sandberg@arm.com 211986Sandreas.sandberg@arm.com 311986Sandreas.sandberg@arm.comdef test_docstring_options(): 411986Sandreas.sandberg@arm.com from pybind11_tests import (test_function1, test_function2, test_function3, 511986Sandreas.sandberg@arm.com test_function4, test_function5, test_function6, 612037Sandreas.sandberg@arm.com test_function7, DocstringTestFoo, 712037Sandreas.sandberg@arm.com test_overloaded1, test_overloaded2, test_overloaded3) 811986Sandreas.sandberg@arm.com 911986Sandreas.sandberg@arm.com # options.disable_function_signatures() 1011986Sandreas.sandberg@arm.com assert not test_function1.__doc__ 1111986Sandreas.sandberg@arm.com 1211986Sandreas.sandberg@arm.com assert test_function2.__doc__ == "A custom docstring" 1311986Sandreas.sandberg@arm.com 1412037Sandreas.sandberg@arm.com # docstring specified on just the first overload definition: 1512037Sandreas.sandberg@arm.com assert test_overloaded1.__doc__ == "Overload docstring" 1612037Sandreas.sandberg@arm.com 1712037Sandreas.sandberg@arm.com # docstring on both overloads: 1812037Sandreas.sandberg@arm.com assert test_overloaded2.__doc__ == "overload docstring 1\noverload docstring 2" 1912037Sandreas.sandberg@arm.com 2012037Sandreas.sandberg@arm.com # docstring on only second overload: 2112037Sandreas.sandberg@arm.com assert test_overloaded3.__doc__ == "Overload docstr" 2212037Sandreas.sandberg@arm.com 2311986Sandreas.sandberg@arm.com # options.enable_function_signatures() 2411986Sandreas.sandberg@arm.com assert test_function3.__doc__ .startswith("test_function3(a: int, b: int) -> None") 2511986Sandreas.sandberg@arm.com 2611986Sandreas.sandberg@arm.com assert test_function4.__doc__ .startswith("test_function4(a: int, b: int) -> None") 2711986Sandreas.sandberg@arm.com assert test_function4.__doc__ .endswith("A custom docstring\n") 2811986Sandreas.sandberg@arm.com 2911986Sandreas.sandberg@arm.com # options.disable_function_signatures() 3011986Sandreas.sandberg@arm.com # options.disable_user_defined_docstrings() 3111986Sandreas.sandberg@arm.com assert not test_function5.__doc__ 3211986Sandreas.sandberg@arm.com 3311986Sandreas.sandberg@arm.com # nested options.enable_user_defined_docstrings() 3411986Sandreas.sandberg@arm.com assert test_function6.__doc__ == "A custom docstring" 3511986Sandreas.sandberg@arm.com 3611986Sandreas.sandberg@arm.com # RAII destructor 3711986Sandreas.sandberg@arm.com assert test_function7.__doc__ .startswith("test_function7(a: int, b: int) -> None") 3811986Sandreas.sandberg@arm.com assert test_function7.__doc__ .endswith("A custom docstring\n") 3911986Sandreas.sandberg@arm.com 4011986Sandreas.sandberg@arm.com # Suppression of user-defined docstrings for non-function objects 4111986Sandreas.sandberg@arm.com assert not DocstringTestFoo.__doc__ 4211986Sandreas.sandberg@arm.com assert not DocstringTestFoo.value_prop.__doc__ 43