# 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)