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:
@@ -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
35
test/nested.cpp
Normal 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
35
test/nested.py
Normal 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])
|
||||
Reference in New Issue
Block a user