import os import subprocess def get_git_func(repo_path): def git(cmd, *args): full_cmd = ["git", cmd] + list(args) return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT) return git def is_git_repo(tests_root): return os.path.exists(os.path.join(tests_root, ".git")) _repo_root = None def get_repo_root(initial_dir=None): global _repo_root if initial_dir is None: initial_dir = os.path.dirname(__file__) if _repo_root is None: git = get_git_func(initial_dir) _repo_root = git("rev-parse", "--show-toplevel").rstrip() return _repo_root