]> 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 06:11:34 +0000 (02:11 -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
(cherry picked from commit 50d3b85c693a4ca673bcabd711f130ae58111f16)

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

index ca074c79b26f7a614d4af694ff517f7e21ffe8d1..feb5e2a52251244994cc5f37fc0bec0b43c197d7 100644 (file)
@@ -731,7 +731,7 @@ class DefaultRequirements(SuiteRequirements):
         """Target database must support INTERSECT or equivalent."""
 
         return fails_if(
-            ["firebird", self._mysql_not_mariadb_103, "sybase"],
+            ["firebird", self._mysql_not_mariadb_103_not_mysql8031, "sybase"],
             "no support for INTERSECT",
         )
 
@@ -739,7 +739,7 @@ class DefaultRequirements(SuiteRequirements):
     def except_(self):
         """Target database must support EXCEPT or equivalent (i.e. MINUS)."""
         return fails_if(
-            ["firebird", self._mysql_not_mariadb_103, "sybase"],
+            ["firebird", self._mysql_not_mariadb_103_not_mysql8031, "sybase"],
             "no support for EXCEPT",
         )
 
@@ -1732,12 +1732,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 0d81701132955ad40c1e5b744b3793f699ec52b5..2c0cf15276269ca47c0ae4a6f6854f3c0f255a8e 100644 (file)
@@ -1241,7 +1241,7 @@ class CompoundTest(fixtures.TablesTest):
         "has trouble extracting anonymous column from union subquery",
     )
     @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):
@@ -1362,7 +1362,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_
@@ -1400,7 +1400,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):