31 lines
975 B
Python
31 lines
975 B
Python
from __future__ import annotations
|
|
|
|
import json
|
|
import tempfile
|
|
import unittest
|
|
from contextlib import redirect_stdout
|
|
from io import StringIO
|
|
from pathlib import Path
|
|
|
|
from claridoc.cli import main
|
|
|
|
|
|
class CliTests(unittest.TestCase):
|
|
def test_init_and_validate(self) -> None:
|
|
with tempfile.TemporaryDirectory() as temp:
|
|
workspace = Path(temp) / "workspace"
|
|
with redirect_stdout(StringIO()):
|
|
self.assertEqual(main(["init", str(workspace)]), 0)
|
|
code = main([
|
|
"validate",
|
|
"--brief", str(workspace / "brief.json"),
|
|
"--sources", str(workspace / "sources.json"),
|
|
])
|
|
self.assertEqual(code, 0)
|
|
self.assertTrue((workspace / "pipeline.mock.json").is_file())
|
|
self.assertIsInstance(json.loads((workspace / "brief.json").read_text(encoding="utf-8")), dict)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|