import subprocess import sys from pathlib import Path from tempfile import TemporaryDirectory import unittest from semantic_index.config import load_settings class SemanticIndexCliTest(unittest.TestCase): def test_help_does_not_require_http_runtime_dependencies(self): result = subprocess.run( [sys.executable, "-m", "semantic_index", "--help"], check=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, ) self.assertEqual("", result.stderr) self.assertEqual(0, result.returncode) self.assertIn("--mcp-stdio", result.stdout) def test_settings_load_from_package_env_when_root_env_missing(self): with TemporaryDirectory() as tmp: env_path = Path(tmp) / "semantic_index" / ".env" env_path.parent.mkdir() env_path.write_text("QDRANT_URL=http://qdrant.example:6333\nREDMINE_SAMPLE_LIMIT=7\n", encoding="utf-8") settings = load_settings(Path(tmp) / ".env") self.assertEqual("http://qdrant.example:6333", settings.qdrant_url) self.assertEqual(7, settings.sample_limit) if __name__ == "__main__": unittest.main()