]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
exclude this test for everyone but sqlite
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 15 Feb 2010 19:09:21 +0000 (19:09 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 15 Feb 2010 19:09:21 +0000 (19:09 +0000)
lib/sqlalchemy/test/testing.py
test/aaa_profiling/test_orm.py

index ea1dfa9eab548be44a69783553918cfff58f53f2..1b4e1f78ce7f53be54438bb53ee75c5c73e76170 100644 (file)
@@ -207,7 +207,24 @@ def _block_unconditionally(db, reason):
         return function_named(maybe, fn_name)
     return decorate
 
-
+def only_on(db, reason):
+    carp = _should_carp_about_exclusion(reason)
+    spec = db_spec(db)
+    def decorate(fn):
+        fn_name = fn.__name__
+        def maybe(*args, **kw):
+            if spec(config.db):
+                return fn(*args, **kw)
+            else:
+                msg = "'%s' unsupported on DB implementation '%s+%s': %s" % (
+                    fn_name, config.db.name, config.db.driver, reason)
+                print msg
+                if carp:
+                    print >> sys.stderr, msg
+                return True
+        return function_named(maybe, fn_name)
+    return decorate
+    
 def exclude(db, op, spec, reason):
     """Mark a test as unsupported by specific database server versions.
 
index 3d32bb0117aacdc7bc7e560d9330952c36cc46f1..72aa29ca0c5f1ca230331db0525f8c4a32f27c91 100644 (file)
@@ -72,7 +72,7 @@ class MergeTest(_base.MappedTest):
             
         p3 = go()
 
-    @testing.fails_on_everything_except('sqlite')
+    @testing.only_on('sqlite', 'Call counts tailored to pysqlite')
     @testing.resolve_artifact_names
     def test_merge_load(self):
         sess = sessionmaker()()