Files
orisys-app/apps/autocal/tests/test_errors.py
T
2026-09-20 21:15:39 +08:00

55 lines
1.6 KiB
Python

"""Controller return-code translation.
The vendor SDK header defines the auxiliary error block at 30000; everything
else is the firmware's own number. The point of these tests is that AutoCal
never invents a meaning for a code it cannot read out of that header.
"""
from __future__ import annotations
import pytest
from orisys_autocal.motion import errors
DOCUMENTED = sorted(errors.MESSAGES)
def test_zero_is_success_in_both_languages():
assert errors.describe(0) == "成功"
assert errors.describe(0, language="en_US") == "OK"
def test_the_documented_block_is_the_vendor_offset():
assert errors.ERR_AUX_OFFSET == 30000
assert DOCUMENTED == [30000, 30001, 30002, 30003, 30004, 30005]
@pytest.mark.parametrize("code", DOCUMENTED)
def test_every_documented_code_has_both_languages(code):
zh = errors.describe(code)
en = errors.describe(code, language="en_US")
assert zh and en and zh != en
@pytest.mark.parametrize("code", DOCUMENTED)
def test_no_documented_message_is_empty(code):
assert errors.describe(code).strip()
assert errors.describe(code, language="en_US").strip()
def test_an_unknown_code_keeps_its_number():
"""A guessed meaning on a motion controller is worse than 'unknown'."""
message = errors.describe(12345)
assert "12345" in message
assert message == "错误码 12345"
def test_an_unknown_code_points_at_zdevelop():
message = errors.describe_with_hint(-1)
assert "-1" in message
assert errors.UNKNOWN_HINT in message
def test_a_documented_code_gets_no_hint_appended():
assert errors.describe_with_hint(30000) == errors.describe(30000)