feat(mindmodel): add CLI wrapper and tests

main
Sven Geboers 1 month ago
parent a74e6006f5
commit f77875ed54
  1. 32
      scripts/mindmodel/cli.py
  2. 14
      tests/scripts/mindmodel/test_cli.py

@ -0,0 +1,32 @@
from typing import List, Optional
def main(argv: Optional[List[str]] = None) -> int:
"""CLI wrapper that delegates to scripts.mindmodel.validator.main.
Returns the integer exit code from the delegated main. If the
validator module is not available or raises, return a non-zero
exit code.
"""
try:
# Import here to avoid side-effects on module import
from scripts.mindmodel import validator
# Call the validator.main if present
if hasattr(validator, "main"):
result = validator.main(argv)
# Ensure we return an int
try:
return int(result) # type: ignore
except Exception:
return 1
else:
return 2
except Exception:
# Import error or runtime error — return non-zero so callers
# can detect failure (tests expect non-zero on missing manifest)
return 2
if __name__ == "__main__":
raise SystemExit(main())

@ -0,0 +1,14 @@
import os
def test_cli_with_nonexistent_manifest():
"""Calling cli.main with a non-existent manifest should return non-zero."""
from scripts.mindmodel import cli
# Provide a path that is extremely unlikely to exist
fake_manifest = "/this/path/does/not/exist/manifest.json"
code = cli.main([fake_manifest])
assert isinstance(code, int)
assert code != 0
Loading…
Cancel
Save