test: Add e2e test for the path regex exclusion
This commit is contained in:
@@ -65,7 +65,8 @@ def test_repos_find_non_git_repos():
|
|||||||
|
|
||||||
@pytest.mark.parametrize("default", [True, False])
|
@pytest.mark.parametrize("default", [True, False])
|
||||||
@pytest.mark.parametrize("configtype", ["toml", "yaml"])
|
@pytest.mark.parametrize("configtype", ["toml", "yaml"])
|
||||||
def test_repos_find(configtype, default):
|
@pytest.mark.parametrize("exclude", [None, "^.*/repo2$", "^not_matching$"])
|
||||||
|
def test_repos_find(configtype, exclude, default):
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
shell(
|
shell(
|
||||||
f"""
|
f"""
|
||||||
@@ -101,9 +102,11 @@ def test_repos_find(configtype, default):
|
|||||||
args = ["repos", "find", "local", tmpdir]
|
args = ["repos", "find", "local", tmpdir]
|
||||||
if not default:
|
if not default:
|
||||||
args += ["--format", configtype]
|
args += ["--format", configtype]
|
||||||
|
if exclude:
|
||||||
|
args += ["--exclude", exclude]
|
||||||
cmd = grm(args)
|
cmd = grm(args)
|
||||||
assert cmd.returncode == 0
|
assert cmd.returncode == 0
|
||||||
assert len(cmd.stderr) == 0
|
assert len(cmd.stderr) == (37 if exclude == "^.*/repo2$" and not default else 0)
|
||||||
|
|
||||||
if default or configtype == "toml":
|
if default or configtype == "toml":
|
||||||
output = toml.loads(cmd.stdout)
|
output = toml.loads(cmd.stdout)
|
||||||
@@ -120,7 +123,9 @@ def test_repos_find(configtype, default):
|
|||||||
assert set(tree.keys()) == {"root", "repos"}
|
assert set(tree.keys()) == {"root", "repos"}
|
||||||
assert tree["root"] == tmpdir
|
assert tree["root"] == tmpdir
|
||||||
assert isinstance(tree["repos"], list)
|
assert isinstance(tree["repos"], list)
|
||||||
assert len(tree["repos"]) == 2
|
assert len(tree["repos"]) == (
|
||||||
|
1 if exclude == "^.*/repo2$" and not default else 2
|
||||||
|
)
|
||||||
|
|
||||||
repo1 = [r for r in tree["repos"] if r["name"] == "repo1"][0]
|
repo1 = [r for r in tree["repos"] if r["name"] == "repo1"][0]
|
||||||
assert repo1["worktree_setup"] is False
|
assert repo1["worktree_setup"] is False
|
||||||
@@ -137,15 +142,18 @@ def test_repos_find(configtype, default):
|
|||||||
assert someremote["type"] == "ssh"
|
assert someremote["type"] == "ssh"
|
||||||
assert someremote["url"] == "ssh://example.com/repo2.git"
|
assert someremote["url"] == "ssh://example.com/repo2.git"
|
||||||
|
|
||||||
repo2 = [r for r in tree["repos"] if r["name"] == "repo2"][0]
|
if exclude == "^.*/repo2$" and not default:
|
||||||
assert repo2["worktree_setup"] is False
|
assert [r for r in tree["repos"] if r["name"] == "repo2"] == []
|
||||||
assert isinstance(repo1["remotes"], list)
|
else:
|
||||||
assert len(repo2["remotes"]) == 1
|
repo2 = [r for r in tree["repos"] if r["name"] == "repo2"][0]
|
||||||
|
assert repo2["worktree_setup"] is False
|
||||||
|
assert isinstance(repo1["remotes"], list)
|
||||||
|
assert len(repo2["remotes"]) == 1
|
||||||
|
|
||||||
origin = [r for r in repo2["remotes"] if r["name"] == "origin"][0]
|
origin = [r for r in repo2["remotes"] if r["name"] == "origin"][0]
|
||||||
assert set(origin.keys()) == {"name", "type", "url"}
|
assert set(origin.keys()) == {"name", "type", "url"}
|
||||||
assert origin["type"] == "https"
|
assert origin["type"] == "https"
|
||||||
assert origin["url"] == "https://example.com/repo2.git"
|
assert origin["url"] == "https://example.com/repo2.git"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("default", [True, False])
|
@pytest.mark.parametrize("default", [True, False])
|
||||||
|
|||||||
Reference in New Issue
Block a user