mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 22:35:08 +00:00
- wifi: keep the "wrong_password:" prefix through the restore/AP fallback so the UI's incorrect-password prompt fires again. - /plugins/installed returns the manifest's icon (string only). - /starlark/apps/<id>/toggle coerces `enabled` and delegates to _toggle_starlark_app (disk before memory, no KeyError, "false" is false). - /api/v3/ JSON GETs are sent Cache-Control: no-store; non-JSON keeps 5s. - ScrollHelper.set_scrolling_image converts non-RGB input (alpha onto black); create/set_scrolling_image reset last_update_time like reset_scroll. - LogoHelper backs off a failed download per path for MISSING_LOGO_RECHECK_SECONDS; cleared on invalidate/clear_cache. - refresh_placeholder_timestamp saves atomically. - FontManager.clear_cache / _clear_plugin_font_cache bump cache_generation. - Odds manager: per-game logs to DEBUG; JSON decode error caught before RequestException (same cooldown). - element_style mangled continuations; startup validator skips null plugin blocks and reuses the controller's discovery. - src/common/README lists frame_timing, json_body, render_gate. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
848 B
Python
22 lines
848 B
Python
"""src/common/README.md says it lists every module; keep it true.
|
|
|
|
frame_timing, json_body and render_gate landed without rows, so the page a
|
|
plugin author reads to see what core offers was missing three modules.
|
|
"""
|
|
|
|
from pathlib import Path
|
|
|
|
COMMON = Path(__file__).resolve().parent.parent / "src" / "common"
|
|
|
|
|
|
def _modules():
|
|
return sorted(p.stem for p in COMMON.glob("*.py") if p.stem != "__init__")
|
|
|
|
|
|
def test_every_module_has_a_table_row_and_a_section():
|
|
readme = (COMMON / "README.md").read_text(encoding="utf-8")
|
|
missing_rows = [m for m in _modules() if f"| [`{m}`](#{m}) |" not in readme]
|
|
missing_sections = [m for m in _modules() if f"\n### {m}\n" not in readme]
|
|
assert not missing_rows, f"no summary-table row for: {missing_rows}"
|
|
assert not missing_sections, f"no '### <module>' section for: {missing_sections}"
|