def test_merge_conflict(self): gitflow = GitFlow(self.repo) mgr = FeatureBranchManager(gitflow) mgr.merge('recursion', 'devel') self.assertRaises(MergeError, mgr.merge, 'even', 'devel') gitflow.git.rm('odd.py') gitflow.git.commit('-F.git/MERGE_MSG')
def test_merge_feature_without_commits(self): repo = create_git_repo(self) gitflow = GitFlow(repo).init() mgr = FeatureBranchManager(gitflow) dc0 = gitflow.develop().commit mgr.create('newstuff') mgr.merge('newstuff', 'develop') dc1 = gitflow.develop().commit # Assert the develop tip is unchanged by the merge self.assertEqual(dc0, dc1) # Assert the target-branch is active self.assertEqual(gitflow.repo.active_branch.name, 'develop')
def test_delete_already_merged_feature(self): gitflow = GitFlow(self.repo) mgr = FeatureBranchManager(gitflow) self.assertEquals(2, len(mgr.list())) mgr.create('foo') fake_commit(self.repo, 'Dummy commit #1') fake_commit(self.repo, 'Dummy commit #2') mgr.merge('foo', 'devel') self.assertEquals(3, len(mgr.list())) mgr.delete('foo') self.assertEquals(2, len(mgr.list())) self.assertNotIn('feat/foo', [b.name for b in mgr.list()])
def test_merge_feature_with_multiple_commits(self): gitflow = GitFlow(self.repo) mgr = FeatureBranchManager(gitflow) dc0 = gitflow.develop().commit mgr.merge('even', 'devel') dc1 = gitflow.develop().commit # Assert merge commit has been made self.assertEqual(2, len(dc1.parents)) self.assertEqual("Merge branch 'feat/even' into devel\n", dc1.message) # Assert develop branch advanced self.assertNotEqual(dc0, dc1) # Assert the target-branch is active self.assertEqual(gitflow.repo.active_branch.name, 'devel')
def test_merge_feature_with_multiple_commits(self): gitflow = GitFlow(self.repo) mgr = FeatureBranchManager(gitflow) dc0 = gitflow.develop().commit mgr.merge('even', 'devel') dc1 = gitflow.develop().commit # Assert merge commit has been made self.assertEqual(2, len(dc1.parents)) self.assertTrue(dc1.message.startswith("Merge branch 'feat/even' into devel\n")) # Assert develop branch advanced self.assertNotEqual(dc0, dc1) # Assert the target-branch is active self.assertEqual(gitflow.repo.active_branch.name, 'devel')
def test_merge_feature_with_single_commit(self): gitflow = GitFlow(self.repo).init() mgr = FeatureBranchManager(gitflow) dc0 = gitflow.develop().commit mgr.merge('recursion', 'devel') dc1 = gitflow.develop().commit # Assert no merge commit has been made self.assertEqual(1, len(dc1.parents)) self.assertEqual('Made the definition of odd recursive.\n', dc1.message) # Assert develop branch advanced self.assertNotEqual(dc0, dc1) # Assert the target-branch is active self.assertEqual(gitflow.repo.active_branch.name, 'devel')