Skip to content

Add JSON schema validation test suite#7

Open
billmallard wants to merge 7 commits into
makerplane:masterfrom
billmallard:master
Open

Add JSON schema validation test suite#7
billmallard wants to merge 7 commits into
makerplane:masterfrom
billmallard:master

Conversation

@billmallard

Copy link
Copy Markdown

Summary

  • Adds tests/test_canfix_spec.py — 30 pytest tests covering structural integrity of canfix.json
  • Tests validate top-level structure, all 230 parameter entries (required fields, IDs, types, min/max), 17 group ranges, and 10 status entries
  • Handles compound type notation (CHAR[2], INT[2],BYTE, DINT) and comma-formatted numbers ("60,000") present in the spec
  • All 30 tests pass against the current spec with zero modifications to production code

Test plan

  • cd tests && pip install pytest && pytest -v — all 30 tests should pass
  • Re-run after any spec edit to catch regressions in parameter structure

🤖 Generated with Claude Code

billmallard and others added 7 commits April 18, 2026 06:36
Validates canfix.json structural integrity: 230 parameters with
required fields, unique IDs in 256-1759 range, valid compound/array
types, parseable min/max with comma-formatted number handling,
group coverage of 0-2047, status entries, and known-parameter
spot checks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Docs-only workflow: installs Sphinx + pyexcel(-ods), runs the existing
generators (canfix_json/canfix_xml/parameters) against CAN-FIX.ods, builds the
HTML with sphinx-build, and deploys to GitHub Pages. Adds a root index.html
redirect to toc.html (the master_doc). The schema (CAN-FIX.ods) is read only,
never modified.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a GitHub-wiki companion to the published specification:
- tools/gen_param_reference.py generates a parameter quick-reference table
  from src/canfix.json (grouped by CAN ID range), so it always matches the
  spec without hand maintenance.
- wiki/ holds the canonical wiki source: Home, Frame-Format, Data-Types,
  Implementing-a-Node, the generated Parameter-Reference, and the
  _Sidebar/_Footer navigation.
- tools/sync_wiki.sh regenerates the table and mirrors wiki/ to a local clone
  of the GitHub wiki for review and publishing.

Docs-only: nothing here touches the master spreadsheet (CAN-FIX.ods) or the
generated schema.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add a "Read the Specification Online" section pointing to the live GitHub
  Pages spec and the new wiki quick-references.
- Clarify that canfix.json/xml and parameters.rst are generated from the master
  spreadsheet CAN-FIX.ods (not hand-edited), and add the regenerate step plus
  the GitHub Actions auto-publish note to the build instructions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Researched 2026-07-05: Stock Flight Systems (1998), NASA AGATE (2001),
Rotax iS deployment, ARINC 825 lineage, current status (spec frozen at
V1.7/2006), and the 2013 Birkelbach 'What's wrong with CANaerospace?'
forum thread quoted as the primary source. Mirrors
pyEfis/docs/canaerospace_background.md.

Also force-add wiki/_Sidebar.md + _Footer.md: the Sphinx '_*' ignore
was silently excluding them from the canonical wiki source that
tools/sync_wiki.sh mirrors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Bill Mallard <wpballard@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant