feat: track task scope status and version
This commit is contained in:
@@ -16,6 +16,14 @@ SCHEMAS = ROOT / "schemas"
|
||||
TEMPLATES = ROOT / "templates"
|
||||
EXAMPLE_CARD = ROOT / "examples" / "card"
|
||||
EXAMPLE_SERIES = ROOT / "examples" / "series" / "series.json"
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from tools.render_card import ( # noqa: E402
|
||||
SCOPE_TASK_STATUS_LABELS,
|
||||
scope_table_columns,
|
||||
scope_task_status_label,
|
||||
scope_task_version,
|
||||
)
|
||||
|
||||
|
||||
def load_json(path: Path) -> dict:
|
||||
@@ -47,6 +55,51 @@ def check_json_files() -> None:
|
||||
assert series.get("cards")
|
||||
|
||||
|
||||
def check_scope_task_metadata() -> None:
|
||||
rows = [
|
||||
{
|
||||
"chapter": "5.4",
|
||||
"task": "Task04",
|
||||
"idea_tex": "alokator",
|
||||
"priority": "obowiązkowe",
|
||||
"status": "in-progress",
|
||||
"version": "v00.01",
|
||||
}
|
||||
]
|
||||
assert scope_table_columns(rows) == [
|
||||
"chapter",
|
||||
"task",
|
||||
"idea",
|
||||
"priority",
|
||||
"status",
|
||||
"version",
|
||||
]
|
||||
assert SCOPE_TASK_STATUS_LABELS == {
|
||||
"not-started": "brak",
|
||||
"draft": "robocze",
|
||||
"in-progress": "w trakcie",
|
||||
"review": "do przeglądu",
|
||||
"ready": "opracowane",
|
||||
"blocked": "zablokowane",
|
||||
}
|
||||
assert scope_task_status_label("in-progress") == "w trakcie"
|
||||
assert scope_task_version("v00.01") == "v00.01"
|
||||
for invalid in ("started", "done"):
|
||||
try:
|
||||
scope_task_status_label(invalid)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
raise AssertionError(f"status {invalid!r} nie został odrzucony")
|
||||
for invalid in ("0.1", "v0.01", "v00.1"):
|
||||
try:
|
||||
scope_task_version(invalid)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
raise AssertionError(f"wersja {invalid!r} nie została odrzucona")
|
||||
|
||||
|
||||
def check_optional_json_schema() -> None:
|
||||
try:
|
||||
import jsonschema
|
||||
@@ -269,6 +322,7 @@ def check_external_references() -> None:
|
||||
|
||||
def main() -> int:
|
||||
check_json_files()
|
||||
check_scope_task_metadata()
|
||||
check_optional_json_schema()
|
||||
check_render()
|
||||
check_section_assets()
|
||||
|
||||
Reference in New Issue
Block a user