feat(mindmodel): add CLI wrapper and tests
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user