diff options
Diffstat (limited to 'tests/test_version_traversal.py')
-rw-r--r-- | tests/test_version_traversal.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_version_traversal.py b/tests/test_version_traversal.py index 1fc99e2..72ae03a 100644 --- a/tests/test_version_traversal.py +++ b/tests/test_version_traversal.py @@ -99,6 +99,18 @@ class RevisionPathTest(MigrationTest): set([e.revision]) ) + self._assert_upgrade( + "%s+2" % b.revision, a.revision, + [self.up_(b), self.up_(c), self.up_(d)], + set([d.revision]) + ) + + self._assert_upgrade( + "%s-2" % d.revision, a.revision, + [self.up_(b)], + set([b.revision]) + ) + def test_invalid_relative_upgrade_path(self): a, b, c, d, e = self.a, self.b, self.c, self.d, self.e assert_raises_message( @@ -142,6 +154,18 @@ class RevisionPathTest(MigrationTest): set([b.revision]) ) + self._assert_downgrade( + "%s+2" % a.revision, d.revision, + [self.down_(d)], + set([c.revision]) + ) + + self._assert_downgrade( + "%s-2" % c.revision, d.revision, + [self.down_(d), self.down_(c), self.down_(b)], + set([a.revision]) + ) + def test_invalid_relative_downgrade_path(self): a, b, c, d, e = self.a, self.b, self.c, self.d, self.e assert_raises_message( @@ -275,6 +299,28 @@ class BranchedPathTest(MigrationTest): set([a.revision]) ) + def test_relative_upgrade(self): + a, b, c1, d1, c2, d2 = ( + self.a, self.b, self.c1, self.d1, self.c2, self.d2 + ) + + self._assert_upgrade( + "c2branch@head-1", b.revision, + [self.up_(c2)], + set([c2.revision]) + ) + + def test_relative_downgrade(self): + a, b, c1, d1, c2, d2 = ( + self.a, self.b, self.c1, self.d1, self.c2, self.d2 + ) + + self._assert_downgrade( + "c2branch@base+2", [d2.revision, d1.revision], + [self.down_(d2), self.down_(c2), self.down_(d1)], + set([c1.revision]) + ) + class BranchFromMergepointTest(MigrationTest): """this is a form that will come up frequently in the |