mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 06:15:09 +00:00
fix(web): two api_v3 paths called names that no longer exist (#625)
The Pixlet editor stop route restarts the display after a SIGKILL with _run_systemctl_command, which starlark.py never imported (since #554). The Starlark device-location resolver fell back to _ensure_cache_manager, which #609 deleted; the resolver already accepts no cache manager. Both raised NameError on the rare path that reaches them. pyflakes finds no other undefined names in src/ or web_interface/. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
"""Names two rarely-run api_v3 paths call must exist.
|
||||||
|
|
||||||
|
Both slipped through because nothing exercised them: the Pixlet editor's
|
||||||
|
stop route only restarts the display after a SIGKILL, and the Starlark
|
||||||
|
device-location resolver only builds a cache manager when the web app has
|
||||||
|
not set one. Either raised NameError when it finally ran.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
from test._api_v3_test_helpers import api_v3_module # noqa: F401
|
||||||
|
|
||||||
|
|
||||||
|
def test_the_editor_stop_route_can_restart_the_display():
|
||||||
|
from web_interface.blueprints.api_v3 import starlark
|
||||||
|
|
||||||
|
assert callable(starlark._run_systemctl_command)
|
||||||
|
|
||||||
|
|
||||||
|
def test_the_device_location_resolver_builds_without_a_cache_manager(api_v3_module):
|
||||||
|
pkg = api_v3_module
|
||||||
|
with patch.object(pkg.api_v3, 'cache_manager', None, create=True), \
|
||||||
|
patch.object(pkg, '_starlark_device_location', None):
|
||||||
|
resolver = pkg._get_starlark_device_location()
|
||||||
|
assert resolver.cache_manager is None
|
||||||
@@ -1712,7 +1712,7 @@ def _get_starlark_device_location() -> DeviceLocationResolver:
|
|||||||
global _starlark_device_location
|
global _starlark_device_location
|
||||||
if _starlark_device_location is None:
|
if _starlark_device_location is None:
|
||||||
_starlark_device_location = DeviceLocationResolver(
|
_starlark_device_location = DeviceLocationResolver(
|
||||||
getattr(api_v3, 'cache_manager', None) or _ensure_cache_manager(), logger)
|
getattr(api_v3, 'cache_manager', None), logger)
|
||||||
return _starlark_device_location
|
return _starlark_device_location
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from web_interface.blueprints.api_v3 import (
|
|||||||
_PIXLET_EDITOR_DEFAULT_TIMEOUT, _PIXLET_EDITOR_MAX_TIMEOUT,
|
_PIXLET_EDITOR_DEFAULT_TIMEOUT, _PIXLET_EDITOR_MAX_TIMEOUT,
|
||||||
_PIXLET_EDITOR_SCRIPT, _PIXLET_EDITOR_STATE, _clear_pixlet_editor_state,
|
_PIXLET_EDITOR_SCRIPT, _PIXLET_EDITOR_STATE, _clear_pixlet_editor_state,
|
||||||
_find_pixlet_binary, _install_star_file, _pixlet_editor_alive,
|
_find_pixlet_binary, _install_star_file, _pixlet_editor_alive,
|
||||||
|
_run_systemctl_command,
|
||||||
_pixlet_editor_status, _read_pixlet_editor_state,
|
_pixlet_editor_status, _read_pixlet_editor_state,
|
||||||
_STARLARK_APPS_DIR, _standalone_render_starlark_app,
|
_STARLARK_APPS_DIR, _standalone_render_starlark_app,
|
||||||
_starlark_github_token, _starlark_manifest_lock,
|
_starlark_github_token, _starlark_manifest_lock,
|
||||||
|
|||||||
Reference in New Issue
Block a user