Files
AareDAQ/tests/unit/gui/test_error_classifier.py
T
2026-07-06 15:39:02 +02:00

64 lines
2.2 KiB
Python

import sys
import types
from aare.gui.threads.daq_worker import DAQWorker
jfjoch_client_module = types.ModuleType("jfjoch_client")
jfjoch_client_module.ScanResult = object
jfjoch_client_module.ScanResultImagesInner = object
jfjoch_client_models_module = types.ModuleType("jfjoch_client.models")
jfjoch_client_scan_result_module = types.ModuleType("jfjoch_client.models.scan_result")
jfjoch_client_scan_result_module.ScanResult = object
sys.modules.setdefault("jfjoch_client", jfjoch_client_module)
sys.modules.setdefault("jfjoch_client.models", jfjoch_client_models_module)
sys.modules.setdefault("jfjoch_client.models.scan_result", jfjoch_client_scan_result_module)
def test_is_critical_uses_body_flag_when_present():
assert DAQWorker._is_critical({"critical": False}) is False
assert DAQWorker._is_critical({"critical": True}) is True
def test_is_critical_fails_safe_when_missing_or_unparseable():
assert DAQWorker._is_critical({}) is True
assert DAQWorker._is_critical(None) is True
def test_classify_reply_error_builds_structured_error_info():
info = DAQWorker._classify_reply_error(
status=422,
err_msg="mount failed",
body_json={
"critical": False,
"code": "MOUNTING_FAILED",
"exception_class": "MountingFailed",
"message": "mount failed",
"context": {"sample_id": 7},
},
)
assert info.critical is False
assert info.code == "MOUNTING_FAILED"
assert info.exception_class == "MountingFailed"
assert info.message == "mount failed"
assert info.context == {"sample_id": 7}
def test_classify_reply_error_fails_safe_defaults():
info = DAQWorker._classify_reply_error(status=500, err_msg="broken", body_json=None)
assert info.critical is True
assert info.code is None
assert info.exception_class is None
assert info.message == "broken"
assert info.context == {}
def test_is_auth_error_code_detects_auth_codes_only():
assert DAQWorker._is_auth_error_code("INVALID_TOKEN") is True
assert DAQWorker._is_auth_error_code("SESSION_ALREADY_ACTIVE") is True
assert DAQWorker._is_auth_error_code("MOUNTING_FAILED") is False
assert DAQWorker._is_auth_error_code(None) is False