Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 1 | from pybind11_tests import docstring_options as m |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 2 | |
Dean Moldovan | bad1740 | 2016-11-20 21:21:54 +0100 | [diff] [blame] | 3 | |
| 4 | def test_docstring_options(): |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 5 | # options.disable_function_signatures() |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 6 | assert not m.test_function1.__doc__ |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 7 | |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 8 | assert m.test_function2.__doc__ == "A custom docstring" |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 9 | |
Jason Rhinelander | 10d1304 | 2017-03-08 12:32:42 -0500 | [diff] [blame] | 10 | # docstring specified on just the first overload definition: |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 11 | assert m.test_overloaded1.__doc__ == "Overload docstring" |
Jason Rhinelander | 10d1304 | 2017-03-08 12:32:42 -0500 | [diff] [blame] | 12 | |
| 13 | # docstring on both overloads: |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 14 | assert m.test_overloaded2.__doc__ == "overload docstring 1\noverload docstring 2" |
Jason Rhinelander | 10d1304 | 2017-03-08 12:32:42 -0500 | [diff] [blame] | 15 | |
| 16 | # docstring on only second overload: |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 17 | assert m.test_overloaded3.__doc__ == "Overload docstr" |
Jason Rhinelander | 10d1304 | 2017-03-08 12:32:42 -0500 | [diff] [blame] | 18 | |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 19 | # options.enable_function_signatures() |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 20 | assert m.test_function3.__doc__ .startswith("test_function3(a: int, b: int) -> None") |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 21 | |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 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") |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 24 | |
| 25 | # options.disable_function_signatures() |
| 26 | # options.disable_user_defined_docstrings() |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 27 | assert not m.test_function5.__doc__ |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 28 | |
| 29 | # nested options.enable_user_defined_docstrings() |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 30 | assert m.test_function6.__doc__ == "A custom docstring" |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 31 | |
| 32 | # RAII destructor |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 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") |
Alexander Stukowski | 9a110e6 | 2016-11-15 12:38:05 +0100 | [diff] [blame] | 35 | |
| 36 | # Suppression of user-defined docstrings for non-function objects |
Jason Rhinelander | 391c754 | 2017-07-25 16:47:36 -0400 | [diff] [blame^] | 37 | assert not m.DocstringTestFoo.__doc__ |
| 38 | assert not m.DocstringTestFoo.value_prop.__doc__ |