]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
open some compound tests for mysql 8.0.31
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 28 Oct 2022 05:49:48 +0000 (01:49 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 28 Oct 2022 05:49:48 +0000 (01:49 -0400)
Not sure of exact version but as we have done a major
rebuild of CI, newer mysql 8.0 is passing on these.

Change-Id: Ibcfe0ce519ab6a2941ca514b4254944769b60df4

test/requirements.py
test/sql/test_query.py

index c6979d663bcd007062371a569e3076af6ba5e2bc..69eda37664f8a448775b6766d4fa7724faa15519 100644 (file)
@@ -694,14 +694,17 @@ class DefaultRequirements(SuiteRequirements):
         """Target database must support INTERSECT or equivalent."""
 
         return fails_if(
-            [self._mysql_not_mariadb_103],
+            [self._mysql_not_mariadb_103_not_mysql8031],
             "no support for INTERSECT",
         )
 
     @property
     def except_(self):
         """Target database must support EXCEPT or equivalent (i.e. MINUS)."""
-        return fails_if([self._mysql_not_mariadb_103], "no support for EXCEPT")
+        return fails_if(
+            [self._mysql_not_mariadb_103_not_mysql8031],
+            "no support for EXCEPT",
+        )
 
     @property
     def dupe_order_by_ok(self):
@@ -1646,12 +1649,38 @@ class DefaultRequirements(SuiteRequirements):
             or config.db.dialect._mariadb_normalized_version_info < (10, 3)
         )
 
+    def _mysql_not_mariadb_103_not_mysql8031(self, config):
+        return (against(config, ["mysql", "mariadb"])) and (
+            (
+                config.db.dialect._is_mariadb
+                and config.db.dialect._mariadb_normalized_version_info
+                < (10, 3)
+            )
+            or (
+                not config.db.dialect._is_mariadb
+                and config.db.dialect.server_version_info < (8, 0, 31)
+            )
+        )
+
     def _mysql_not_mariadb_104(self, config):
         return (against(config, ["mysql", "mariadb"])) and (
             not config.db.dialect._is_mariadb
             or config.db.dialect._mariadb_normalized_version_info < (10, 4)
         )
 
+    def _mysql_not_mariadb_104_not_mysql8031(self, config):
+        return (against(config, ["mysql", "mariadb"])) and (
+            (
+                config.db.dialect._is_mariadb
+                and config.db.dialect._mariadb_normalized_version_info
+                < (10, 4)
+            )
+            or (
+                not config.db.dialect._is_mariadb
+                and config.db.dialect.server_version_info < (8, 0, 31)
+            )
+        )
+
     def _has_mysql_on_windows(self, config):
         with config.db.connect() as conn:
             return (
index 68a3630aa46225d739859214143a898b69615e45..ef94cc089eeb4e80af7db1f6397553dc67994a33 100644 (file)
@@ -1230,7 +1230,7 @@ class CompoundTest(fixtures.TablesTest):
 
     @testing.crashes("oracle", "FIXME: unknown, verify not fails_on")
     @testing.fails_on(
-        testing.requires._mysql_not_mariadb_104, "FIXME: unknown"
+        testing.requires._mysql_not_mariadb_104_not_mysql8031, "FIXME: unknown"
     )
     @testing.fails_on("sqlite", "FIXME: unknown")
     def test_union_all(self, connection):
@@ -1351,7 +1351,7 @@ class CompoundTest(fixtures.TablesTest):
         eq_(found2, wanted)
 
     @testing.fails_on(
-        ["sqlite", testing.requires._mysql_not_mariadb_104],
+        ["sqlite", testing.requires._mysql_not_mariadb_104_not_mysql8031],
         "Can't handle this style of nesting",
     )
     @testing.requires.except_
@@ -1389,7 +1389,7 @@ class CompoundTest(fixtures.TablesTest):
 
     @testing.requires.intersect
     @testing.fails_on(
-        ["sqlite", testing.requires._mysql_not_mariadb_104],
+        ["sqlite", testing.requires._mysql_not_mariadb_104_not_mysql8031],
         "sqlite can't handle leading parenthesis",
     )
     def test_intersect_unions(self, connection):