diff options
Diffstat (limited to '')
-rw-r--r-- | src/boost/libs/python/test/auto_ptr.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/src/boost/libs/python/test/auto_ptr.py b/src/boost/libs/python/test/auto_ptr.py new file mode 100644 index 000000000..12e977d06 --- /dev/null +++ b/src/boost/libs/python/test/auto_ptr.py @@ -0,0 +1,100 @@ +# Copyright David Abrahams 2004. Distributed under the Boost +# Software License, Version 1.0. (See accompanying +# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +''' +>>> from auto_ptr_ext import * +>>> x = X(42) +>>> x.value() +42 +>>> look(x), look(x) +(42, 42) + +>>> maybe_steal(x, 0) +42 +>>> look(x) +42 + +>>> maybe_steal(x, 1) +42 +>>> broken_auto_ptr and -1 or look(x) +-1 + +>>> x = X(69) +>>> steal(x) +69 +>>> broken_auto_ptr and -1 or look(x) +-1 + +>>> if not broken_auto_ptr: +... try: x.value() +... except TypeError: pass +... else: print('expected a TypeError exception') + +>>> x = make() +>>> look(x) +77 + +>>> z = callback(lambda z: z) +>>> z.value() +77 + +>>> extract(x).value() +77 + +# +# Test derived to base conversions +# + +>>> y = Y(42) +>>> y.value() +42 + +>>> try: maybe_steal(y, 0) +... except TypeError: pass +... else: print('expected a TypeError exception') + +>>> y.value() +42 + +>>> broken_auto_ptr and 42 or steal(y) +42 + +>>> if not broken_auto_ptr: +... try: y.value() +... except TypeError: pass +... else: print('expected a TypeError exception') + +>>> print(look.__doc__.splitlines()[1]) +look( (X)arg1) -> int : + +>>> print(steal.__doc__.splitlines()[1]) +steal( (X)arg1) -> int : + +>>> print(maybe_steal.__doc__.splitlines()[1]) +maybe_steal( (X)arg1, (bool)arg2) -> int : + +>>> print(make.__doc__.splitlines()[1]) +make() -> X : + +>>> print(callback.__doc__.splitlines()[1]) +callback( (object)arg1) -> X : + +>>> print(extract.__doc__.splitlines()[1]) +extract( (object)arg1) -> X : + +''' + +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 + status = run()[0] + if (status == 0): print("Done.") + sys.exit(status) |