From dc659940abaad08ef75c188a514bacc84153cf64 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 1 Aug 2026 14:08:18 +0000 Subject: [PATCH] ci: enroll the core unit suites in a dedicated job The existing workflow ran only the three plugin-harness suites; the skin-system, font-manager, data-source, extractor, scroll-helper, adaptive-layout, and loader-compat suites (266 tests) existed but never ran in CI, so a refactor of src/base_classes or src/common could regress them silently. Also enrolls the new sports characterization and element-style suites landing in this branch. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01FgbA8SMutQQpXkMG8LMmC4 --- .github/workflows/test.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b3a7f71..96dd020b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,3 +31,41 @@ jobs: test/plugins/test_harness.py \ test/plugins/test_visual_rendering.py \ test/plugins/test_plugin_matrix.py + + unit-tests: + name: Core unit tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + with: + python-version: "3.12" + cache: pip + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt -r requirements-test.txt + pip install RGBMatrixEmulator + + # Safety net for the shared sports/scroll/style infrastructure. These + # suites existed but were not enrolled in CI, so a refactor of + # src/base_classes or src/common could regress them silently. Enrolled + # explicitly (not `pytest test/`) so known hardware-only suites don't + # break CI; grow this list as more suites are made headless. + - name: Run core unit suites + run: | + pytest --no-cov \ + test/test_skin_system.py \ + test/test_font_manager.py \ + test/test_data_sources.py \ + test/test_api_extractors.py \ + test/test_scroll_helper.py \ + test/test_scroll_helper_continuous.py \ + test/test_adaptive_layout.py \ + test/test_loader_compat_warning.py \ + test/test_sports_base_characterization.py \ + test/test_element_style.py