def get_repo_info(cfg: Config, repo_name: str, repo_path: str) -> Repo: with cwd(repo_path): errors = [] def _each( fns: tuple[Callable[[], T], ...], augment: Callable[[T], None], ) -> None: for fn in fns: try: ret = fn() except DependsError: errors.append(traceback.format_exc()) else: if ret: augment(ret) packages: list[Package] = [] _each(cfg.get_packages, packages.append) depends: list[Depends] = [] _each(cfg.get_depends, depends.extend) return Repo(repo_name, tuple(packages), tuple(depends), tuple(errors))
def test_cwd(tmpdir): orig = os.getcwd() with autofix_lib.cwd(tmpdir): assert os.getcwd() == tmpdir assert os.getcwd() == orig