summaryrefslogtreecommitdiff
path: root/migrate/tests/versioning
diff options
context:
space:
mode:
Diffstat (limited to 'migrate/tests/versioning')
-rw-r--r--migrate/tests/versioning/test_api.py6
-rw-r--r--migrate/tests/versioning/test_genmodel.py23
-rw-r--r--migrate/tests/versioning/test_repository.py1
-rw-r--r--migrate/tests/versioning/test_schema.py6
-rw-r--r--migrate/tests/versioning/test_schemadiff.py4
-rw-r--r--migrate/tests/versioning/test_script.py9
-rw-r--r--migrate/tests/versioning/test_shell.py11
7 files changed, 35 insertions, 25 deletions
diff --git a/migrate/tests/versioning/test_api.py b/migrate/tests/versioning/test_api.py
index 4a93c5c..bc4b29d 100644
--- a/migrate/tests/versioning/test_api.py
+++ b/migrate/tests/versioning/test_api.py
@@ -1,6 +1,8 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
+import six
+
from migrate.exceptions import *
from migrate.versioning import api
@@ -12,7 +14,7 @@ from migrate.tests import fixture
class TestAPI(Pathed):
def test_help(self):
- self.assertTrue(isinstance(api.help('help'), basestring))
+ self.assertTrue(isinstance(api.help('help'), six.string_types))
self.assertRaises(UsageError, api.help)
self.assertRaises(UsageError, api.help, 'foobar')
self.assertTrue(isinstance(api.help('create'), str))
@@ -48,7 +50,7 @@ class TestAPI(Pathed):
repo = self.tmp_repos()
api.create(repo, 'temp')
api.version_control('sqlite:///', repo)
- api.version_control('sqlite:///', unicode(repo))
+ api.version_control('sqlite:///', six.text_type(repo))
def test_source(self):
repo = self.tmp_repos()
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':
diff --git a/migrate/tests/versioning/test_repository.py b/migrate/tests/versioning/test_repository.py
index 0949b69..6845a0e 100644
--- a/migrate/tests/versioning/test_repository.py
+++ b/migrate/tests/versioning/test_repository.py
@@ -111,7 +111,6 @@ class TestVersionedRepository(fixture.Pathed):
# Create a script and test again
now = int(datetime.utcnow().strftime('%Y%m%d%H%M%S'))
repos.create_script('')
- print repos.latest
self.assertEqual(repos.latest, now)
def test_source(self):
diff --git a/migrate/tests/versioning/test_schema.py b/migrate/tests/versioning/test_schema.py
index d92eed3..5396d9d 100644
--- a/migrate/tests/versioning/test_schema.py
+++ b/migrate/tests/versioning/test_schema.py
@@ -4,6 +4,8 @@
import os
import shutil
+import six
+
from migrate import exceptions
from migrate.versioning.schema import *
from migrate.versioning import script, schemadiff
@@ -163,10 +165,10 @@ class TestControlledSchema(fixture.Pathed, fixture.DB):
def test_create_model(self):
"""Test workflow to generate create_model"""
model = ControlledSchema.create_model(self.engine, self.repos, declarative=False)
- self.assertTrue(isinstance(model, basestring))
+ self.assertTrue(isinstance(model, six.string_types))
model = ControlledSchema.create_model(self.engine, self.repos.path, declarative=True)
- self.assertTrue(isinstance(model, basestring))
+ self.assertTrue(isinstance(model, six.string_types))
@fixture.usedb()
def test_compare_model_to_db(self):
diff --git a/migrate/tests/versioning/test_schemadiff.py b/migrate/tests/versioning/test_schemadiff.py
index ec6d1dc..f45a012 100644
--- a/migrate/tests/versioning/test_schemadiff.py
+++ b/migrate/tests/versioning/test_schemadiff.py
@@ -27,9 +27,9 @@ class SchemaDiffBase(fixture.DB):
# print diff
self.assertTrue(diff)
self.assertEqual(1,len(diff.tables_different))
- td = diff.tables_different.values()[0]
+ td = list(diff.tables_different.values())[0]
self.assertEqual(1,len(td.columns_different))
- cd = td.columns_different.values()[0]
+ cd = list(td.columns_different.values())[0]
label_width = max(len(self.name1), len(self.name2))
self.assertEqual(('Schema diffs:\n'
' table with differences: xtable\n'
diff --git a/migrate/tests/versioning/test_script.py b/migrate/tests/versioning/test_script.py
index d30647b..183eb7e 100644
--- a/migrate/tests/versioning/test_script.py
+++ b/migrate/tests/versioning/test_script.py
@@ -1,10 +1,12 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
+import imp
import os
import sys
import shutil
+import six
from migrate import exceptions
from migrate.versioning import version, repository
from migrate.versioning.script import *
@@ -51,7 +53,10 @@ class TestPyScript(fixture.Pathed, fixture.DB):
self.assertRaises(exceptions.ScriptError, pyscript._func, 'foobar')
# clean pyc file
- os.remove(script_path + 'c')
+ if six.PY3:
+ os.remove(imp.cache_from_source(script_path))
+ else:
+ os.remove(script_path + 'c')
# test deprecated upgrade/downgrade with no arguments
contents = open(script_path, 'r').read()
@@ -94,7 +99,7 @@ class TestPyScript(fixture.Pathed, fixture.DB):
path = self.tmp_py()
# Create empty file
f = open(path, 'w')
- f.write("def zergling():\n\tprint 'rush'")
+ f.write("def zergling():\n\tprint('rush')")
f.close()
self.assertRaises(exceptions.InvalidScriptError, self.cls.verify_module, path)
# script isn't verified on creation, but on module reference
diff --git a/migrate/tests/versioning/test_shell.py b/migrate/tests/versioning/test_shell.py
index 743828d..62dc8e0 100644
--- a/migrate/tests/versioning/test_shell.py
+++ b/migrate/tests/versioning/test_shell.py
@@ -5,7 +5,8 @@ import os
import sys
import tempfile
-from cStringIO import StringIO
+import six
+from six.moves import cStringIO
from sqlalchemy import MetaData, Table
from migrate.exceptions import *
@@ -29,7 +30,7 @@ class TestShellCommands(Shell):
# we can only test that we get some output
for cmd in api.__all__:
result = self.env.run('migrate help %s' % cmd)
- self.assertTrue(isinstance(result.stdout, basestring))
+ self.assertTrue(isinstance(result.stdout, six.string_types))
self.assertTrue(result.stdout)
self.assertFalse(result.stderr)
@@ -61,11 +62,11 @@ class TestShellCommands(Shell):
def _check_error(self,args,code,expected,**kw):
original = sys.stderr
try:
- actual = StringIO()
+ actual = cStringIO()
sys.stderr = actual
try:
shell.main(args,**kw)
- except SystemExit, e:
+ except SystemExit as e:
self.assertEqual(code,e.args[0])
else:
self.fail('No exception raised')
@@ -502,7 +503,7 @@ class TestShellDatabase(Shell, DB):
result = self.env.run('migrate create_model %s %s' % (self.url, repos_path))
temp_dict = dict()
- exec result.stdout in temp_dict
+ six.exec_(result.stdout, temp_dict)
# TODO: breaks on SA06 and SA05 - in need of total refactor - use different approach