diff options
Diffstat (limited to 'lib/sqlalchemy/testing')
| -rw-r--r-- | lib/sqlalchemy/testing/provision.py | 12 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/schema.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/testing/suite/test_reflection.py | 4 |
3 files changed, 15 insertions, 4 deletions
diff --git a/lib/sqlalchemy/testing/provision.py b/lib/sqlalchemy/testing/provision.py index 687f84b18..8abfa3301 100644 --- a/lib/sqlalchemy/testing/provision.py +++ b/lib/sqlalchemy/testing/provision.py @@ -194,9 +194,15 @@ def _mysql_create_db(cfg, eng, ident): _mysql_drop_db(cfg, conn, ident) except Exception: pass - conn.execute("CREATE DATABASE %s" % ident) - conn.execute("CREATE DATABASE %s_test_schema" % ident) - conn.execute("CREATE DATABASE %s_test_schema_2" % ident) + + # using utf8mb4 we are getting collation errors on UNIONS: + # test/orm/inheritance/test_polymorphic_rel.py" + # 1271, u"Illegal mix of collations for operation 'UNION'" + conn.execute("CREATE DATABASE %s CHARACTER SET utf8mb3" % ident) + conn.execute( + "CREATE DATABASE %s_test_schema CHARACTER SET utf8mb3" % ident) + conn.execute( + "CREATE DATABASE %s_test_schema_2 CHARACTER SET utf8mb3" % ident) @_configure_follower.for_db("mysql") diff --git a/lib/sqlalchemy/testing/schema.py b/lib/sqlalchemy/testing/schema.py index 3ca91b901..401c8cbb7 100644 --- a/lib/sqlalchemy/testing/schema.py +++ b/lib/sqlalchemy/testing/schema.py @@ -22,7 +22,8 @@ def Table(*args, **kw): kw.update(table_options) if exclusions.against(config._current, 'mysql'): - if 'mysql_engine' not in kw and 'mysql_type' not in kw: + if 'mysql_engine' not in kw and 'mysql_type' not in kw and \ + "autoload_with" not in kw: if 'test_needs_fk' in test_opts or 'test_needs_acid' in test_opts: kw['mysql_engine'] = 'InnoDB' else: diff --git a/lib/sqlalchemy/testing/suite/test_reflection.py b/lib/sqlalchemy/testing/suite/test_reflection.py index 70a2f3f4f..00a5aac01 100644 --- a/lib/sqlalchemy/testing/suite/test_reflection.py +++ b/lib/sqlalchemy/testing/suite/test_reflection.py @@ -153,14 +153,18 @@ class ComponentReflectionTest(fixtures.TablesTest): cls.define_index(metadata, users) if not schema: + # test_needs_fk is at the moment to force MySQL InnoDB noncol_idx_test_nopk = Table( 'noncol_idx_test_nopk', metadata, Column('q', sa.String(5)), + test_needs_fk=True, ) + noncol_idx_test_pk = Table( 'noncol_idx_test_pk', metadata, Column('id', sa.Integer, primary_key=True), Column('q', sa.String(5)), + test_needs_fk=True, ) Index('noncol_idx_nopk', noncol_idx_test_nopk.c.q.desc()) Index('noncol_idx_pk', noncol_idx_test_pk.c.q.desc()) |
