Table of Contents
Test Report
View CI Run 2550 | Commit 0b03f2d
🧪 Test Report
Generated on 2025-08-25 12:51:23 CEST
🧾 General Info
- duration: 26.092449426651
- 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.0006567379459738731outcome:
passed📌 Call phase
duration:
2.097654741257429outcome:
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.0006303181871771812outcome:
passed
↳ Function: test_motor_init_strips_suffixes
-
❌ Test 2
📌 Setup phase
duration:
0.0003138100728392601outcome:
passed📌 Call phase
duration:
0.0023825708776712418outcome:
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.00017760787159204483outcome:
passed
↳ Function: test_disabled_removed_relative_to_upstream
-
❌ Test 4
📌 Setup phase
duration:
0.00014634337276220322outcome:
passed📌 Call phase
duration:
0.0012569427490234375outcome:
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.0002343691885471344outcome:
passed
↳ Function: test_motor_val_connect_via_cache
-
❌ Test 6
📌 Setup phase
duration:
0.00015412550419569016outcome:
passed📌 Call phase
duration:
2.00164463929832outcome:
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.00022224150598049164outcome:
passed
↳ Function: test_speedup_motor_instantiation
-
❌ Test 8
📌 Setup phase
duration:
0.00018653925508260727outcome:
passed📌 Call phase
duration:
6.002365905791521outcome:
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.00047682132571935654outcome:
passed
↳ Function: test_speedup_motor_PV
-
❌ Test 9
📌 Setup phase
duration:
0.0003078952431678772outcome:
passed📌 Call phase
duration:
0.0031541697680950165outcome:
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.00025491323322057724outcome:
passed
-
✅ Passed (6)
-
📄 test_utils_hastepics.py
↳ Function: test_motor_invalid_name_raises
-
✅ Test 3
📌 Setup phase
duration:
0.00018119625747203827outcome:
passed📌 Call phase
duration:
0.0005610054358839989outcome:
passed📌 Teardown phase
duration:
0.0001232679933309555outcome:
passed
↳ Function: test_motor_init_list_and_extras_build_handles_eagerly
-
✅ Test 5
📌 Setup phase
duration:
0.00019507110118865967outcome:
passed📌 Call phase
duration:
0.001598503440618515outcome:
passed📌 Teardown phase
duration:
0.00018022023141384125outcome:
passed
↳ Function: test_speedup_get_pv
-
✅ Test 7
📌 Setup phase
duration:
0.0001765824854373932outcome:
passed📌 Call phase
duration:
5.0007679192349315outcome:
passed📌 Teardown phase
duration:
0.00022715702652931213outcome:
passed
↳ Function: test_motor_init_list_attrs_created
-
✅ Test 10
📌 Setup phase
duration:
0.00017992593348026276outcome:
passed📌 Call phase
duration:
0.0014108233153820038outcome:
passed📌 Teardown phase
duration:
0.00015586335211992264outcome:
passed
↳ Function: test_motor_extras_attrs_correct
-
✅ Test 11
📌 Setup phase
duration:
0.00019502826035022736outcome:
passed📌 Call phase
duration:
0.0013512130826711655outcome:
passed📌 Teardown phase
duration:
0.00013445690274238586outcome:
passed
↳ Function: test_motor_callbacks_empty
-
✅ Test 12
📌 Setup phase
duration:
0.0001593455672264099outcome:
passed📌 Call phase
duration:
0.0011227047070860863outcome:
passed📌 Teardown phase
duration:
0.000315619632601738outcome:
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