summaryrefslogtreecommitdiff
path: root/migrate/tests/versioning/test_genmodel.py
diff options
context:
space:
mode:
Diffstat (limited to 'migrate/tests/versioning/test_genmodel.py')
-rw-r--r--migrate/tests/versioning/test_genmodel.py23
1 files changed, 12 insertions, 11 deletions
diff --git a/migrate/tests/versioning/test_genmodel.py b/migrate/tests/versioning/test_genmodel.py
index f7924ff..f800826 100644
--- a/migrate/tests/versioning/test_genmodel.py
+++ b/migrate/tests/versioning/test_genmodel.py
@@ -2,6 +2,7 @@
import os
+import six
import sqlalchemy
from sqlalchemy import *
@@ -43,13 +44,12 @@ class TestSchemaDiff(fixture.DB):
# so the schema diffs on the columns don't work with this test.
@fixture.usedb(not_supported='ibm_db_sa')
def test_functional(self):
-
def assertDiff(isDiff, tablesMissingInDatabase, tablesMissingInModel, tablesWithDiff):
diff = schemadiff.getDiffOfModelAgainstDatabase(self.meta, self.engine, excludeTables=['migrate_version'])
self.assertEqual(
(diff.tables_missing_from_B,
diff.tables_missing_from_A,
- diff.tables_different.keys(),
+ list(diff.tables_different.keys()),
bool(diff)),
(tablesMissingInDatabase,
tablesMissingInModel,
@@ -97,10 +97,11 @@ class TestSchemaDiff(fixture.DB):
diff = schemadiff.getDiffOfModelAgainstDatabase(MetaData(), self.engine, excludeTables=['migrate_version'])
src = genmodel.ModelGenerator(diff,self.engine).genBDefinition()
- exec src in locals()
+ namespace = {}
+ six.exec_(src, namespace)
c1 = Table('tmp_schemadiff', self.meta, autoload=True).c
- c2 = tmp_schemadiff.c
+ c2 = namespace['tmp_schemadiff'].c
self.compare_columns_equal(c1, c2, ['type'])
# TODO: get rid of ignoring type
@@ -139,19 +140,19 @@ class TestSchemaDiff(fixture.DB):
decls, upgradeCommands, downgradeCommands = genmodel.ModelGenerator(diff,self.engine).genB2AMigration(indent='')
# decls have changed since genBDefinition
- exec decls in locals()
+ six.exec_(decls, namespace)
# migration commands expect a namespace containing migrate_engine
- migrate_engine = self.engine
+ namespace['migrate_engine'] = self.engine
# run the migration up and down
- exec upgradeCommands in locals()
+ six.exec_(upgradeCommands, namespace)
assertDiff(False, [], [], [])
- exec decls in locals()
- exec downgradeCommands in locals()
+ six.exec_(decls, namespace)
+ six.exec_(downgradeCommands, namespace)
assertDiff(True, [], [], [self.table_name])
- exec decls in locals()
- exec upgradeCommands in locals()
+ six.exec_(decls, namespace)
+ six.exec_(upgradeCommands, namespace)
assertDiff(False, [], [], [])
if not self.engine.name == 'oracle':