summaryrefslogtreecommitdiff
path: root/test/testlib/testing.py
diff options
context:
space:
mode:
authorMichael Trier <mtrier@gmail.com>2008-12-11 19:24:22 +0000
committerMichael Trier <mtrier@gmail.com>2008-12-11 19:24:22 +0000
commit052d7f36433a0c29ab20d0ea37933c03a488e12d (patch)
tree86f5e5c3438a32f0edfc89467a740f6e9038d45d /test/testlib/testing.py
parent5b0c456abd7756fa50700b7332f2cbe1d5aef620 (diff)
downloadsqlalchemy-052d7f36433a0c29ab20d0ea37933c03a488e12d.tar.gz
Implemented experimental savepoint support in mssql. There are still some failing savepoint related tests.
Diffstat (limited to 'test/testlib/testing.py')
-rw-r--r--test/testlib/testing.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/testlib/testing.py b/test/testlib/testing.py
index 0bf083bbd..ed7669be9 100644
--- a/test/testlib/testing.py
+++ b/test/testlib/testing.py
@@ -322,6 +322,30 @@ def emits_warning(*messages):
return _function_named(safe, fn.__name__)
return decorate
+def emits_warning_on(db, *warnings):
+ """Mark a test as emitting a warning on a specific dialect.
+
+ With no arguments, squelches all SAWarning failures. Or pass one or more
+ strings; these will be matched to the root of the warning description by
+ warnings.filterwarnings().
+ """
+ def decorate(fn):
+ def maybe(*args, **kw):
+ if isinstance(db, basestring):
+ if config.db.name != db:
+ return fn(*args, **kw)
+ else:
+ wrapped = emits_warning(*warnings)(fn)
+ return wrapped(*args, **kw)
+ else:
+ if not _is_excluded(*db):
+ return fn(*args, **kw)
+ else:
+ wrapped = emits_warning(*warnings)(fn)
+ return wrapped(*args, **kw)
+ return _function_named(maybe, fn.__name__)
+ return decorate
+
def uses_deprecated(*messages):
"""Mark a test as immune from fatal deprecation warnings.