2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-26 06:42:27 +00:00

Changed name of extension module so it would work with DebugPython, fixed

exception message checking to work with Python 2.0


[SVN r9421]
This commit is contained in:
Dave Abrahams
2001-03-04 16:02:46 +00:00
parent 405710e635
commit 7208104122

View File

@@ -7,6 +7,15 @@ r'''
// The author gratefully acknowleges the support of Dragon Systems, Inc., in
// producing this work.
// Revision History:
// 04 Mar 01 Changed name of extension module so it would work with DebugPython,
// fixed exception message checking to work with Python 2.0
// (Dave Abrahams)
Load up the extension module
>>> from boost_python_test import *
Automatic checking of the number and type of arguments. Foo's constructor takes
a single long parameter.
@@ -17,9 +26,9 @@ a single long parameter.
>>> try: ext = Foo('foo')
... except TypeError, err:
... assert re.match(
... '(illegal argument type for built-in operation)|(an integer is required)', str(err))
... else: print 'no exception'
... assert_integer_expected(err)
... else:
... print 'no exception'
>>> ext = Foo(1)
@@ -209,7 +218,7 @@ Polymorphism also works:
Pickling tests:
>>> world.__module__
'test'
'boost_python_test'
>>> world.__safe_for_unpickling__
1
>>> world.__reduce__()
@@ -697,10 +706,11 @@ Testing interaction between callbacks, base declarations, and overloading
>>> c = CallbackTest()
>>> c.testCallback(1)
2
>>> c.testCallback('foo')
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation
>>> try: c.testCallback('foo')
... except TypeError, err: assert_integer_expected(err)
... else: print 'no exception'
>>> c.callback(1)
2
>>> c.callback('foo')
@@ -719,10 +729,11 @@ Testing interaction between callbacks, base declarations, and overloading
-1
>>> r.callback('foo')
'foo 1'
>>> r.testCallback('foo')
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation
>>> try: r.testCallback('foo')
... except TypeError, err: assert_integer_expected(err)
... else: print 'no exception'
>>> r.testCallback(1)
-1
>>> testCallback(r, 1)
@@ -1145,8 +1156,15 @@ test methodologies for wrapping functions that return a pointer
'6.35'
'''
#'
def assert_integer_expected(err):
"""Handle a common error report which appears differently in Python 1.5.x and 2.0"""
assert isinstance(err, TypeError)
message = str(err)
assert (message == "illegal argument type for built-in operation"
or message == "an integer is required")
from test import *
import string
import re
import sys