2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-22 17:32:55 +00:00

Added nested class test

[SVN r14980]
This commit is contained in:
Dave Abrahams
2002-08-20 00:41:17 +00:00
parent 960ebb13db
commit b77262ba13
3 changed files with 72 additions and 0 deletions

View File

@@ -88,6 +88,8 @@ bpl-test pickle1 ;
bpl-test pickle2 ;
bpl-test pickle3 ;
bpl-test nested ;
if $(TEST_BIENSTMAN_NON_BUGS)
{
bpl-test bienstman4 ;

35
test/nested.cpp Normal file
View File

@@ -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 <boost/python/module_init.hpp>
#include <boost/python/class.hpp>
#include <boost/python/operators.hpp>
#include <boost/python/scope.hpp>
#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>("X", args<int>())
.def(str(self))
);
// Y will now be defined in the current scope
class_<Y>("Y", args<int>())
.def(str(self))
;
}
#include "module_tail.cpp"

35
test/nested.py Normal file
View File

@@ -0,0 +1,35 @@
'''
>>> from nested_ext import *
>>> X
<class 'nested_ext.X'>
>>> X.__module__
'nested_ext'
>>> X.__name__
'X'
>>> X.Y
<class 'nested_ext.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])