def test_url_ssh_with_username_no_subfolder(): """ Test Url Ssh With Username No SubFolder """ remote = Remote() remote.url = "ssh://git@foo/" remote.parse_url() assert remote.prefix == "ssh://git@foo/" assert remote.username == "git"
def test_existing_path(tmpdir): """ Test Existing Path """ remote = Remote() url = tmpdir.mkdir("srv").strpath remote.url = url remote.parse_url() assert remote.prefix == url + os.path.sep
def test_url_git(): remote = Remote() remote.url = "git://example.com" remote.parse_url() assert remote.prefix == "git://example.com/" assert remote.protocol == "git" assert remote.server == "example.com"
def test_url_ssh_with_username_with_subfolder(): remote = Remote() remote.url = "ssh://git@foo/bar/baz" remote.parse_url() assert remote.prefix == "ssh://git@foo/bar/baz/" assert remote.server == "foo" assert remote.username == "git"
def test_git_configs_are_persistent(git_worktree): """ Test Git Config Are Persistent """ foo1 = git_worktree.create_git_project("foo") upstream = Remote() upstream.name = "upstream" upstream.url = "git@srv:bar.git" foo1.configure_remote(upstream) foo1.configure_branch("master", tracks="upstream") foo1.save_config() def check_config(foo_check): """ Check Condfig """ assert len(foo_check.remotes) == 1 upstream = foo_check.remotes[0] assert upstream.name == "upstream" assert upstream.url == "git@srv:bar.git" assert len(foo_check.branches) == 1 master = foo_check.branches[0] assert master.name == "master" assert master.tracks == "upstream" check_config(foo1) wt2 = qisrc.worktree.GitWorkTree(git_worktree.worktree) foo2 = wt2.get_git_project("foo") check_config(foo2)
def test_url_filepath(): """ Test Url FilePath """ remote = Remote() remote.url = "file:///path/to/dir" remote.parse_url() assert remote.prefix == "file:///path/to/dir/" assert remote.protocol == "file"
def test_url_win_filepath(): if not os.name == "nt": return remote = Remote() remote.url = r"file:///c:\path\to\foo" remote.parse_url() assert remote.prefix == r"file:///c:\path\to\foo" + "\\" assert remote.protocol == "file"
def test_url_http(): remote = Remote() remote.url = "http://review.corp:8080" remote.parse_url() assert remote.prefix == "http://review.corp:8080/" assert remote.server == "review.corp" assert remote.port == 8080 assert remote.protocol == "http"
def test_ssh_url(): remote = Remote() remote.url = "*****@*****.**" remote.parse_url() assert remote.prefix == "[email protected]:" assert remote.server == "example.com" assert remote.protocol == "ssh" assert not remote.port
def test_url_https_trailing_slash(): remote = Remote() remote.url = "https://review.corp/" remote.parse_url() assert remote.prefix == "https://review.corp/" assert remote.server == "review.corp" assert remote.protocol == "https" assert not remote.port
def test_url_win_filepath(): if not os.name == 'nt': return remote = Remote() remote.url = r"file:///c:\path\to\foo" remote.parse_url() assert remote.prefix == r"file:///c:\path\to\foo" + "\\" assert remote.protocol == "file"
def test_url_win_filepath(): """ Test Url Win FilePath """ if not os.name == 'nt': return remote = Remote() remote.url = r"file:///c:\path\to\foo" remote.parse_url() assert remote.prefix == r"file:///c:\path\to\foo" + "\\" assert remote.protocol == "file"
def test_warn_on_default_change(git_worktree, record_messages): """ Test Warn on Default Change """ foo1 = git_worktree.create_git_project("foo") gitorious = Remote() gitorious.name = "gitorious" gitorious.url = "git@gitorious:libfoo/libfoo.git" gitorious.default = True gitlab = Remote() gitlab.name = "gitlab" gitlab.url = "git@gitlab:foo/libfoo.git" foo_repo = RepoConfig() foo_repo.default_branch = "master" foo_repo.remotes = [gitlab, gitorious] foo1.read_remote_config(foo_repo) foo1.apply_config() assert foo1.default_remote.name == "gitorious" gitorious2 = copy.copy(gitorious) gitorious2.default = False gitlab2 = copy.copy(gitlab) gitlab2.default = True record_messages.reset() foo_repo = RepoConfig() foo_repo.remotes = [gitlab2, gitorious2] foo_repo.default_branch = "master" foo1.read_remote_config(foo_repo) foo1.apply_config() assert record_messages.find("Default remote changed") assert foo1.default_remote.name == "gitlab"
def test_url_ssh_no_username(): with mock.patch("qisrc.review.get_gerrit_username") as get_username: get_username.return_value = "john" remote = Remote() remote.url = "ssh://review.corp:29418" remote.parse_url() assert remote.prefix == "ssh://[email protected]:29418/" assert remote.server == "review.corp" assert remote.port == 29418 assert remote.protocol == "ssh" assert remote.username == "john"
def test_apply_git_config(git_worktree): """ Test Appli Git Config """ foo1 = git_worktree.create_git_project("foo") upstream = Remote() upstream.name = "upstream" upstream.url = "git@srv:bar.git" foo1.configure_remote(upstream) foo1.apply_config() git = qisrc.git.Git(foo1.path) assert git.get_config("remote.upstream.url") == "git@srv:bar.git" foo1.configure_branch("master", tracks="upstream") foo1.apply_config() assert git.get_tracking_branch("master") == "upstream/master" foo1.configure_branch("feature", tracks="upstream", remote_branch="remote_branch") foo1.apply_config() assert git.get_tracking_branch("feature") == "upstream/remote_branch"
def test_gerrit_url_ssh_subfolder(): with mock.patch("qisrc.review.get_gerrit_username") as get_username: get_username.return_value = "john" remote = Remote() remote.url = "ssh://review.corp:29418/a/subfolder" remote.parse_url() assert remote.prefix == "ssh://[email protected]:29418/a/subfolder/" assert remote.port == 29418 remote.url = "ssh://review.corp:29418/a/subfolder/" remote.parse_url() assert remote.prefix == "ssh://[email protected]:29418/a/subfolder/"
def test_apply_git_config(git_worktree): """ Test Appli Git Config """ foo1 = git_worktree.create_git_project("foo") upstream = Remote() upstream.name = "upstream" upstream.url = "git@srv:bar.git" foo1.configure_remote(upstream) foo1.apply_config() git = qisrc.git.Git(foo1.path) assert git.get_config("remote.upstream.url") == "git@srv:bar.git" foo1.configure_branch("master", tracks="upstream") foo1.apply_config() assert git.get_tracking_branch("master") == "upstream/master" foo1.configure_branch( "feature", tracks="upstream", remote_branch="remote_branch" ) foo1.apply_config() assert git.get_tracking_branch("feature") == "upstream/remote_branch"
def test_apply_remote_config(git_worktree): foo = git_worktree.create_git_project("foo") origin = Remote() origin.name = "origin" origin.url = "git@git:foo.git" origin.default = True gerrit = Remote() gerrit.name = "gerrit" gerrit.url = "git@review:foo.git" gerrit.review = True foo_repo = RepoConfig() foo_repo.remotes = [origin, gerrit] foo_repo.default_branch = "master" foo.read_remote_config(foo_repo) foo.apply_config() foo.save_config() assert foo_repo.default_remote == origin assert foo.review_remote == gerrit # Check its persistent: git_worktree = TestGitWorkTree() foo2 = git_worktree.get_git_project("foo") assert foo2.default_remote == origin assert foo2.review_remote == gerrit
def test_warn_on_remote_change(git_worktree, record_messages): foo = git_worktree.create_git_project("foo") origin = Remote() origin.name = "origin" origin.url = "git@srv:foo.git" foo.configure_remote(origin) foo.configure_branch("master", tracks="origin", default=True) origin2 = Remote() origin2.name = "origin" origin2.url = "git@srv:libfoo.git" foo.configure_remote(origin2) assert record_messages.find("remote url changed") foo.configure_branch("next", default=True) assert record_messages.find("default branch changed") gerrit = Remote() gerrit.name = "gerrit" gerrit.url = "http://gerrit/libfoo.git" foo.configure_remote(gerrit) foo.configure_branch("next", tracks="gerrit") assert record_messages.find("now tracks gerrit instead")
def test_apply_remote_config(git_worktree): foo = git_worktree.create_git_project("foo") origin = Remote() origin.name = "origin" origin.url = "git@git:foo.git" origin.default = True gerrit = Remote() gerrit.name = "gerrit" gerrit.url = "git@review:foo.git" gerrit.review = True foo_repo = RepoConfig() foo_repo.remotes = [origin, gerrit] foo_repo.default_branch = "master" foo.apply_remote_config(foo_repo) foo.save_config() assert foo_repo.default_remote == origin assert foo.review_remote == gerrit # Check its persistent: git_worktree = TestGitWorkTree() foo2 = git_worktree.get_git_project("foo") assert foo2.default_remote == origin assert foo2.review_remote == gerrit
def test_url_ssh_with_username_no_subfolder(): remote = Remote() remote.url = "ssh://git@foo/" remote.parse_url() assert remote.prefix == "ssh://git@foo/" assert remote.username == "git"
import os import mock from qisrc.git_config import Remote remote = Remote()
def test_warn_on_remote_change(git_worktree, record_messages): """ Test Warn On Remote Change """ foo1 = git_worktree.create_git_project("foo") origin = Remote() origin.name = "origin" origin.url = "git@srv:foo.git" foo1.configure_remote(origin) foo1.configure_branch("master", tracks="origin", default=True) origin2 = Remote() origin2.name = "origin" origin2.url = "git@srv:libfoo.git" foo1.configure_remote(origin2) assert record_messages.find("remote url changed") foo1.configure_branch("next", default=True) assert record_messages.find("default branch changed") gerrit = Remote() gerrit.name = "gerrit" gerrit.url = "http://gerrit/libfoo.git" foo1.configure_remote(gerrit) foo1.configure_branch("next", tracks="gerrit") assert record_messages.find("now tracks gerrit instead")