Table of Contents
Test Report
View CI Run 2549 | Commit e5cf677
🧪 Test Report
Generated on 2025-08-25 12:47:09 CEST
🧾 General Info
- duration: 25.944020986557007
- 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.000602983869612217outcome:
passed📌 Call phase
duration:
2.099836961366236outcome:
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.0005079340189695358outcome:
passed
↳ Function: test_motor_init_strips_suffixes
-
❌ Test 2
📌 Setup phase
duration:
0.00028246641159057617outcome:
passed📌 Call phase
duration:
0.002348441630601883outcome:
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.00017532333731651306outcome:
passed
↳ Function: test_disabled_removed_relative_to_upstream
-
❌ Test 4
📌 Setup phase
duration:
0.0001385621726512909outcome:
passed📌 Call phase
duration:
0.0012600841000676155outcome:
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.00016465038061141968outcome:
passed
↳ Function: test_motor_val_connect_via_cache
-
❌ Test 6
📌 Setup phase
duration:
0.00013719592243433outcome:
passed📌 Call phase
duration:
2.001373779028654outcome:
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.0002141939476132393outcome:
passed
↳ Function: test_speedup_motor_instantiation
-
❌ Test 8
📌 Setup phase
duration:
0.0001813666895031929outcome:
passed📌 Call phase
duration:
6.002238011918962outcome:
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.0002313666045665741outcome:
passed
↳ Function: test_speedup_motor_PV
-
❌ Test 9
📌 Setup phase
duration:
0.00018097180873155594outcome:
passed📌 Call phase
duration:
0.0020277686417102814outcome:
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.0001862049102783203outcome:
passed
-
✅ Passed (6)
-
📄 test_utils_hastepics.py
↳ Function: test_motor_invalid_name_raises
-
✅ Test 3
📌 Setup phase
duration:
0.00016655120998620987outcome:
passed📌 Call phase
duration:
0.0005681291222572327outcome:
passed📌 Teardown phase
duration:
0.00012652389705181122outcome:
passed
↳ Function: test_motor_init_list_and_extras_build_handles_eagerly
-
✅ Test 5
📌 Setup phase
duration:
0.0001484490931034088outcome:
passed📌 Call phase
duration:
0.0014027338474988937outcome:
passed📌 Teardown phase
duration:
0.0001311851665377617outcome:
passed
↳ Function: test_speedup_get_pv
-
✅ Test 7
📌 Setup phase
duration:
0.0001720096915960312outcome:
passed📌 Call phase
duration:
5.000575854443014outcome:
passed📌 Teardown phase
duration:
0.00018972717225551605outcome:
passed
↳ Function: test_motor_init_list_attrs_created
-
✅ Test 10
📌 Setup phase
duration:
0.00016653165221214294outcome:
passed📌 Call phase
duration:
0.0011551547795534134outcome:
passed📌 Teardown phase
duration:
0.00014940835535526276outcome:
passed
↳ Function: test_motor_extras_attrs_correct
-
✅ Test 11
📌 Setup phase
duration:
0.00014822091907262802outcome:
passed📌 Call phase
duration:
0.001035057008266449outcome:
passed📌 Teardown phase
duration:
0.00012712925672531128outcome:
passed
↳ Function: test_motor_callbacks_empty
-
✅ Test 12
📌 Setup phase
duration:
0.00013921502977609634outcome:
passed📌 Call phase
duration:
0.0010923836380243301outcome:
passed📌 Teardown phase
duration:
0.0002769259735941887outcome:
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