From 41e9d040f3c579b9977376dfcdb027e479ffd1b7 Mon Sep 17 00:00:00 2001 From: tligui_y Date: Sun, 10 Aug 2025 18:00:03 +0200 Subject: [PATCH] Update tests/test_utils_marker.py --- tests/test_utils_marker.py | 113 ++++++++++++++++++------------------- 1 file changed, 55 insertions(+), 58 deletions(-) diff --git a/tests/test_utils_marker.py b/tests/test_utils_marker.py index d921d5b2c..e54118e38 100644 --- a/tests/test_utils_marker.py +++ b/tests/test_utils_marker.py @@ -1,11 +1,15 @@ import pytest import sys import os + +# S'assurer que la racine du projet est dans le path sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) -from slic.utils.marker import * + +# Import en tant que module (évite les références figées) +import slic.utils.marker as marker_mod -# Dummy class to simulate an adjustable device +# Dummy class to simulate an adjustable device class DummyDevice: def __init__(self, name="Device", units="V", current=1.23): self.name = name @@ -22,116 +26,109 @@ class DummyDevice: return f"Set to {value}{self.units}, hold={hold}" -# Test format_value() +# --- format_value() tests + def test_format_value_with_units(): - assert format_value(1.5, "V") == "1.5 V" + assert marker_mod.format_value(1.5, "V") == "1.5 V" def test_format_value_without_units(): - assert format_value(1.5, None) == "1.5" + assert marker_mod.format_value(1.5, None) == "1.5" -# Marker class tests +# --- Marker tests def test_marker_name_default(): - device = DummyDevice() - m = Marker(device, value=2.5) - assert m.name == "Device at 2.5 V" + device = DummyDevice(name="Device_TND") + m = marker_mod.Marker(device, value=2.5) + assert m.name == "Device_TND at 2.5 V" def test_marker_name_custom(): - device = DummyDevice() - m = Marker(device, value=2.5, name="TestName") - assert m.name == "TestName" + device = DummyDevice(name="Device_TNC") + m = marker_mod.Marker(device, value=2.5, name="TestName_TNC") + assert m.name == "TestName_TNC" def test_marker_repr_format(): - device = DummyDevice(name="Volt", units="mV", current=1.0) - m = Marker(device, value=2.5) + device = DummyDevice(name="Volt_TRF", units="mV", current=1.0) + m = marker_mod.Marker(device, value=2.5) out = repr(m) - assert 'Marker "Volt at 2.5 mV"' in out + assert 'Marker "Volt_TRF at 2.5 mV"' in out assert "(currently at 1.0 mV)" in out def test_marker_update_changes_value(): - device = DummyDevice(current=4.2) - m = Marker(device, value=1.0) + device = DummyDevice(name="Device_TMU", current=4.2) + m = marker_mod.Marker(device, value=1.0) assert m.value == 1.0 m.update() assert m.value == 4.2 def test_marker_update_with_explicit_value(): - device = DummyDevice() - m = Marker(device, value=0.0) + device = DummyDevice(name="Device_TUE") + m = marker_mod.Marker(device, value=0.0) m.update(7.7) assert m.value == 7.7 def test_marker_goto_sets_value_and_returns_result(): - device = DummyDevice(current=1.0) - m = Marker(device, value=3.3) + device = DummyDevice(name="Device_TGG", current=1.0) + m = marker_mod.Marker(device, value=3.3) result = m.goto() assert result == "Set to 3.3V, hold=False" assert device.current == 3.3 assert device.set_calls[-1] == (3.3, False) def test_marker_call_is_alias_of_goto(): - device = DummyDevice(current=1.0) - m = Marker(device, value=3.3) + device = DummyDevice(name="Device_TAC", current=1.0) + m = marker_mod.Marker(device, value=3.3) result = m(hold=True) assert result == "Set to 3.3V, hold=True" assert device.set_calls[-1] == (3.3, True) -# markers singleton registry - -# Clean singleton before test session -@pytest.fixture(autouse=True) -def clean_markers_registry(): - # Ensures markers are reset before each test - Marker._registry.clear() - yield - Marker._registry.clear() +# --- markers singleton registry def test_markers_register_and_access(): - d1 = DummyDevice(name="Dev1", current=1.0) - d2 = DummyDevice(name="Dev2", current=2.0) - m1 = Marker(d1, value=10) - m2 = Marker(d2, value=20) + d1 = DummyDevice(name="Dev1_TMR", current=1.0) + d2 = DummyDevice(name="Dev2_TMR", current=2.0) + m1 = marker_mod.Marker(d1, value=10) + m2 = marker_mod.Marker(d2, value=20) - all_markers = markers._get() + all_markers = marker_mod.markers._get() assert isinstance(all_markers, dict) assert m1.name in all_markers assert m2.name in all_markers assert all_markers[m1.name] is m1 assert all_markers[m2.name] is m2 - assert markers[m1.name] is m1 - assert markers[m2.name] is m2 + assert marker_mod.markers[m1.name] is m1 + assert marker_mod.markers[m2.name] is m2 def test_markers_repr_contains_all(): - d1 = DummyDevice(name="Dev1", current=1.0) - d2 = DummyDevice(name="Dev2", current=2.0) - m1 = Marker(d1, value=10) - m2 = Marker(d2, value=20) + d1 = DummyDevice(name="Dev1_TMR2", current=1.0) + d2 = DummyDevice(name="Dev2_TMR2", current=2.0) + marker_mod.Marker(d1, value=10) + marker_mod.Marker(d2, value=20) - repr_str = repr(markers) - assert "Dev1 at 10 V" in repr_str - assert "Dev2 at 20 V" in repr_str + repr_str = repr(marker_mod.markers) + assert "Dev1_TMR2 at 10 V" in repr_str + assert "Dev2_TMR2 at 20 V" in repr_str assert isinstance(repr_str, str) def test_markers_conflicting_names(): - d = DummyDevice(name="DevX", current=5.0) - m1 = Marker(d, value=50, name="conflict") - m2 = Marker(d, value=60, name="conflict") # same name => overwrite + d = DummyDevice(name="DevX_TMC", current=5.0) + m1 = marker_mod.Marker(d, value=50, name="conflict_TMC") + m2 = marker_mod.Marker(d, value=60, name="conflict_TMC") # same name => overwrite - all_markers = markers._get() - assert "conflict" in all_markers - assert all_markers["conflict"] is m2 # The last one wins + all_markers = marker_mod.markers._get() + assert "conflict_TMC" in all_markers + assert all_markers["conflict_TMC"] is m2 # The last one wins def test_marker_registry_dict_is_printable_dict(): - d = DummyDevice(name="DevP", current=7.0) - m = Marker(d, value=70) - ms = markers._get() + d = DummyDevice(name="DevP_TPR", current=7.0) + marker_mod.Marker(d, value=70) + ms = marker_mod.markers._get() assert isinstance(ms, dict) - assert isinstance(repr(markers), str) - assert isinstance(printable_dict(ms), str) + assert isinstance(repr(marker_mod.markers), str) + assert isinstance(marker_mod.printable_dict(ms), str) def test_markers_getitem_invalid_key_raises(): with pytest.raises(KeyError): - _ = markers["this marker does not exist"] \ No newline at end of file + _ = marker_mod.markers["this marker does not exist"]