test_docstring_options.cpp revision 11986
12SN/A/*
21762SN/A    tests/test_docstring_options.cpp -- generation of docstrings and signatures
32SN/A
42SN/A    Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>
52SN/A
62SN/A    All rights reserved. Use of this source code is governed by a
72SN/A    BSD-style license that can be found in the LICENSE file.
82SN/A*/
92SN/A
102SN/A#include "pybind11_tests.h"
112SN/A
122SN/Astruct DocstringTestFoo {
132SN/A    int value;
142SN/A    void setValue(int v) { value = v; }
152SN/A    int getValue() const { return value; }
162SN/A};
172SN/A
182SN/Atest_initializer docstring_generation([](py::module &m) {
192SN/A
202SN/A    {
212SN/A        py::options options;
222SN/A        options.disable_function_signatures();
232SN/A
242SN/A        m.def("test_function1", [](int, int) {}, py::arg("a"), py::arg("b"));
252SN/A        m.def("test_function2", [](int, int) {}, py::arg("a"), py::arg("b"), "A custom docstring");
262SN/A
272665Ssaidi@eecs.umich.edu        options.enable_function_signatures();
282665Ssaidi@eecs.umich.edu
292665Ssaidi@eecs.umich.edu        m.def("test_function3", [](int, int) {}, py::arg("a"), py::arg("b"));
302SN/A        m.def("test_function4", [](int, int) {}, py::arg("a"), py::arg("b"), "A custom docstring");
312SN/A
321388SN/A        options.disable_function_signatures().disable_user_defined_docstrings();
332SN/A
342SN/A        m.def("test_function5", [](int, int) {}, py::arg("a"), py::arg("b"), "A custom docstring");
352SN/A
361191SN/A        {
371191SN/A            py::options nested_options;
381191SN/A            nested_options.enable_user_defined_docstrings();
391388SN/A            m.def("test_function6", [](int, int) {}, py::arg("a"), py::arg("b"), "A custom docstring");
401717SN/A        }
412651Ssaidi@eecs.umich.edu    }
422680Sktlim@umich.edu
431977SN/A    m.def("test_function7", [](int, int) {}, py::arg("a"), py::arg("b"), "A custom docstring");
443144Shsul@eecs.umich.edu
45161SN/A    {
462190SN/A        py::options options;
4756SN/A        options.disable_user_defined_docstrings();
482190SN/A
492SN/A        py::class_<DocstringTestFoo>(m, "DocstringTestFoo", "This is a class docstring")
501062SN/A            .def_property("value_prop", &DocstringTestFoo::getValue, &DocstringTestFoo::setValue, "This is a property docstring")
511062SN/A        ;
522359SN/A    }
532359SN/A});
542359SN/A