bambuddy/backend/tests/unit/services/test_hms_errors.py
maziggy b99536cc33 Remove unused imports, variables, and fix minor CodeQL findings
- Remove 28 unused imports across 22 test files
- Prefix 4 unused local variables with _ in app code
  (archives, bambu_mqtt, main) and remove 1 dead store
- Consolidate import/import-from in test_plate_detection.py
- Fix unreachable statement in test_archive_service.py
- Simplify redundant comparison in timelapse_processor.py

Resolves ~50 CodeQL py/unused-import, py/unused-local-variable,
py/import-and-import-from, py/unreachable-statement, and
py/redundant-comparison findings.
2026-02-06 12:19:17 +01:00

74 lines
3 KiB
Python

"""Tests for HMS error code translations."""
from backend.app.services.hms_errors import HMS_ERROR_DESCRIPTIONS, get_error_description
class TestHMSErrorDescriptions:
"""Tests for the HMS error descriptions dictionary."""
def test_dictionary_is_not_empty(self):
"""Verify the error descriptions dictionary has entries."""
assert len(HMS_ERROR_DESCRIPTIONS) > 0
def test_dictionary_has_expected_count(self):
"""Verify we have the expected number of error codes."""
# Should have 853 error codes from the frontend
assert len(HMS_ERROR_DESCRIPTIONS) == 853
def test_all_keys_are_valid_format(self):
"""Verify all keys follow the XXXX_YYYY format."""
import re
pattern = re.compile(r"^[0-9A-F]{4}_[0-9A-F]{4}$")
for code in HMS_ERROR_DESCRIPTIONS:
assert pattern.match(code), f"Invalid error code format: {code}"
def test_all_values_are_non_empty_strings(self):
"""Verify all descriptions are non-empty strings."""
for code, description in HMS_ERROR_DESCRIPTIONS.items():
assert isinstance(description, str), f"Description for {code} is not a string"
assert len(description) > 0, f"Description for {code} is empty"
class TestGetErrorDescription:
"""Tests for the get_error_description function."""
def test_returns_description_for_known_code(self):
"""Verify known error codes return their descriptions."""
# 0300_400C = "The task was canceled."
result = get_error_description("0300_400C")
assert result == "The task was canceled."
def test_returns_description_for_ams_error(self):
"""Verify AMS error codes return their descriptions."""
# 0700_8010 = AMS assist motor overloaded
result = get_error_description("0700_8010")
assert "AMS assist motor" in result
def test_returns_none_for_unknown_code(self):
"""Verify unknown error codes return None."""
result = get_error_description("XXXX_YYYY")
assert result is None
def test_handles_lowercase_input(self):
"""Verify function handles lowercase input."""
result = get_error_description("0300_400c")
assert result == "The task was canceled."
def test_handles_mixed_case_input(self):
"""Verify function handles mixed case input."""
result = get_error_description("0300_400C")
assert result == "The task was canceled."
def test_common_error_codes_have_descriptions(self):
"""Verify common error codes have descriptions."""
common_codes = [
"0300_4000", # Z axis homing failed
"0300_4006", # Nozzle clogged
"0300_8004", # Filament ran out
"0500_4001", # Failed to connect to Bambu Cloud
"0700_8010", # AMS assist motor overloaded
]
for code in common_codes:
result = get_error_description(code)
assert result is not None, f"Missing description for common code: {code}"