summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/requirements.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-02-06 19:06:09 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2013-02-06 19:06:09 -0500
commita0ef9edc1908adb823ec788eee1974900bca4bac (patch)
tree276bfa6934e56b8d33fae4b287368404725506d9 /lib/sqlalchemy/testing/requirements.py
parent47858b85ec7139af83c2cd0aed1af8917d88ea3e (diff)
downloadsqlalchemy-a0ef9edc1908adb823ec788eee1974900bca4bac.tar.gz
- adding in requirements
- get test_naturalpks to be more generalized
Diffstat (limited to 'lib/sqlalchemy/testing/requirements.py')
-rw-r--r--lib/sqlalchemy/testing/requirements.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py
index 7228f38f9..e6e21d2cb 100644
--- a/lib/sqlalchemy/testing/requirements.py
+++ b/lib/sqlalchemy/testing/requirements.py
@@ -40,6 +40,27 @@ class SuiteRequirements(Requirements):
return exclusions.open()
@property
+ def on_update_cascade(self):
+ """"target database must support ON UPDATE..CASCADE behavior in
+ foreign keys."""
+
+ return exclusions.open()
+
+ @property
+ def deferrable_fks(self):
+ return exclusions.closed()
+
+ @property
+ def on_update_or_deferrable_fks(self):
+ # TODO: exclusions should be composable,
+ # somehow only_if([x, y]) isn't working here, negation/conjunctions
+ # getting confused.
+ return exclusions.only_if(
+ lambda: self.on_update_cascade.enabled or self.deferrable_fks.enabled
+ )
+
+
+ @property
def self_referential_foreign_keys(self):
"""Target database must support self-referential foreign keys."""
@@ -254,6 +275,11 @@ class SuiteRequirements(Requirements):
return exclusions.open()
@property
+ def unicode_ddl(self):
+ """Target driver must support some degree of non-ascii symbol names."""
+ return exclusions.closed()
+
+ @property
def datetime(self):
"""target dialect supports representation of Python
datetime.datetime() objects."""
@@ -349,3 +375,19 @@ class SuiteRequirements(Requirements):
"""target database must use a plain percent '%' as the 'modulus'
operator."""
return exclusions.closed()
+
+ @property
+ def unicode_connections(self):
+ """Target driver must support non-ASCII characters being passed at all."""
+ return exclusions.open()
+
+ @property
+ def skip_mysql_on_windows(self):
+ """Catchall for a large variety of MySQL on Windows failures"""
+ return exclusions.open()
+
+ def _has_mysql_on_windows(self):
+ return False
+
+ def _has_mysql_fully_case_sensitive(self):
+ return False