def test_switching_from_fixed_ref_to_branch_local_changes(qisrc_action, git_server, record_messages): """ Test Swithcing From Fixed Ref To Branch Local Changes """ git_server.create_repo("foo.git") git_server.push_file("foo.git", "a.txt", "a") git_server.push_tag("foo.git", "v0.1") git_server.push_file("foo.git", "b.txt", "b") git_server.push_tag("foo.git", "v0.2") git_server.push_file("foo.git", "c.txt", "c") git_server.set_fixed_ref("foo.git", "v0.1") qisrc_action("init", git_server.manifest_url) git_worktree = TestGitWorkTree() foo_proj = git_worktree.get_git_project("foo") git = TestGit(foo_proj.path) git.write_file("a.txt", "unstaged changes") git_server.set_branch("foo.git", "master") record_messages.reset() rc = qisrc_action("sync", retcode=True) # ERROR message must be displayed to warn user assert rc != 0 assert record_messages.find("unstaged changes") _, sha1 = git.call("rev-parse", "HEAD", raises=False) expected = git.get_ref_sha1("refs/tags/v0.1") # git repo unchanged assert sha1 == expected git.call("reset", "--hard") qisrc_action("sync", retcode=True) # if modification is revert sync must be successful assert git.get_current_branch() == "master"
def test_switching_from_fixed_ref_to_branch_local_changes( qisrc_action, git_server, record_messages): """ Test Swithcing From Fixed Ref To Branch Local Changes """ git_server.create_repo("foo.git") git_server.push_file("foo.git", "a.txt", "a") git_server.push_tag("foo.git", "v0.1") git_server.push_file("foo.git", "b.txt", "b") git_server.push_tag("foo.git", "v0.2") git_server.push_file("foo.git", "c.txt", "c") git_server.set_fixed_ref("foo.git", "v0.1") qisrc_action("init", git_server.manifest_url) git_worktree = TestGitWorkTree() foo_proj = git_worktree.get_git_project("foo") git = TestGit(foo_proj.path) git.write_file("a.txt", "unstaged changes") git_server.set_branch("foo.git", "master") record_messages.reset() rc = qisrc_action("sync", retcode=True) # ERROR message must be displayed to warn user assert rc != 0 assert record_messages.find("unstaged changes") _, sha1 = git.call("rev-parse", "HEAD", raises=False) expected = git.get_ref_sha1("refs/tags/v0.1") # git repo unchanged assert sha1 == expected git.call("reset", "--hard") qisrc_action("sync", retcode=True) # if modification is revert sync must be successful assert git.get_current_branch() == "master"
def test_fixed_ref_local_changes(qisrc_action, git_server, record_messages): git_server.create_repo("foo.git") git_server.push_file("foo.git", "a.txt", "a") qisrc_action("init", git_server.manifest_url) git_worktree = TestGitWorkTree() foo_proj = git_worktree.get_git_project("foo") git = TestGit(foo_proj.path) git.write_file("a.txt", "unstaged changes") git_server.push_tag("foo.git", "v.01") record_messages.reset() rc = qisrc_action("sync", retcode=True) assert rc != 0 assert record_messages.find("unstaged changes")
def test_fixed_ref_local_changes(qisrc_action, git_server, record_messages): """ Test Fixed Ref Local Changes """ git_server.create_repo("foo.git") git_server.push_file("foo.git", "a.txt", "a") qisrc_action("init", git_server.manifest_url) git_worktree = TestGitWorkTree() foo_proj = git_worktree.get_git_project("foo") git = TestGit(foo_proj.path) git.write_file("a.txt", "unstaged changes") git_server.push_tag("foo.git", "v.01") record_messages.reset() rc = qisrc_action("sync", retcode=True) assert rc != 0 assert record_messages.find("unstaged changes")