Table of Contents
Test Report
View CI Run 2540 | Commit 10ed54e
🧪 Test Report
Generated on 2025-08-25 12:13:32 CEST
🧾 General Info
- duration: 25.994844675064087
- root: /workspace/tligui_y/slic
- environment: {}
📋 Summary
- Failed: 6
- Passed: 6
- Total: 12
- Collected: 12
🔎 Tests
❌ Failed (6)
-
📄 test_utils_hastepics.py
↳ Function: test_get_pv_connect_false_and_true
-
❌ Test 1
📌 Setup phase
duration:
0.0006529353559017181outcome:
passed📌 Call phase
duration:
2.096881490200758outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_hastepics.py lineno: 42 message: AssertionError: assert False + where False = <PV 'TEST:SIM:VAL': not connected>.connectedtraceback:
- path: tests/test_utils_hastepics.py lineno: 42 message: AssertionErrorlongrepr:
def test_get_pv_connect_false_and_true(): name = "TEST:SIM:VAL" assert not _in_pv_cache(name) pv = get_pv(name, connect=False) assert isinstance(pv, PV) assert _in_pv_cache(name), "PV should be in _PVcache_ after get_pv(connect=False)" assert not pv.connected # Now actually connect pv2 = get_pv(name, connect=True, timeout=2.0) > assert pv2.connected E AssertionError: assert False E + where False = <PV 'TEST:SIM:VAL': not connected>.connected tests/test_utils_hastepics.py:42: AssertionError📌 Teardown phase
duration:
0.0005248449742794037outcome:
passed
↳ Function: test_motor_init_strips_suffixes
-
❌ Test 2
📌 Setup phase
duration:
0.00029591377824544907outcome:
passed📌 Call phase
duration:
0.002514543943107128outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_hastepics.py lineno: 66 message: AssertionError: assert 'TEST:SIM:M1.' == 'TEST:SIM:M1' - TEST:SIM:M1 + TEST:SIM:M1. ? +traceback:
- path: tests/test_utils_hastepics.py lineno: 66 message: AssertionErrorlongrepr:
def test_motor_init_strips_suffixes(): m1 = Motor("TEST:SIM:M1.VAL") # Afficher les attributs de base de epics.Motor print("Attributes of epics.Motor:") print(" _init_list:", getattr(epics.Motor, "_init_list", [])) print(" _extras:", getattr(epics.Motor, "_extras", {})) # Afficher les attributs de ton objet Motor print("\nAttributes of Motor (custom):") print(" _init_list:", getattr(m1, "_init_list", [])) print(" _extras:", getattr(m1, "_extras", {})) # Afficher tous les attributs de epics.Motor (via dir()) print("\nAll attributes of epics.Motor:") print(dir(epics.Motor)) # Afficher tous les attributs de ta classe Motor (via dir()) print("\nAll attributes of Motor (custom):") print(dir(m1)) > assert m1._prefix == "TEST:SIM:M1" E AssertionError: assert 'TEST:SIM:M1.' == 'TEST:SIM:M1' E E - TEST:SIM:M1 E + TEST:SIM:M1. E ? + tests/test_utils_hastepics.py:66: AssertionError📌 Teardown phase
duration:
0.00018903426826000214outcome:
passed
↳ Function: test_disabled_removed_relative_to_upstream
-
❌ Test 4
📌 Setup phase
duration:
0.0001466851681470871outcome:
passed📌 Call phase
duration:
0.0013050558045506477outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_hastepics.py lineno: 87 message: AssertionError: _extras is empty; expected at least one entry assert 0 > 0 + where 0 = len({})traceback:
- path: tests/test_utils_hastepics.py lineno: 87 message: AssertionErrorlongrepr:
def test_disabled_removed_relative_to_upstream(): m = Motor("TEST:SIM:M7") init_list = tuple(getattr(m, "_init_list", ())) extras = dict(getattr(m, "_extras", {})) assert len(init_list) > 0, "_init_list is empty; expected at least one field" > assert len(extras) > 0, "_extras is empty; expected at least one entry" E AssertionError: _extras is empty; expected at least one entry E assert 0 > 0 E + where 0 = len({}) tests/test_utils_hastepics.py:87: AssertionError📌 Teardown phase
duration:
0.0001661377027630806outcome:
passed
↳ Function: test_motor_val_connect_via_cache
-
❌ Test 6
📌 Setup phase
duration:
0.0001371661201119423outcome:
passed📌 Call phase
duration:
2.0014836797490716outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_hastepics.py lineno: 145 message: AssertionError: assert False + where False = wait_for_connection(timeout=2.0) + where wait_for_connection = <PV 'TEST:SIM:M5.VAL': not connected>.wait_for_connectiontraceback:
- path: tests/test_utils_hastepics.py lineno: 145 message: AssertionErrorlongrepr:
def test_motor_val_connect_via_cache(): motor_prefix = "TEST:SIM:M5" pvname = f"{motor_prefix}.VAL" assert not _in_pv_cache(pvname) m = Motor(motor_prefix) assert _in_pv_cache(pvname), f"{pvname} should be cached after Motor()" pv = _get_cached_pv(pvname) assert pv is not None assert not pv.connected > assert pv.wait_for_connection(timeout=2.0) E AssertionError: assert False E + where False = wait_for_connection(timeout=2.0) E + where wait_for_connection = <PV 'TEST:SIM:M5.VAL': not connected>.wait_for_connection tests/test_utils_hastepics.py:145: AssertionError📌 Teardown phase
duration:
0.00022757239639759064outcome:
passed
↳ Function: test_speedup_motor_instantiation
-
❌ Test 8
📌 Setup phase
duration:
0.0001680338755249977outcome:
passed📌 Call phase
duration:
6.002418522723019outcome:
failedcrash:
path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py lineno: 254 message: epics.motor.MotorException: TEST:SIM:M8 is not an Epics Motortraceback:
- path: tests/test_utils_hastepics.py lineno: 174 message: None - path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py lineno: 254 message: MotorExceptionlongrepr:
def test_speedup_motor_instantiation(): """On exige juste pas de grosse régression vs EPICS.""" t0 = time.perf_counter() Motor("TEST:SIM:M6") t1 = time.perf_counter() t2 = time.perf_counter() > epics.Motor("TEST:SIM:M8") tests/test_utils_hastepics.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <epics.Motor: TEST:SIM:M8.: 'None'>, name = 'TEST:SIM:M8', timeout = 3.0 def __init__(self, name=None, timeout=3.0): if name is None: raise MotorException("must supply motor name") if name.endswith('.VAL'): name = name[:-4] if name.endswith('.'): name = name[:-1] self._prefix = name device.Device.__init__(self, name, delim='.', attrs=self._init_list, timeout=timeout) # make sure this is really a motor! rectype = self.get('RTYP') if rectype != 'motor': > raise MotorException("%s is not an Epics Motor" % name) E epics.motor.MotorException: TEST:SIM:M8 is not an Epics Motor /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/motor.py:254: MotorException📌 Teardown phase
duration:
0.0002402830868959427outcome:
passed
↳ Function: test_speedup_motor_PV
-
❌ Test 9
📌 Setup phase
duration:
0.0001666620373725891outcome:
passed📌 Call phase
duration:
0.0021195709705352783outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_hastepics.py lineno: 196 message: AssertionError: assert False + where False = <PV 'TEST:SIM:M14.VAL': not connected>.connectedtraceback:
- path: tests/test_utils_hastepics.py lineno: 196 message: AssertionErrorlongrepr:
def test_speedup_motor_PV(): # baseline EPICS m_slow = Motor("TEST:SIM:M14") t0 = time.perf_counter() pv_slow = m_slow.PV("VAL", connect=True) t1 = time.perf_counter() m_fast = Motor("TEST:SIM:M15") t2 = time.perf_counter() pv_fast = m_fast.PV("VAL", connect=False) t3 = time.perf_counter() > assert pv_slow.connected E AssertionError: assert False E + where False = <PV 'TEST:SIM:M14.VAL': not connected>.connected tests/test_utils_hastepics.py:196: AssertionError📌 Teardown phase
duration:
0.00019112322479486465outcome:
passed
-
✅ Passed (6)
-
📄 test_utils_hastepics.py
↳ Function: test_motor_invalid_name_raises
-
✅ Test 3
📌 Setup phase
duration:
0.00017421413213014603outcome:
passed📌 Call phase
duration:
0.0005415026098489761outcome:
passed📌 Teardown phase
duration:
0.0001186225563287735outcome:
passed
↳ Function: test_motor_init_list_and_extras_build_handles_eagerly
-
✅ Test 5
📌 Setup phase
duration:
0.00015595927834510803outcome:
passed📌 Call phase
duration:
0.001487107016146183outcome:
passed📌 Teardown phase
duration:
0.00012909900397062302outcome:
passed
↳ Function: test_speedup_get_pv
-
✅ Test 7
📌 Setup phase
duration:
0.00017521250993013382outcome:
passed📌 Call phase
duration:
5.000564053654671outcome:
passed📌 Teardown phase
duration:
0.00017805863171815872outcome:
passed
↳ Function: test_motor_init_list_attrs_created
-
✅ Test 10
📌 Setup phase
duration:
0.0001589655876159668outcome:
passed📌 Call phase
duration:
0.0011768341064453125outcome:
passed📌 Teardown phase
duration:
0.00013627391308546066outcome:
passed
↳ Function: test_motor_extras_attrs_correct
-
✅ Test 11
📌 Setup phase
duration:
0.0001574140042066574outcome:
passed📌 Call phase
duration:
0.0010346565395593643outcome:
passed📌 Teardown phase
duration:
0.00012134667485952377outcome:
passed
↳ Function: test_motor_callbacks_empty
-
✅ Test 12
📌 Setup phase
duration:
0.00013131555169820786outcome:
passed📌 Call phase
duration:
0.0011623604223132133outcome:
passed📌 Teardown phase
duration:
0.00024518370628356934outcome:
passed
-
📚 Collected files
✅ (1 tests)
-
✅
- Outcome:
passed - result:
- nodeid: tests/test_utils_hastepics.py type: Module - Outcome:
✅ tests (1 tests)
-
✅ tests/test_utils_hastepics.py
- Outcome:
passed - result:
- nodeid: tests/test_utils_hastepics.py::test_get_pv_connect_false_and_true type: Function lineno: 29 - nodeid: tests/test_utils_hastepics.py::test_motor_init_strips_suffixes type: Function lineno: 44 - nodeid: tests/test_utils_hastepics.py::test_motor_invalid_name_raises type: Function lineno: 74 - nodeid: tests/test_utils_hastepics.py::test_disabled_removed_relative_to_upstream type: Function lineno: 79 - nodeid: tests/test_utils_hastepics.py::test_motor_init_list_and_extras_build_handles_eagerly type: Function lineno: 100 - nodeid: tests/test_utils_hastepics.py::test_motor_val_connect_via_cache type: Function lineno: 130 - nodeid: tests/test_utils_hastepics.py::test_speedup_get_pv type: Function lineno: 149 - nodeid: tests/test_utils_hastepics.py::test_speedup_motor_instantiation type: Function lineno: 166 - nodeid: tests/test_utils_hastepics.py::test_speedup_motor_PV type: Function lineno: 183 - nodeid: tests/test_utils_hastepics.py::test_motor_init_list_attrs_created type: Function lineno: 205 - nodeid: tests/test_utils_hastepics.py::test_motor_extras_attrs_correct type: Function lineno: 216 - nodeid: tests/test_utils_hastepics.py::test_motor_callbacks_empty type: Function lineno: 228 - Outcome:
⚠️ Warnings
Warnings nº1
message: invalid escape sequence \-
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/bsread/h5.py
lineno: 207
Warnings nº2
message: The module numpy.dual is deprecated. Instead of using dual, use the functions directly from numpy or scipy.
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/scipy/fft/__init__.py
lineno: 97