From: Mike Bayer Date: Fri, 28 Oct 2022 05:49:48 +0000 (-0400) Subject: open some compound tests for mysql 8.0.31 X-Git-Tag: rel_2_0_0b3~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50d3b85c693a4ca673bcabd711f130ae58111f16;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git open some compound tests for mysql 8.0.31 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 --- diff --git a/test/requirements.py b/test/requirements.py index c6979d663b..69eda37664 100644 --- a/test/requirements.py +++ b/test/requirements.py @@ -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 ( diff --git a/test/sql/test_query.py b/test/sql/test_query.py index 68a3630aa4..ef94cc089e 100644 --- a/test/sql/test_query.py +++ b/test/sql/test_query.py @@ -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):