mirror of
https://github.com/openai/codex.git
synced 2026-11-09 20:50:33 +00:00
88 lines
2.3 KiB
Python
88 lines
2.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from contextlib import redirect_stdout
|
|
import io
|
|
from pathlib import Path
|
|
import sys
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
|
|
import setup_dev_execpolicy
|
|
|
|
|
|
class SetupDevExecpolicyTest(unittest.TestCase):
|
|
def test_discovers_absolute_paths_without_resolving_them(self) -> None:
|
|
paths = {
|
|
"cargo": "/tools/bin/cargo",
|
|
"just": "/tools/bin/just",
|
|
}
|
|
|
|
self.assertEqual(
|
|
setup_dev_execpolicy.discover_host_executables(
|
|
tuple(paths),
|
|
which=paths.get,
|
|
),
|
|
{
|
|
"cargo": Path("/tools/bin/cargo"),
|
|
"just": Path("/tools/bin/just"),
|
|
},
|
|
)
|
|
|
|
def test_reports_all_missing_executables(self) -> None:
|
|
with self.assertRaisesRegex(
|
|
RuntimeError,
|
|
"missing required host executables on PATH: just, pnpm",
|
|
):
|
|
setup_dev_execpolicy.discover_host_executables(
|
|
("cargo", "just", "pnpm"),
|
|
which=lambda name: "/tools/bin/cargo" if name == "cargo" else None,
|
|
)
|
|
|
|
def test_renders_host_executable_rules(self) -> None:
|
|
self.assertEqual(
|
|
setup_dev_execpolicy.render_host_executable_rules(
|
|
{
|
|
"cargo": Path("/tools/bin/cargo"),
|
|
"bazel": Path("/tools/bin/bazel"),
|
|
}
|
|
),
|
|
"""# Generated by scripts/setup_dev_execpolicy.py. Do not edit.
|
|
|
|
host_executable(
|
|
name = "cargo",
|
|
paths = ["/tools/bin/cargo"],
|
|
)
|
|
|
|
host_executable(
|
|
name = "bazel",
|
|
paths = ["/tools/bin/bazel"],
|
|
)
|
|
""",
|
|
)
|
|
|
|
def test_main_prints_rules(self) -> None:
|
|
executables = {"cargo": Path("/tools/bin/cargo")}
|
|
stdout = io.StringIO()
|
|
|
|
with (
|
|
patch.object(
|
|
setup_dev_execpolicy,
|
|
"discover_host_executables",
|
|
return_value=executables,
|
|
),
|
|
redirect_stdout(stdout),
|
|
):
|
|
result = setup_dev_execpolicy.main()
|
|
|
|
self.assertEqual(result, 0)
|
|
self.assertEqual(
|
|
stdout.getvalue(),
|
|
setup_dev_execpolicy.render_host_executable_rules(executables),
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|