test: add device controller test
This commit is contained in:
@@ -140,3 +140,50 @@ def test_logging_handler(controller):
|
|||||||
logger = logging.getLogger("test_logger")
|
logger = logging.getLogger("test_logger")
|
||||||
logger.info("Hello QML Activity Log")
|
logger.info("Hello QML Activity Log")
|
||||||
assert any("Hello QML Activity Log" in line for line in controller._activity_log)
|
assert any("Hello QML Activity Log" in line for line in controller._activity_log)
|
||||||
|
|
||||||
|
def test_fresh_session_on_startup(mock_settings):
|
||||||
|
import tempfile
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
# Configure mock settings with some data to simulate previous session
|
||||||
|
mock_settings.activity_log = ["[12:00:00] Old message"]
|
||||||
|
mock_settings.selected_port = "COM9"
|
||||||
|
mock_settings.last_wafer_info = {"familyCode": "P", "serialNumber": "P00002"}
|
||||||
|
mock_settings.data_row_count = 50
|
||||||
|
mock_settings.data_col_count = 244
|
||||||
|
|
||||||
|
temp_dir = tempfile.mkdtemp()
|
||||||
|
try:
|
||||||
|
new_controller = DeviceController(mock_settings, temp_dir)
|
||||||
|
# Should start completely fresh (empty/default) ignoring the persisted status
|
||||||
|
assert len(new_controller._activity_log) == 0
|
||||||
|
assert new_controller.selectedPort == ""
|
||||||
|
assert new_controller.lastWaferInfo == ["", "", 0, "", 0, 0]
|
||||||
|
assert new_controller.dataRowCount == 0
|
||||||
|
assert new_controller.dataColCount == 0
|
||||||
|
finally:
|
||||||
|
shutil.rmtree(temp_dir)
|
||||||
|
|
||||||
|
def test_detect_wafer_clears_old_session(controller):
|
||||||
|
controller._selected_port = "COM1"
|
||||||
|
controller._last_wafer_info = {"familyCode": "P", "serialNumber": "P00001"}
|
||||||
|
controller._data_row_count = 10
|
||||||
|
controller._data_col_count = 244
|
||||||
|
controller._activity_log.append("[12:00:00] Previous message")
|
||||||
|
|
||||||
|
# We mock detect_all_ports to not run long or fail
|
||||||
|
controller._service.detect_all_ports = MagicMock(return_value=(None, None))
|
||||||
|
|
||||||
|
with patch("threading.Thread") as mock_thread:
|
||||||
|
controller.detectWafer()
|
||||||
|
|
||||||
|
# Verify it cleared all session variables and logs immediately at start of detect
|
||||||
|
assert controller.selectedPort == ""
|
||||||
|
assert controller.lastWaferInfo == ["", "", 0, "", 0, 0]
|
||||||
|
assert controller.dataRowCount == 0
|
||||||
|
assert controller.dataColCount == 0
|
||||||
|
|
||||||
|
# Log should only contain "Scanning all ports for wafer ..."
|
||||||
|
assert len(controller._activity_log) == 1
|
||||||
|
assert "Scanning all ports" in controller._activity_log[0]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user