summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/testing')
-rw-r--r--lib/sqlalchemy/testing/provision.py12
-rw-r--r--lib/sqlalchemy/testing/schema.py3
-rw-r--r--lib/sqlalchemy/testing/suite/test_reflection.py4
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())