aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tests/test_sql_migrations.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/tests/test_sql_migrations.py')
-rw-r--r--mediagoblin/tests/test_sql_migrations.py46
1 files changed, 16 insertions, 30 deletions
diff --git a/mediagoblin/tests/test_sql_migrations.py b/mediagoblin/tests/test_sql_migrations.py
index 3d67fdf6..97d7da09 100644
--- a/mediagoblin/tests/test_sql_migrations.py
+++ b/mediagoblin/tests/test_sql_migrations.py
@@ -14,6 +14,11 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import six
+import pytest
+
+pytest.importorskip("migrate")
+
import copy
from sqlalchemy import (
@@ -23,7 +28,11 @@ from sqlalchemy import (
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql import select, insert
-from migrate import changeset
+try:
+ from migrate import changeset
+except ImportError:
+ # We'll be skipping in this case anyway
+ pass
from mediagoblin.db.base import GMGTableBase
from mediagoblin.db.migration_tools import MigrationManager, RegisterMigration
@@ -58,10 +67,6 @@ class Level1(Base1):
SET1_MODELS = [Creature1, Level1]
-FOUNDATIONS = {Creature1:[{'name':u'goblin','num_legs':2,'is_demon':False},
- {'name':u'cerberus','num_legs':4,'is_demon':True}]
- }
-
SET1_MIGRATIONS = {}
#######################################################
@@ -190,7 +195,7 @@ def level_exits_new_table(db_conn):
for level in result:
- for exit_name, to_level in level['exits'].iteritems():
+ for exit_name, to_level in six.iteritems(level['exits']):
# Insert the level exit
db_conn.execute(
level_exits.insert().values(
@@ -575,7 +580,7 @@ def test_set1_to_set3():
printer = CollectingPrinter()
migration_manager = MigrationManager(
- u'__main__', SET1_MODELS, FOUNDATIONS, SET1_MIGRATIONS, Session(),
+ u'__main__', SET1_MODELS, SET1_MIGRATIONS, Session(),
printer)
# Check latest migration and database current migration
@@ -588,8 +593,7 @@ def test_set1_to_set3():
assert result == u'inited'
# Check output
assert printer.combined_string == (
- "-> Initializing main mediagoblin tables... done.\n" + \
- " + Laying foundations for Creature1 table\n" )
+ "-> Initializing main mediagoblin tables... done.\n")
# Check version in database
assert migration_manager.latest_migration == 0
assert migration_manager.database_current_migration == 0
@@ -602,7 +606,7 @@ def test_set1_to_set3():
# Try to "re-migrate" with same manager settings... nothing should happen
migration_manager = MigrationManager(
- u'__main__', SET1_MODELS, FOUNDATIONS, SET1_MIGRATIONS,
+ u'__main__', SET1_MODELS, SET1_MIGRATIONS,
Session(), printer)
assert migration_manager.init_or_migrate() == None
@@ -644,18 +648,6 @@ def test_set1_to_set3():
# Now check to see if stuff seems to be in there.
session = Session()
- # Check the creation of the foundation rows on the creature table
- creature = session.query(Creature1).filter_by(
- name=u'goblin').one()
- assert creature.num_legs == 2
- assert creature.is_demon == False
-
- creature = session.query(Creature1).filter_by(
- name=u'cerberus').one()
- assert creature.num_legs == 4
- assert creature.is_demon == True
-
-
# Check the creation of the inserted rows on the creature and levels tables
creature = session.query(Creature1).filter_by(
@@ -698,7 +690,7 @@ def test_set1_to_set3():
# isn't said to be updated yet
printer = CollectingPrinter()
migration_manager = MigrationManager(
- u'__main__', SET3_MODELS, FOUNDATIONS, SET3_MIGRATIONS, Session(),
+ u'__main__', SET3_MODELS, SET3_MIGRATIONS, Session(),
printer)
assert migration_manager.latest_migration == 8
@@ -725,7 +717,7 @@ def test_set1_to_set3():
# Make sure version matches expected
migration_manager = MigrationManager(
- u'__main__', SET3_MODELS, FOUNDATIONS, SET3_MIGRATIONS, Session(),
+ u'__main__', SET3_MODELS, SET3_MIGRATIONS, Session(),
printer)
assert migration_manager.latest_migration == 8
assert migration_manager.database_current_migration == 8
@@ -793,12 +785,6 @@ def test_set1_to_set3():
session = Session()
- # Start with making sure that the foundations did not run again
- assert session.query(Creature3).filter_by(
- name=u'goblin').count() == 1
- assert session.query(Creature3).filter_by(
- name=u'cerberus').count() == 1
-
# Then make sure the models have been migrated correctly
creature = session.query(Creature3).filter_by(
name=u'centipede').one()