aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/sqlalchemy_migrate-0.7.2-py2.7.egg/migrate/tests/versioning/test_runchangeset.py
blob: 52b02151b9e8760dee3fa5c67cc258084ebba372 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/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.assertEquals(db.version,0)
        db.upgrade(1)
        self.assertEquals(db.version,1)
        db.upgrade(5)
        self.assertEquals(db.version,5)
        db.upgrade(5)
        self.assertEquals(db.version,5)
        db.upgrade(None) # Latest is implied
        self.assertEquals(db.version,10)
        self.assertRaises(Exception,db.upgrade,11)
        self.assertEquals(db.version,10)
        db.upgrade(9)
        self.assertEquals(db.version,9)
        db.upgrade(0)
        self.assertEquals(db.version,0)
        self.assertRaises(Exception,db.upgrade,-1)
        self.assertEquals(db.version,0)
        #changeset = repos.changeset(self.url,0)
        db.drop()