diff --git a/e2e_tests/helpers.py b/e2e_tests/helpers.py index 0cb3882..a5b837f 100644 --- a/e2e_tests/helpers.py +++ b/e2e_tests/helpers.py @@ -186,6 +186,37 @@ class TempGitRepositoryWorktree: del self.remote_2_dir +class RepoTree: + def __init__(self): + pass + + def __enter__(self): + self.root = tempfile.TemporaryDirectory() + self.config = tempfile.NamedTemporaryFile() + with open(self.config.name, "w") as f: + f.write( + f""" + [[trees]] + root = "{self.root.name}" + + [[trees.repos]] + name = "test" + + [[trees.repos]] + name = "test_worktree" + worktree_setup = true + """ + ) + + cmd = grm(["repos", "sync", "--config", self.config.name]) + assert cmd.returncode == 0 + return (self.root.name, self.config.name, ["test", "test_worktree"]) + + def __exit__(self, exc_type, exc_val, exc_tb): + del self.root + del self.config + + class EmptyDir: def __init__(self): pass diff --git a/e2e_tests/test_repos_status.py b/e2e_tests/test_repos_status.py new file mode 100644 index 0000000..8787dea --- /dev/null +++ b/e2e_tests/test_repos_status.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +import tempfile + +from helpers import * + + +def test_repos_sync_worktree_clone(): + with RepoTree() as (root, config, repos): + cmd = grm(["repos", "status", "--config", config]) + assert cmd.returncode == 0 + for repo in repos: + assert repo in cmd.stdout