def test_git_diffbranch(self): git = GitCmd() git.do_branch('trial') G.change_location_file("Git Crystal") git.do_stage('location.json') git.do_commit('Player in Git Crystal') git.do_diffbranch('') expected = "only " + "data,trial are legal branch names\n" expected += "usage: diffbranch branch1 branch2\n" self.assertEqual(git.output, expected) git.do_diffbranch('trial data') expected = """diff --git a/location.json b/location.json index 86b52b7..64e45dc 100644 --- a/location.json +++ b/location.json @@ -1,4 +1,4 @@ { - "location":"Mountain Gate" + "location":"Git Crystal" } """ self.assertEqual(git.output, expected) command = [G.GIT, '-C', G.repodir, 'branch', '-D', 'trial'] process = cw.run_process(command)
def test_no_conflict_recursive_merge(self): git = GitCmd() git.do_merge('') expected = "No branch names provided" self.assertEqual(git.output, expected) git.do_merge('octupus merge') expected = "Git Crystals does not support merging mulitple branches" self.assertEqual(git.output, expected) git.do_branch('trial') git.do_checkout('trial') G.change_location_file("Git Crystal") git.do_stage('location.json') git.do_commit('Player in Git Crystal') git.do_checkout('data') git.do_merge('trial') command = [G.GIT, '-C', G.repodir, 'branch', '-D', 'trial'] process = cw.run_process(command) expected = """Merge made by the 'recursive' strategy. location.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) """ self.assertEqual(git.output, expected)
def test_git_diff(self): git = GitCmd() G.change_location_file("Git Crystal") git.do_diff('') expected = """diff --git a/location.json b/location.json index 86b52b7..64e45dc 100644 --- a/location.json +++ b/location.json @@ -1,4 +1,4 @@ { - "location":"Mountain Gate" + "location":"Git Crystal" } """ self.assertEqual(git.output, expected) git.do_stage('location.json') git.do_diffstaged('') expected = """diff --git a/location.json b/location.json index 86b52b7..64e45dc 100644 --- a/location.json +++ b/location.json @@ -1,4 +1,4 @@ { - "location":"Mountain Gate" + "location":"Git Crystal" } """ self.assertEqual(git.output, expected)
def test_commit(self): git = GitCmd() G.change_location_file("Git Crystal") git.do_stage('location.json') git.do_commit('Player in Git Crystal') command = [G.GIT, '-C', G.repodir, 'show-ref', '--heads'] process = cw.run_process(command) self.assertNotEqual( process.stdout, G.current_commit_sha + " refs/heads/" + G.current_branch + '\n')
def test_unstage(self): git = GitCmd() G.change_location_file("Git Crystal") git.do_stage('location.json') git.do_unstage('location.json') command = [G.GIT, '-C', G.repodir, 'status', '--short'] process = cw.run_process(command) G.change_location_file("Mountain Gate") expected = ' M location.json\n' # location.json has unstaged changes self.assertEqual(process.stdout, expected)
def test_stage(self): git = GitCmd() G.change_location_file("Git Crystal") git.do_stage('location.json') command = [G.GIT, '-C', G.repodir, 'status', '--short'] process1 = cw.run_process(command) G.change_location_file("Mountain Gate") command = [G.GIT, '-C', G.repodir, 'reset', 'HEAD', 'location.json'] process2 = cw.run_process(command) expected = 'M location.json\n' # location.json is staged self.assertEqual(process1.stdout, expected)
def test_status(self): git = GitCmd() git.do_status('') expected = 'No changes since last commit\n' self.assertEqual(git.output, expected) G.change_location_file("Git Crystal") git.do_status('') expected = " unstaged changes: location.json\n" self.assertEqual(git.output, expected) git.do_stage('location.json') git.do_status('') expected = " staged changes: location.json\n" self.assertEqual(git.output, expected) G.change_location_file("Stalagmite Central") git.do_status('') expected = ' staged changes: location.json\n unstaged changes: location.json\n' self.assertEqual(git.output, expected)
def test_merge_with_conflicts(self): git = GitCmd() git.do_branch('trial') G.change_location_file("Git Crystal") git.do_stage('location.json') git.do_commit('Player in Git Crystal') git.do_checkout('data') G.change_location_file("Stalagmite Central") git.do_stage('location.json') git.do_merge('trial') git.do_resolveleft('location.json') git.do_resolveright('location.json') git.do_stage('location.json') git.do_commit('Merge Branch Trial') git.do_status( '') # Get status message after successful merge resolution. command = [G.GIT, '-C', G.repodir, 'branch', '-D', 'trial'] process = cw.run_process(command) expected = 'No changes since last commit\n' self.assertEqual(git.output, expected)