feat: add README document contract
This commit is contained in:
@@ -4,7 +4,11 @@ import json
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
import jsonschema
|
||||
|
||||
from claridoc.models import Brief, Outline, PipelineConfig, SourcePack
|
||||
from claridoc.structures import create_outline
|
||||
from tests.helpers import brief_dict, make_sources
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
@@ -57,6 +61,20 @@ class SchemaTests(unittest.TestCase):
|
||||
outline = Outline.from_dict(sample)
|
||||
self.assertEqual(outline.sections[0].intent, "promise")
|
||||
|
||||
def test_readme_is_accepted_by_brief_and_outline_schemas(self) -> None:
|
||||
brief_data = brief_dict("readme")
|
||||
brief_schema = json.loads(
|
||||
(ROOT / "schemas" / "brief.schema.json").read_text(encoding="utf-8")
|
||||
)
|
||||
outline_schema = json.loads(
|
||||
(ROOT / "schemas" / "outline.schema.json").read_text(encoding="utf-8")
|
||||
)
|
||||
|
||||
jsonschema.Draft202012Validator(brief_schema).validate(brief_data)
|
||||
brief = Brief.from_dict(brief_data)
|
||||
outline = create_outline(brief, make_sources())
|
||||
jsonschema.Draft202012Validator(outline_schema).validate(outline.to_dict())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user