From the round-5 review of #212 (follows #250).
Where: scripts/fleet/check_cards.py: main(), check() and audit_entries().
Three malformed audits produce no AUDIT row:
- JSON
null: reaches check() as audit=None, which means "no audit supplied".
{}: is falsy, so if audit: skips the pin time and never reports it missing.
- An object without
repositories: defaults to [], which switches WRONG off for every Mech.
Failure scenario: grown sites then read STALE, and the closing line sends the reader to a full refresh. #250 and the docs promise AUDIT for a missing or malformed audit. Without repositories, a mistyped card passes as "grew".
Fix:
main() reports a non-object audit as audit_error;
check() tests audit is not None;
audit_entries() requires repositories.
From the round-5 review of #212 (follows #250).
Where:
scripts/fleet/check_cards.py:main(),check()andaudit_entries().Three malformed audits produce no AUDIT row:
null: reachescheck()asaudit=None, which means "no audit supplied".{}: is falsy, soif audit:skips the pin time and never reports it missing.repositories: defaults to[], which switches WRONG off for every Mech.Failure scenario: grown sites then read STALE, and the closing line sends the reader to a full refresh. #250 and the docs promise AUDIT for a missing or malformed audit. Without
repositories, a mistyped card passes as "grew".Fix:
main()reports a non-object audit asaudit_error;check()testsaudit is not None;audit_entries()requiresrepositories.