Index: infra/libs/git2/test/repo_test.py |
diff --git a/infra/libs/git2/test/repo_test.py b/infra/libs/git2/test/repo_test.py |
index d0c5b4b3d33f3a047129f8359119084215c56259..87a808015d1d17b55cae4fed2a69b0d18b824bd9 100644 |
--- a/infra/libs/git2/test/repo_test.py |
+++ b/infra/libs/git2/test/repo_test.py |
@@ -97,3 +97,23 @@ class TestRepo(test_util.TestBasis): |
r = self.mkRepo() |
self.assertEqual(r['refs/heads/branch_Z'].commit.hsh, |
'c9813df312aae7cadb91b0d4eb89ad1a4d1b22c9') |
+ |
+ def testNonFastForward(self): |
+ r = self.mkRepo() |
+ O = r['refs/heads/branch_O'] |
+ D = r.get_commit(self.repo['D']) |
+ with self.assertRaises(git2.CalledProcessError): |
+ r.fast_forward_push({O: D}) |
+ self.assertEqual( |
+ self.repo.git('rev-parse', 'branch_O').stdout.strip(), |
+ self.repo['O']) |
+ |
+ def testFastForward(self): |
+ r = self.mkRepo() |
+ O = r['refs/heads/branch_O'] |
+ S = r.get_commit(self.repo['S']) |
+ self.capture_stdio(r.fast_forward_push, {O: S}) |
+ self.assertEqual(O.commit.hsh, self.repo['S']) |
+ self.assertEqual( |
+ self.repo.git('rev-parse', 'branch_O').stdout.strip(), |
+ self.repo['S']) |