Table of Contents
Test Report
View CI Run 2562 | Commit 00a35f3
🧪 Test Report
Generated on 2025-08-25 14:17:16 CEST
🧾 General Info
- duration: 26.848019123077393
- 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.0007010446861386299outcome:
passed📌 Call phase
duration:
2.1056516729295254outcome:
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.0006316760554909706outcome:
passed
↳ Function: test_motor_init_strips_suffixes
-
❌ Test 2
📌 Setup phase
duration:
0.0003603510558605194outcome:
passed📌 Call phase
duration:
0.003068835474550724outcome:
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.0002612695097923279outcome:
passed
↳ Function: test_disabled_removed_relative_to_upstream
-
❌ Test 4
📌 Setup phase
duration:
0.00017063505947589874outcome:
passed📌 Call phase
duration:
0.0016587497666478157outcome:
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.0002260422334074974outcome:
passed
↳ Function: test_motor_val_connect_via_cache
-
❌ Test 6
📌 Setup phase
duration:
0.00016280543059110641outcome:
passed📌 Call phase
duration:
2.001796403899789outcome:
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.00026451796293258667outcome:
passed
↳ Function: test_speedup_motor_instantiation
-
❌ Test 8
📌 Setup phase
duration:
0.00020910333842039108outcome:
passed📌 Call phase
duration:
6.002885635942221outcome:
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.0003161393105983734outcome:
passed
↳ Function: test_speedup_motor_PV
-
❌ Test 9
📌 Setup phase
duration:
0.00024634692817926407outcome:
passed📌 Call phase
duration:
0.002595829777419567outcome:
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.00017293263226747513outcome:
passed
-
✅ Passed (6)
-
📄 test_utils_hastepics.py
↳ Function: test_motor_invalid_name_raises
-
✅ Test 3
📌 Setup phase
duration:
0.0001909220591187477outcome:
passed📌 Call phase
duration:
0.0007165307179093361outcome:
passed📌 Teardown phase
duration:
0.0001410115510225296outcome:
passed
↳ Function: test_motor_init_list_and_extras_build_handles_eagerly
-
✅ Test 5
📌 Setup phase
duration:
0.00018456391990184784outcome:
passed📌 Call phase
duration:
0.0015964126214385033outcome:
passed📌 Teardown phase
duration:
0.00015765801072120667outcome:
passed
↳ Function: test_speedup_get_pv
-
✅ Test 7
📌 Setup phase
duration:
0.00019431300461292267outcome:
passed📌 Call phase
duration:
5.000758139416575outcome:
passed📌 Teardown phase
duration:
0.0002213073894381523outcome:
passed
↳ Function: test_motor_init_list_attrs_created
-
✅ Test 10
📌 Setup phase
duration:
0.00018126610666513443outcome:
passed📌 Call phase
duration:
0.0012007001787424088outcome:
passed📌 Teardown phase
duration:
0.00013623852282762527outcome:
passed
↳ Function: test_motor_extras_attrs_correct
-
✅ Test 11
📌 Setup phase
duration:
0.00015635695308446884outcome:
passed📌 Call phase
duration:
0.0010699257254600525outcome:
passed📌 Teardown phase
duration:
0.00012218859046697617outcome:
passed
↳ Function: test_motor_callbacks_empty
-
✅ Test 12
📌 Setup phase
duration:
0.00016745086759328842outcome:
passed📌 Call phase
duration:
0.0011327136307954788outcome:
passed📌 Teardown phase
duration:
0.0002881120890378952outcome:
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