mirror of https://github.com/swig/swig
Convert two tests to work with both Python 2 and 3
Now these two tests work without having to use 2to3
This commit is contained in:
parent
d820045336
commit
982b08dced
|
@ -1,7 +1,11 @@
|
|||
import python_destructor_exception
|
||||
from StringIO import StringIO
|
||||
import sys
|
||||
|
||||
if sys.version_info[0:2] < (3, 0):
|
||||
import StringIO as io
|
||||
else:
|
||||
import io
|
||||
|
||||
def error_function():
|
||||
python_destructor_exception.ClassWithThrowingDestructor().GetBlah()
|
||||
|
||||
|
@ -9,13 +13,13 @@ def runtest():
|
|||
attributeErrorOccurred = False
|
||||
try:
|
||||
error_function()
|
||||
except AttributeError, e:
|
||||
except AttributeError:
|
||||
attributeErrorOccurred = True
|
||||
return attributeErrorOccurred
|
||||
|
||||
def test1():
|
||||
stderr_saved = sys.stderr
|
||||
buffer = StringIO()
|
||||
buffer = io.StringIO()
|
||||
attributeErrorOccurred = False
|
||||
try:
|
||||
# Suppress stderr while making this call to suppress the output shown by PyErr_WriteUnraisable
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
import python_strict_unicode
|
||||
import sys
|
||||
|
||||
test_bytes = b"hello \x01world\x99"
|
||||
BYTES = b"BYTES"
|
||||
test_unicode = u"h\udce9llo w\u00f6rld"
|
||||
|
||||
if sys.version_info[0:2] < (3, 0):
|
||||
test_unicode = u"h\udce9llo w\u00f6rld"
|
||||
UNICODE = u"UNICODE"
|
||||
type_unicode_string = type(u"")
|
||||
else:
|
||||
test_unicode = "h\udce9llo w\u00f6rld"
|
||||
UNICODE = "UNICODE"
|
||||
type_unicode_string = type("")
|
||||
|
||||
# Test that byte string inputs and outputs work as expected
|
||||
bdbl = python_strict_unicode.double_str(test_bytes)
|
||||
|
@ -20,12 +29,12 @@ if type(bout) != type(BYTES):
|
|||
udbl = python_strict_unicode.double_wstr(test_unicode)
|
||||
if udbl != test_unicode + test_unicode:
|
||||
raise RuntimeError("Failed to double wide string")
|
||||
if type(udbl) != type(u""):
|
||||
if type(udbl) != type_unicode_string:
|
||||
raise RuntimeError("Wrong type output for wide string")
|
||||
uout = python_strict_unicode.same_wstr(test_unicode)
|
||||
if uout != test_unicode:
|
||||
raise RuntimeError("Failed to copy wchar_t*")
|
||||
if type(uout) != type(u""):
|
||||
if type(uout) != type_unicode_string:
|
||||
raise RuntimeError("Wrong type output for wchar_t*")
|
||||
|
||||
# Test that overloading is handled properly
|
||||
|
@ -35,9 +44,9 @@ if bovr != BYTES:
|
|||
if type(bovr) != type(BYTES):
|
||||
raise RuntimeError("Wrong type output from overload")
|
||||
uovr = python_strict_unicode.overload(test_unicode)
|
||||
if uovr != u"UNICODE":
|
||||
if uovr != UNICODE:
|
||||
raise RuntimeError("Failed to return unicode from overload")
|
||||
if type(uovr) != type(u""):
|
||||
if type(uovr) != type_unicode_string:
|
||||
raise RuntimeERror("Wrong type output from overload")
|
||||
|
||||
# Test that bytes aren't accepted as wide strings and unicode isn't accepted as narrow strings
|
||||
|
|
Loading…
Reference in New Issue