diff options
Diffstat (limited to 'migrate/tests/versioning')
-rw-r--r-- | migrate/tests/versioning/test_api.py | 6 | ||||
-rw-r--r-- | migrate/tests/versioning/test_genmodel.py | 23 | ||||
-rw-r--r-- | migrate/tests/versioning/test_repository.py | 1 | ||||
-rw-r--r-- | migrate/tests/versioning/test_schema.py | 6 | ||||
-rw-r--r-- | migrate/tests/versioning/test_schemadiff.py | 4 | ||||
-rw-r--r-- | migrate/tests/versioning/test_script.py | 9 | ||||
-rw-r--r-- | migrate/tests/versioning/test_shell.py | 11 |
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 |