summaryrefslogtreecommitdiff
path: root/test/testlib/testing.py
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2008-01-19 23:37:11 +0000
committerJason Kirtland <jek@discorporate.us>2008-01-19 23:37:11 +0000
commit4be99db15b7a62b37493c86da07bcc787f44a7df (patch)
treeb9d71342f22e307a08c38487d63c795039f10b96 /test/testlib/testing.py
parent21193cebe22f44982cb70ecd64743df63494b17d (diff)
downloadsqlalchemy-4be99db15b7a62b37493c86da07bcc787f44a7df.tar.gz
- Restored 2.3 compat. in lib/sqlalchemy
- Part one of test suite fixes to run on 2.3 Lots of failures still around sets; sets.Set differs from __builtin__.set particularly in the binops. We depend on set extensively now and may need to provide a corrected sets.Set subclass on 2.3.
Diffstat (limited to 'test/testlib/testing.py')
-rw-r--r--test/testlib/testing.py42
1 files changed, 11 insertions, 31 deletions
diff --git a/test/testlib/testing.py b/test/testlib/testing.py
index 1b5a55f04..b05795efd 100644
--- a/test/testlib/testing.py
+++ b/test/testlib/testing.py
@@ -2,9 +2,11 @@
# monkeypatches unittest.TestLoader.suiteClass at import time
-import itertools, unittest, re, sys, os, operator, warnings
+import itertools, os, operator, re, sys, unittest, warnings
from cStringIO import StringIO
import testlib.config as config
+from testlib.compat import *
+
sql, MetaData, clear_mappers, Session, util = None, None, None, None, None
sa_exceptions = None
@@ -23,6 +25,7 @@ _ops = { '<': operator.lt,
# sugar ('testing.db'); set here by config() at runtime
db = None
+
def fails_on(*dbs):
"""Mark a test as expected to fail on one or more database implementations.
@@ -49,11 +52,7 @@ def fails_on(*dbs):
raise AssertionError(
"Unexpected success for '%s' on DB implementation '%s'" %
(fn_name, config.db.name))
- try:
- maybe.__name__ = fn_name
- except:
- pass
- return maybe
+ return _function_named(maybe, fn_name)
return decorate
def fails_on_everything_except(*dbs):
@@ -80,11 +79,7 @@ def fails_on_everything_except(*dbs):
raise AssertionError(
"Unexpected success for '%s' on DB implementation '%s'" %
(fn_name, config.db.name))
- try:
- maybe.__name__ = fn_name
- except:
- pass
- return maybe
+ return _function_named(maybe, fn_name)
return decorate
def unsupported(*dbs):
@@ -103,17 +98,14 @@ def unsupported(*dbs):
return True
else:
return fn(*args, **kw)
- try:
- maybe.__name__ = fn_name
- except:
- pass
- return maybe
+ return _function_named(maybe, fn_name)
return decorate
def exclude(db, op, spec):
"""Mark a test as unsupported by specific database server versions.
Stackable, both with other excludes and other decorators. Examples::
+
# Not supported by mydb versions less than 1, 0
@exclude('mydb', '<', (1,0))
# Other operators work too
@@ -130,11 +122,7 @@ def exclude(db, op, spec):
return True
else:
return fn(*args, **kw)
- try:
- maybe.__name__ = fn_name
- except:
- pass
- return maybe
+ return _function_named(maybe, fn_name)
return decorate
def _is_excluded(db, op, spec):
@@ -204,11 +192,7 @@ def emits_warning(*messages):
return fn(*args, **kw)
finally:
resetwarnings()
- try:
- safe.__name__ = fn.__name__
- except:
- pass
- return safe
+ return _function_named(safe, fn.__name__)
return decorate
def uses_deprecated(*messages):
@@ -247,11 +231,7 @@ def uses_deprecated(*messages):
return fn(*args, **kw)
finally:
resetwarnings()
- try:
- safe.__name__ = fn.__name__
- except:
- pass
- return safe
+ return _function_named(safe, fn.__name__)
return decorate
def resetwarnings():