diff --git a/test/Jamfile b/test/Jamfile index ef4fd7a1..fe0c7261 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -88,6 +88,8 @@ bpl-test pickle1 ; bpl-test pickle2 ; bpl-test pickle3 ; +bpl-test nested ; + if $(TEST_BIENSTMAN_NON_BUGS) { bpl-test bienstman4 ; diff --git a/test/nested.cpp b/test/nested.cpp new file mode 100644 index 00000000..1187c7d8 --- /dev/null +++ b/test/nested.cpp @@ -0,0 +1,35 @@ +// Copyright David Abrahams 2002. Permission to copy, use, +// modify, sell and distribute this software is granted provided this +// copyright notice appears in all copies. This software is provided +// "as is" without express or implied warranty, and with no claim as +// to its suitability for any purpose. +#include +#include +#include +#include +#include "test_class.hpp" + +typedef test_class<> X; +typedef test_class<1> Y; + +BOOST_PYTHON_MODULE_INIT(nested_ext) +{ + using namespace boost::python; + + // Establish X as the current scope. + scope x_class( + class_("X", args()) + .def(str(self)) + ); + + // Y will now be defined in the current scope + class_("Y", args()) + .def(str(self)) + ; +} + + +#include "module_tail.cpp" + + + diff --git a/test/nested.py b/test/nested.py new file mode 100644 index 00000000..97ac2a33 --- /dev/null +++ b/test/nested.py @@ -0,0 +1,35 @@ +''' + >>> from nested_ext import * + + >>> X + + + >>> X.__module__ + 'nested_ext' + + >>> X.__name__ + 'X' + + >>> X.Y + + + >>> X.Y.__module__ + 'nested_ext' + + >>> X.Y.__name__ + 'Y' + +''' + +def run(args = None): + import sys + import doctest + + if args is not None: + sys.argv = args + return doctest.testmod(sys.modules.get(__name__)) + +if __name__ == '__main__': + print "running..." + import sys + sys.exit(run()[0])