接入 Studio 多点标定的会话置零与状态记录
支持显式无载荷置零、处理线程内切换模型及完整标定包快照。shared、界面检查与兼容测试通过;Studio 全量仍有一项回放停止时序测试失败。
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
"""Unloaded confirmation is separate from reset and model failures stay visible."""
|
||||
|
||||
from types import SimpleNamespace
|
||||
|
||||
import pytest
|
||||
from PySide6.QtWidgets import QMessageBox
|
||||
|
||||
from orisys_studio.app_window import StudioMainWindow
|
||||
from orisys_studio.ui.toolbar import ToolbarWidget
|
||||
|
||||
|
||||
@pytest.mark.parametrize("confirmed", [False, True])
|
||||
def test_unloaded_zero_requires_operator_confirmation(monkeypatch, confirmed):
|
||||
requested = []
|
||||
messages = []
|
||||
host = SimpleNamespace(
|
||||
_session_phase="running",
|
||||
_active_worker=SimpleNamespace(request_calibration_zero=lambda: requested.append(True)),
|
||||
statusBar=lambda: SimpleNamespace(showMessage=messages.append))
|
||||
monkeypatch.setattr(QMessageBox, "question", lambda *args: QMessageBox.StandardButton.Yes
|
||||
if confirmed else QMessageBox.StandardButton.No)
|
||||
StudioMainWindow._on_calibration_zero(host)
|
||||
assert bool(requested) == confirmed
|
||||
|
||||
|
||||
def test_model_status_and_zero_control_are_cleared_on_playback(qt_app):
|
||||
toolbar = ToolbarWidget()
|
||||
toolbar.set_reset_enabled(True)
|
||||
toolbar.set_model_calibration_status({"fn": "zero_unavailable"})
|
||||
assert not toolbar.btn_calibration_zero.isHidden()
|
||||
assert "FN" in toolbar.model_state.text()
|
||||
assert toolbar.btn_calibration_zero.isEnabled()
|
||||
toolbar.set_run_role("playback")
|
||||
assert toolbar.btn_calibration_zero.isHidden()
|
||||
assert toolbar.model_state.isHidden()
|
||||
toolbar.close()
|
||||
Reference in New Issue
Block a user