mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 06:15:09 +00:00
Tests has been red on main since #535. All 13 failures in test/web_interface/test_starlark_pixlet_routes.py are the same ModuleNotFoundError: No module named 'yaml'. The test loads plugin-repos/starlark-apps/tronbyte_repository.py by path -- deliberately, "the way the blueprint does", since the core web blueprint really does exec that plugin module -- and the plugin imports yaml. Nothing is undeclared. The plugin's own requirements.txt already pins PyYAML>=6.0.2, and on a real rig the plugin store installs it. CI installs only requirements.txt and requirements-test.txt, so a core test that reaches into a plugin gets none of the plugin's dependencies. PyYAML goes in the test requirements rather than the core ones because it is not a core dependency: nothing in src/ or web_interface/ imports yaml. This is the same shape as the psutil entry directly above it -- a package the core does not require, installed so a test can exercise a real path instead of a stub. Verified locally: with yaml available the file goes from 13 failures to 64 passing. (One unrelated failure remains on Windows only, where os.geteuid does not exist.) Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
15 lines
953 B
Plaintext
15 lines
953 B
Plaintext
# Test/dev-only dependencies (not needed on a running display).
|
|
# Install alongside requirements.txt: pip install -r requirements.txt -r requirements-test.txt
|
|
pytest>=9.0.3,<10.0.0
|
|
pytest-cov>=4.1.0,<5.0.0
|
|
pytest-mock>=3.11.0,<4.0.0
|
|
freezegun>=1.2,<2 # deterministic time for golden-image tests
|
|
psutil>=6.0.0,<8.0.0 # optional at runtime; installed for tests so the
|
|
# /system/status endpoint's real path is exercised
|
|
mypy>=1.5.0,<2.0.0 # static type checking (also pinned in .pre-commit-config.yaml)
|
|
PyYAML>=6.0.2,<7.0.0 # not a core dependency: test_starlark_pixlet_routes loads
|
|
# plugin-repos/starlark-apps/tronbyte_repository.py the way
|
|
# the blueprint does, and that plugin imports yaml. The
|
|
# plugin declares it in its own requirements.txt, which the
|
|
# store installs on a real rig but CI never does.
|