]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- requirements
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 3 Oct 2012 19:41:34 +0000 (15:41 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 3 Oct 2012 19:41:34 +0000 (15:41 -0400)
lib/sqlalchemy/testing/requirements.py
lib/sqlalchemy/testing/schema.py
lib/sqlalchemy/testing/suite/test_reflection.py

index c6492a84aa25b34ec5e274ea1471c7da710dc265..f86572c6dd1d098ed4fa136a1f8ee67c5545afdb 100644 (file)
@@ -30,6 +30,18 @@ class SuiteRequirements(Requirements):
 
         return exclusions.open()
 
+    @property
+    def foreign_keys(self):
+        """Target database must support foreign keys."""
+
+        return exclusions.open()
+
+    @property
+    def foreign_key_ddl(self):
+        """Target database must support the DDL phrases for FOREIGN KEY."""
+
+        return exclusions.open()
+
     @property
     def autoincrement_insert(self):
         """target platform generates new surrogate integer primary key values
@@ -102,7 +114,11 @@ class SuiteRequirements(Requirements):
         return self.schemas
 
     @property
-    def constraint_reflection(self):
+    def primary_key_constraint_reflection(self):
+        return exclusions.open()
+
+    @property
+    def foreign_key_constraint_reflection(self):
         return exclusions.open()
 
     @property
index 805c8e56774429a554ccc16de940e9decfaa6274..5dfdc0e0724e9a142e743dfc07e084fc70b4245d 100644 (file)
@@ -60,6 +60,9 @@ def Column(*args, **kw):
     test_opts = dict([(k, kw.pop(k)) for k in kw.keys()
                       if k.startswith('test_')])
 
+    if not config.requirements.foreign_key_ddl.enabled:
+        args = [arg for arg in args if not isinstance(arg, schema.ForeignKey)]
+
     col = schema.Column(*args, **kw)
     if 'test_needs_autoincrement' in test_opts and \
         kw.get('primary_key', False) and \
index 6d36e4e5684e4c80424c1fe1d00ae5d763934aaf..171a10b89a87e8461f2a0e11685fff1b304dc90d 100644 (file)
@@ -246,6 +246,7 @@ class ComponentReflectionTest(fixtures.TablesTest):
                     ])) > 0, '%s(%s), %s(%s)' % (col.name,
                             col.type, cols[i]['name'], ctype))
 
+    @testing.requires.table_reflection
     def test_get_columns(self):
         self._test_get_columns()
 
@@ -282,6 +283,7 @@ class ComponentReflectionTest(fixtures.TablesTest):
             eq_(addr_cons['name'], 'email_ad_pk')
         go()
 
+    @testing.requires.primary_key_constraint_reflection
     def test_get_pk_constraint(self):
         self._test_get_pk_constraint()
 
@@ -337,11 +339,11 @@ class ComponentReflectionTest(fixtures.TablesTest):
         eq_(fkey1['referred_columns'], ['user_id', ])
         eq_(fkey1['constrained_columns'], ['remote_user_id'])
 
-    @testing.requires.constraint_reflection
+    @testing.requires.foreign_key_constraint_reflection
     def test_get_foreign_keys(self):
         self._test_get_foreign_keys()
 
-    @testing.requires.constraint_reflection
+    @testing.requires.foreign_key_constraint_reflection
     @testing.requires.schemas
     def test_get_foreign_keys_with_schema(self):
         self._test_get_foreign_keys(schema='test_schema')