53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os,shutil
|
|
|
|
from migrate.tests import fixture
|
|
from migrate.versioning.schema import *
|
|
from migrate.versioning import script
|
|
|
|
|
|
class TestRunChangeset(fixture.Pathed,fixture.DB):
|
|
level=fixture.DB.CONNECT
|
|
def _setup(self, url):
|
|
super(TestRunChangeset, self)._setup(url)
|
|
Repository.clear()
|
|
self.path_repos=self.tmp_repos()
|
|
# Create repository, script
|
|
Repository.create(self.path_repos,'repository_name')
|
|
|
|
@fixture.usedb()
|
|
def test_changeset_run(self):
|
|
"""Running a changeset against a repository gives expected results"""
|
|
repos=Repository(self.path_repos)
|
|
for i in range(10):
|
|
repos.create_script('')
|
|
try:
|
|
ControlledSchema(self.engine,repos).drop()
|
|
except:
|
|
pass
|
|
db=ControlledSchema.create(self.engine,repos)
|
|
|
|
# Scripts are empty; we'll check version # correctness.
|
|
# (Correct application of their content is checked elsewhere)
|
|
self.assertEqual(db.version,0)
|
|
db.upgrade(1)
|
|
self.assertEqual(db.version,1)
|
|
db.upgrade(5)
|
|
self.assertEqual(db.version,5)
|
|
db.upgrade(5)
|
|
self.assertEqual(db.version,5)
|
|
db.upgrade(None) # Latest is implied
|
|
self.assertEqual(db.version,10)
|
|
self.assertRaises(Exception,db.upgrade,11)
|
|
self.assertEqual(db.version,10)
|
|
db.upgrade(9)
|
|
self.assertEqual(db.version,9)
|
|
db.upgrade(0)
|
|
self.assertEqual(db.version,0)
|
|
self.assertRaises(Exception,db.upgrade,-1)
|
|
self.assertEqual(db.version,0)
|
|
#changeset = repos.changeset(self.url,0)
|
|
db.drop()
|