test(project-scanner): tighten git helper env handling
Agent-Logs-Url: https://github.com/MemPalace/mempalace/sessions/3c277c46-20b3-4a43-8eb7-8ee2eb3cb55a Co-authored-by: igorls <4753812+igorls@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
70d4c5471e
commit
851ebebc29
@@ -296,10 +296,7 @@ def _looks_like_real_name(name: str) -> bool:
|
|||||||
def _walk(root: Path, max_depth: int = MAX_DEPTH):
|
def _walk(root: Path, max_depth: int = MAX_DEPTH):
|
||||||
for dirpath, dirs, files in os.walk(root):
|
for dirpath, dirs, files in os.walk(root):
|
||||||
dirs[:] = [d for d in dirs if d not in SKIP_DIRS and not d.startswith(".")]
|
dirs[:] = [d for d in dirs if d not in SKIP_DIRS and not d.startswith(".")]
|
||||||
try:
|
|
||||||
rel = Path(dirpath).relative_to(root)
|
rel = Path(dirpath).relative_to(root)
|
||||||
except ValueError:
|
|
||||||
continue
|
|
||||||
depth = 0 if rel == Path(".") else len(rel.parts)
|
depth = 0 if rel == Path(".") else len(rel.parts)
|
||||||
if depth > max_depth:
|
if depth > max_depth:
|
||||||
dirs.clear()
|
dirs.clear()
|
||||||
|
|||||||
@@ -221,17 +221,25 @@ def _require_git() -> None:
|
|||||||
pytest.skip("git executable not available")
|
pytest.skip("git executable not available")
|
||||||
|
|
||||||
|
|
||||||
def _git_commit(
|
def _git_test_env(name: str, email: str) -> dict[str, str]:
|
||||||
path: Path, filename: str, content: str, message: str, name: str, email: str
|
|
||||||
) -> None:
|
|
||||||
_require_git()
|
|
||||||
env = {
|
env = {
|
||||||
**os.environ,
|
|
||||||
"GIT_AUTHOR_NAME": name,
|
"GIT_AUTHOR_NAME": name,
|
||||||
"GIT_AUTHOR_EMAIL": email,
|
"GIT_AUTHOR_EMAIL": email,
|
||||||
"GIT_COMMITTER_NAME": name,
|
"GIT_COMMITTER_NAME": name,
|
||||||
"GIT_COMMITTER_EMAIL": email,
|
"GIT_COMMITTER_EMAIL": email,
|
||||||
}
|
}
|
||||||
|
for key in ("PATH", "HOME", "SystemRoot", "ComSpec", "TMPDIR", "TEMP", "TMP"):
|
||||||
|
value = os.environ.get(key)
|
||||||
|
if value:
|
||||||
|
env[key] = value
|
||||||
|
return env
|
||||||
|
|
||||||
|
|
||||||
|
def _git_commit(
|
||||||
|
path: Path, filename: str, content: str, message: str, name: str, email: str
|
||||||
|
) -> None:
|
||||||
|
_require_git()
|
||||||
|
env = _git_test_env(name, email)
|
||||||
(path / filename).write_text(content)
|
(path / filename).write_text(content)
|
||||||
subprocess.run(["git", "add", filename], cwd=path, check=True, env=env)
|
subprocess.run(["git", "add", filename], cwd=path, check=True, env=env)
|
||||||
subprocess.run(["git", "commit", "-q", "-m", message], cwd=path, check=True, env=env)
|
subprocess.run(["git", "commit", "-q", "-m", message], cwd=path, check=True, env=env)
|
||||||
|
|||||||
Reference in New Issue
Block a user