Files
redmine/tests/semantic_index/test_shell_wrappers.py
2026-05-04 09:50:03 -04:00

42 lines
1.3 KiB
Python

import os
import subprocess
import tempfile
import unittest
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
REFRESH = ROOT / "semantic_index" / "refresh.sh"
class SemanticIndexShellWrapperTest(unittest.TestCase):
def test_refresh_wrapper_is_self_locating_when_called_from_another_directory(self):
with tempfile.TemporaryDirectory() as tmp:
tmp_path = Path(tmp)
env = {
**os.environ,
"PYTHON": "/bin/echo",
"SEMANTIC_INDEX_PROJECT_LIMITS": "customer-service=5",
"SEMANTIC_INDEX_LOG_DIR": str(tmp_path / "logs"),
"SEMANTIC_INDEX_STATE_PATH": str(tmp_path / "state" / "refresh_state.json"),
}
result = subprocess.run(
[str(REFRESH)],
cwd=tmp,
env=env,
text=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=False,
)
self.assertEqual(0, result.returncode, result.stderr)
self.assertIn("-m semantic_index --refresh-redmine-projects", result.stdout)
self.assertIn("--project-limits customer-service=5", result.stdout)
self.assertIn("log_file=", result.stdout)
if __name__ == "__main__":
unittest.main()