mirror of
https://github.com/openai/codex.git
synced 2026-11-09 20:50:33 +00:00
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import importlib.util
|
|
from pathlib import Path
|
|
import sys
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
|
|
FORMAT_SCRIPT_PATH = Path(__file__).with_name("format.py")
|
|
FORMAT_SCRIPT_SPEC = importlib.util.spec_from_file_location(
|
|
"codex_format_script",
|
|
FORMAT_SCRIPT_PATH,
|
|
)
|
|
if FORMAT_SCRIPT_SPEC is None or FORMAT_SCRIPT_SPEC.loader is None:
|
|
raise RuntimeError(f"could not load {FORMAT_SCRIPT_PATH}")
|
|
format_script = importlib.util.module_from_spec(FORMAT_SCRIPT_SPEC)
|
|
sys.modules[FORMAT_SCRIPT_SPEC.name] = format_script
|
|
FORMAT_SCRIPT_SPEC.loader.exec_module(format_script)
|
|
|
|
|
|
class BuildifierFormatterGroupTest(unittest.TestCase):
|
|
def test_includes_top_level_codex_rule_files(self) -> None:
|
|
repository_files = b"\0".join(
|
|
[
|
|
b".codex/rules/z.rules",
|
|
b".codex/rules/a.rules",
|
|
b".codex/rules/nested/ignored.rules",
|
|
b"elsewhere.rules",
|
|
]
|
|
)
|
|
|
|
with patch.object(
|
|
format_script.subprocess,
|
|
"check_output",
|
|
return_value=repository_files,
|
|
):
|
|
group = format_script.buildifier_formatter_group(check=True)
|
|
|
|
self.assertEqual(
|
|
group.commands[0].args[4:],
|
|
(".codex/rules/a.rules", ".codex/rules/z.rules"),
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|