Table of Contents
Test Report
View CI Run 1241 | Commit bc21a2e ✅ Pytest completed successfully
All tests were collected and executed properly. See the details below.
📋 Short test summary info
=========================== short test summary info ============================
FAILED tests/test_utils_debug.py::test_short_repr[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10-'aaaaaaaaaaa...] - assert "'aaaaaaaaa..." == "'aaaaaaaaaaa..."
- 'aaaaaaaaaaa...
? --
+ 'aaaaaaaaa...
FAILED tests/test_utils_debug.py::test_short_repr[value5-20-Obj(xxxxxxxxxxxxxxxxxx...] - AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxxx...'
- Obj(xxxxxxxxxxxxxxxxxx...
? --
+ Obj(xxxxxxxxxxxxxxxx...
FAILED tests/test_utils_dictext.py::test_attrdict_getattr[data3-outer.inner-None] - AttributeError: 'MyDict' object has no attribute 'outer.inner'
FAILED tests/test_utils_dictext.py::test_attrdict_getattr[data4-outer.inner-42] - AttributeError: 'MyDict' object has no attribute 'outer.inner'
FAILED tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data1-missing-None-'AttrDict' object has no attribute 'missing'] - assert "'MyDict' obj...ute 'missing'" == "'AttrDict' o...ute 'missing'"
- 'AttrDict' object has no attribute 'missing'
? ^^^^
+ 'MyDict' object has no attribute 'missing'
? ^^
=================== 5 failed, 90 passed, 4 warnings in 5.74s ===================
🪵 Full raw pytest log
============================= test session starts ==============================
platform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0
rootdir: /workspace/tligui_y/slic
plugins: allure-pytest-2.13.5, metadata-3.1.1, cov-5.0.0, html-4.1.1, json-report-1.5.0
]0;⊚slic[W 250725 10:46:11 pvpreload:38] PV preload file not loaded due to: FileNotFoundError: [Errno 2] No such file or directory: '/root/.slic/pvpreload'
collected 95 items
tests/test_utils_ask_yes_no.py .............
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
.
.
.
.
.
tests/test_utils_channels.py .
tests/test_utils_cpint.py ........................
tests/test_utils_debug.py ......F...F
tests/test_utils_dictext.py ...FF.......F......
=================================== FAILURES ===================================
_ test_short_repr[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10-'aaaaaaaaaaa...] _
value = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
cutoff = 10, expected = "'aaaaaaaaaaa..."
@pytest.mark.parametrize(
"value, cutoff, expected",
[
("abc", 10, "'abc'"),
("a" * 100, 10, "'aaaaaaaaaaa..."),
(12345, 10, "12345"),
([0]*100, 15, str(repr([0]*100))[:15] + "..."),
(None, 10, "None"),
(type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxxx..."),
]
)
def test_short_repr(value, cutoff, expected):
> assert short_repr(value, cutoff) == expected
E assert "'aaaaaaaaa..." == "'aaaaaaaaaaa..."
E
E - 'aaaaaaaaaaa...
E ? --
E + 'aaaaaaaaa...
tests/test_utils_debug.py:66: AssertionError
_____________ test_short_repr[value5-20-Obj(xxxxxxxxxxxxxxxxxx...] _____________
value = Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), cutoff = 20
expected = 'Obj(xxxxxxxxxxxxxxxxxx...'
@pytest.mark.parametrize(
"value, cutoff, expected",
[
("abc", 10, "'abc'"),
("a" * 100, 10, "'aaaaaaaaaaa..."),
(12345, 10, "12345"),
([0]*100, 15, str(repr([0]*100))[:15] + "..."),
(None, 10, "None"),
(type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxxx..."),
]
)
def test_short_repr(value, cutoff, expected):
> assert short_repr(value, cutoff) == expected
E AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxxx...'
E
E - Obj(xxxxxxxxxxxxxxxxxx...
E ? --
E + Obj(xxxxxxxxxxxxxxxx...
tests/test_utils_debug.py:66: AssertionError
________________ test_attrdict_getattr[data3-outer.inner-None] _________________
data = {'outer': {'inner': 42}}, attr = 'outer.inner', expected = None
@pytest.mark.parametrize(
"data, attr, expected",
[
({"x": 1, "y": 2}, "x", 1),
({"world": "ok"}, "world", "ok"),
({"outer": {"inner": 42}}, "outer", {"inner": 42}),
({"outer": {"inner": 42}}, "outer.inner", None), # pas converti, pas accessible par point
({"outer": AttrDict({"inner": 42})}, "outer.inner", 42),
]
)
def test_attrdict_getattr(data, attr, expected):
d = MyDict(**data)
> assert getattr(d, attr) == expected
tests/test_utils_dictext.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
slic/utils/dictext.py:18: in __getattr__
self._raise_missing_attribute(name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = {'outer': {'inner': 42}}, name = 'outer.inner'
def _raise_missing_attribute(self, name):
tn = typename(self)
> raise AttributeError(f"{repr(tn)} object has no attribute {repr(name)}")
E AttributeError: 'MyDict' object has no attribute 'outer.inner'
slic/utils/dictext.py:31: AttributeError
_________________ test_attrdict_getattr[data4-outer.inner-42] __________________
data = {'outer': {'inner': 42}}, attr = 'outer.inner', expected = 42
@pytest.mark.parametrize(
"data, attr, expected",
[
({"x": 1, "y": 2}, "x", 1),
({"world": "ok"}, "world", "ok"),
({"outer": {"inner": 42}}, "outer", {"inner": 42}),
({"outer": {"inner": 42}}, "outer.inner", None), # pas converti, pas accessible par point
({"outer": AttrDict({"inner": 42})}, "outer.inner", 42),
]
)
def test_attrdict_getattr(data, attr, expected):
d = MyDict(**data)
> assert getattr(d, attr) == expected
tests/test_utils_dictext.py:27:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
slic/utils/dictext.py:18: in __getattr__
self._raise_missing_attribute(name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = {'outer': {'inner': 42}}, name = 'outer.inner'
def _raise_missing_attribute(self, name):
tn = typename(self)
> raise AttributeError(f"{repr(tn)} object has no attribute {repr(name)}")
E AttributeError: 'MyDict' object has no attribute 'outer.inner'
slic/utils/dictext.py:31: AttributeError
_ test_attrdict_getattr_and_missing[data1-missing-None-'AttrDict' object has no attribute 'missing'] _
data = {'number': 42}, attr = 'missing', expect_value = None
expect_error = "'AttrDict' object has no attribute 'missing'"
@pytest.mark.parametrize(
"data, attr, expect_value, expect_error",
[
({"x": 1, "y": 2}, "x", 1, None),
({"number": 42}, "missing", None, "'AttrDict' object has no attribute 'missing'"),
]
)
def test_attrdict_getattr_and_missing(data, attr, expect_value, expect_error):
d = MyDict(**data)
if expect_error is None:
assert getattr(d, attr) == expect_value
else:
with pytest.raises(AttributeError) as excinfo:
_ = getattr(d, attr)
> assert str(excinfo.value) == expect_error
E assert "'MyDict' obj...ute 'missing'" == "'AttrDict' o...ute 'missing'"
E
E - 'AttrDict' object has no attribute 'missing'
E ? ^^^^
E + 'MyDict' object has no attribute 'missing'
E ? ^^
tests/test_utils_dictext.py:87: AssertionError
=============================== warnings summary ===============================
.pixi/envs/default/lib/python3.8/site-packages/bsread/h5.py:207
/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/bsread/h5.py:207: DeprecationWarning: invalid escape sequence \-
if not re.match('^tcp://[a-zA-Z.\-0-9]+:[0-9]+$', address):
.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/ca.py:28
/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/ca.py:28: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
.pixi/envs/default/lib/python3.8/site-packages/pkg_resources/__init__.py:3154
/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pkg_resources/__init__.py:3154: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('mpl_toolkits')`.
Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
declare_namespace(pkg)
.pixi/envs/default/lib/python3.8/site-packages/scipy/fft/__init__.py:97
/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/scipy/fft/__init__.py:97: DeprecationWarning: The module numpy.dual is deprecated. Instead of using dual, use the functions directly from numpy or scipy.
from numpy.dual import register_func
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
🧪 Test Report
Generated on 2025-07-25 12:46:14 CEST
🧾 General Info
- duration: 5.744860887527466
- root: /workspace/tligui_y/slic
- environment: {}
📋 Summary
- Passed: 90
- Failed: 5
- Total: 95
- Collected: 95
🔎 Tests
✅ Passed (90)
-
📄 test_utils_ask_yes_no.py
↳ Function: test_ask_yes_no
-
✅ Test 1
📌 Setup phase
duration:
0.0007728219497948885outcome:
passed📌 Call phase
duration:
0.0008179901633411646outcome:
passed📌 Teardown phase
duration:
0.0003003189340233803outcome:
passed -
✅ Test 2
📌 Setup phase
duration:
0.000359176192432642outcome:
passed📌 Call phase
duration:
0.0005412038881331682outcome:
passed📌 Teardown phase
duration:
0.00018776697106659412outcome:
passed -
✅ Test 3
📌 Setup phase
duration:
0.0003339799586683512outcome:
passed📌 Call phase
duration:
0.0006581500638276339outcome:
passed📌 Teardown phase
duration:
0.00020780903287231922outcome:
passed -
✅ Test 4
📌 Setup phase
duration:
0.0003190920688211918outcome:
passed📌 Call phase
duration:
0.0005203951150178909outcome:
passed📌 Teardown phase
duration:
0.00020255404524505138outcome:
passed -
✅ Test 5
📌 Setup phase
duration:
0.00032162689603865147outcome:
passed📌 Call phase
duration:
0.0005469801835715771outcome:
passed📌 Teardown phase
duration:
0.0001870892010629177outcome:
passed -
✅ Test 6
📌 Setup phase
duration:
0.0003304691053926945outcome:
passed📌 Call phase
duration:
0.0006493129767477512outcome:
passed📌 Teardown phase
duration:
0.0001901669893413782outcome:
passed -
✅ Test 7
📌 Setup phase
duration:
0.0003360139671713114outcome:
passed📌 Call phase
duration:
0.000534221064299345outcome:
passed📌 Teardown phase
duration:
0.00020071002654731274outcome:
passed -
✅ Test 8
📌 Setup phase
duration:
0.0003347620368003845outcome:
passed📌 Call phase
duration:
0.0005074541550129652outcome:
passed📌 Teardown phase
duration:
0.00018918816931545734outcome:
passed -
✅ Test 9
📌 Setup phase
duration:
0.00034781312569975853outcome:
passed📌 Call phase
duration:
0.0005188749637454748outcome:
passed📌 Teardown phase
duration:
0.00019334699027240276outcome:
passed -
✅ Test 10
📌 Setup phase
duration:
0.00032625114545226097outcome:
passed📌 Call phase
duration:
0.0006042919121682644outcome:
passed📌 Teardown phase
duration:
0.00018935790285468102outcome:
passed -
✅ Test 11
📌 Setup phase
duration:
0.00033316086046397686outcome:
passed📌 Call phase
duration:
0.0005118059925734997outcome:
passed📌 Teardown phase
duration:
0.00020760507322847843outcome:
passed -
✅ Test 12
📌 Setup phase
duration:
0.0003160580527037382outcome:
passed📌 Call phase
duration:
0.0006381580606102943outcome:
passed📌 Teardown phase
duration:
0.00018366612493991852outcome:
passed -
✅ Test 13
📌 Setup phase
duration:
0.0003161120694130659outcome:
passed📌 Call phase
duration:
0.0005269879475235939outcome:
passed📌 Teardown phase
duration:
0.00017999601550400257outcome:
passed
↳ Function: test_ask_yes_no_ctrl_c
-
✅ Test 14
📌 Setup phase
duration:
0.0003192571457475424outcome:
passed📌 Call phase
duration:
0.0006389119662344456outcome:
passed📌 Teardown phase
duration:
0.00019047106616199017outcome:
passed -
✅ Test 15
📌 Setup phase
duration:
0.00031905900686979294outcome:
passed📌 Call phase
duration:
0.0005009861197322607outcome:
passed📌 Teardown phase
duration:
0.0002016338985413313outcome:
passed -
✅ Test 16
📌 Setup phase
duration:
0.000315612880513072outcome:
passed📌 Call phase
duration:
0.0005413249600678682outcome:
passed📌 Teardown phase
duration:
0.000188866863027215outcome:
passed -
✅ Test 17
📌 Setup phase
duration:
0.0003242779057472944outcome:
passed📌 Call phase
duration:
0.0005725198425352573outcome:
passed📌 Teardown phase
duration:
0.00019893283024430275outcome:
passed -
✅ Test 18
📌 Setup phase
duration:
0.0003470908850431442outcome:
passed📌 Call phase
duration:
0.0006306478753685951outcome:
passed📌 Teardown phase
duration:
0.0001885660458356142outcome:
passed -
✅ Test 19
📌 Setup phase
duration:
0.0003284779377281666outcome:
passed📌 Call phase
duration:
0.0005363731179386377outcome:
passed📌 Teardown phase
duration:
0.00019115698523819447outcome:
passed -
✅ Test 20
📌 Setup phase
duration:
0.00031820801086723804outcome:
passed📌 Call phase
duration:
0.0005747450049966574outcome:
passed📌 Teardown phase
duration:
0.0001815620344132185outcome:
passed -
✅ Test 21
📌 Setup phase
duration:
0.0003166249953210354outcome:
passed📌 Call phase
duration:
0.0007143169641494751outcome:
passed📌 Teardown phase
duration:
0.0001901120413094759outcome:
passed -
✅ Test 22
📌 Setup phase
duration:
0.00031457492150366306outcome:
passed📌 Call phase
duration:
0.0006055759731680155outcome:
passed📌 Teardown phase
duration:
0.00019184104166924953outcome:
passed -
✅ Test 23
📌 Setup phase
duration:
0.00035037705674767494outcome:
passed📌 Call phase
duration:
0.0005543020088225603outcome:
passed📌 Teardown phase
duration:
0.00018567987717688084outcome:
passed
↳ Function: test_ask_yes_no_ctrl_d
-
✅ Test 24
📌 Setup phase
duration:
0.00031644897535443306outcome:
passed📌 Call phase
duration:
0.0005295351147651672outcome:
passed📌 Teardown phase
duration:
0.0001980089582502842outcome:
passed -
✅ Test 25
📌 Setup phase
duration:
0.00033311895094811916outcome:
passed📌 Call phase
duration:
0.0010522031225264072outcome:
passed📌 Teardown phase
duration:
0.00022005499340593815outcome:
passed -
✅ Test 26
📌 Setup phase
duration:
0.0003883419558405876outcome:
passed📌 Call phase
duration:
0.0005142330192029476outcome:
passed📌 Teardown phase
duration:
0.00019343686290085316outcome:
passed -
✅ Test 27
📌 Setup phase
duration:
0.00030613504350185394outcome:
passed📌 Call phase
duration:
0.0005054769571870565outcome:
passed📌 Teardown phase
duration:
0.0001890328712761402outcome:
passed -
✅ Test 28
📌 Setup phase
duration:
0.0003131090197712183outcome:
passed📌 Call phase
duration:
0.0006117350421845913outcome:
passed📌 Teardown phase
duration:
0.00018684612587094307outcome:
passed -
✅ Test 29
📌 Setup phase
duration:
0.0003279091324657202outcome:
passed📌 Call phase
duration:
0.000528902979567647outcome:
passed📌 Teardown phase
duration:
0.0001877660397440195outcome:
passed -
✅ Test 30
📌 Setup phase
duration:
0.0003250290174037218outcome:
passed📌 Call phase
duration:
0.0005194770637899637outcome:
passed📌 Teardown phase
duration:
0.00019622314721345901outcome:
passed -
✅ Test 31
📌 Setup phase
duration:
0.000322089996188879outcome:
passed📌 Call phase
duration:
0.0005361400544643402outcome:
passed📌 Teardown phase
duration:
0.00018441188149154186outcome:
passed -
✅ Test 32
📌 Setup phase
duration:
0.00030720210634171963outcome:
passed📌 Call phase
duration:
0.0006334041245281696outcome:
passed📌 Teardown phase
duration:
0.00018188310787081718outcome:
passed -
✅ Test 33
📌 Setup phase
duration:
0.00032818899489939213outcome:
passed📌 Call phase
duration:
0.0005722797941416502outcome:
passed📌 Teardown phase
duration:
0.0001830458641052246outcome:
passed -
✅ Test 34
📌 Setup phase
duration:
0.0003244709223508835outcome:
passed📌 Call phase
duration:
0.0005029330495744944outcome:
passed📌 Teardown phase
duration:
0.0001891369465738535outcome:
passed -
✅ Test 35
📌 Setup phase
duration:
0.0003224448300898075outcome:
passed📌 Call phase
duration:
0.0005559159908443689outcome:
passed📌 Teardown phase
duration:
0.00029345392249524593outcome:
passed -
✅ Test 36
📌 Setup phase
duration:
0.0003183248918503523outcome:
passed📌 Call phase
duration:
0.0005556989926844835outcome:
passed📌 Teardown phase
duration:
0.00018760585226118565outcome:
passed -
✅ Test 37
📌 Setup phase
duration:
0.00034395884722471237outcome:
passed📌 Call phase
duration:
0.0005300738848745823outcome:
passed📌 Teardown phase
duration:
0.000190019141882658outcome:
passed
↳ Function: test_ask_yes_no_mixed_sequences
-
✅ Test 38
📌 Setup phase
duration:
0.00037106103263795376outcome:
passed📌 Call phase
duration:
0.0005782118532806635outcome:
passed📌 Teardown phase
duration:
0.0002234969288110733outcome:
passed -
✅ Test 39
📌 Setup phase
duration:
0.0003630199935287237outcome:
passed📌 Call phase
duration:
0.0006554650608450174outcome:
passed📌 Teardown phase
duration:
0.00020808889530599117outcome:
passed -
✅ Test 40
📌 Setup phase
duration:
0.00036933692172169685outcome:
passed📌 Call phase
duration:
0.0005784658715128899outcome:
passed📌 Teardown phase
duration:
0.000213902210816741outcome:
passed
-
-
📄 test_utils_channels.py
↳ Function: test_load_channels_and_channels_class_with_professional_names
-
✅ Test 41
📌 Setup phase
duration:
0.00012512900866568089outcome:
passed📌 Call phase
duration:
0.0011176369152963161outcome:
passed📌 Teardown phase
duration:
0.00012598605826497078outcome:
passed
-
-
📄 test_utils_cpint.py
↳ Function: test_load_color_variants_all_keys_and_types
-
✅ Test 42
📌 Setup phase
duration:
0.00020149094052612782outcome:
passed📌 Call phase
duration:
0.0001883909571915865outcome:
passed📌 Teardown phase
duration:
0.0001398238819092512outcome:
passed -
✅ Test 43
📌 Setup phase
duration:
0.00019322708249092102outcome:
passed📌 Call phase
duration:
0.00017751287668943405outcome:
passed📌 Teardown phase
duration:
0.00012958887964487076outcome:
passed -
✅ Test 44
📌 Setup phase
duration:
0.00018911203369498253outcome:
passed📌 Call phase
duration:
0.0001592668704688549outcome:
passed📌 Teardown phase
duration:
0.00012382306158542633outcome:
passed -
✅ Test 45
📌 Setup phase
duration:
0.0002288308460265398outcome:
passed📌 Call phase
duration:
0.00015514995902776718outcome:
passed📌 Teardown phase
duration:
0.00012655695900321007outcome:
passed -
✅ Test 46
📌 Setup phase
duration:
0.00019583199173212051outcome:
passed📌 Call phase
duration:
0.000150355976074934outcome:
passed📌 Teardown phase
duration:
0.00011979509145021439outcome:
passed -
✅ Test 47
📌 Setup phase
duration:
0.00018818979151546955outcome:
passed📌 Call phase
duration:
0.00015223701484501362outcome:
passed📌 Teardown phase
duration:
0.00012997514568269253outcome:
passed -
✅ Test 48
📌 Setup phase
duration:
0.0001745489425957203outcome:
passed📌 Call phase
duration:
0.00015471107326447964outcome:
passed📌 Teardown phase
duration:
0.00013662897981703281outcome:
passed -
✅ Test 49
📌 Setup phase
duration:
0.0001811799593269825outcome:
passed📌 Call phase
duration:
0.00014543184079229832outcome:
passed📌 Teardown phase
duration:
0.00013152114115655422outcome:
passed
↳ Function: test_cprint_all_cases_fancy
-
✅ Test 50
📌 Setup phase
duration:
0.0008177310228347778outcome:
passed📌 Call phase
duration:
0.00027697416953742504outcome:
passed📌 Teardown phase
duration:
0.00031520496122539043outcome:
passed -
✅ Test 51
📌 Setup phase
duration:
0.0004862688947468996outcome:
passed📌 Call phase
duration:
0.00024492177180945873outcome:
passed📌 Teardown phase
duration:
0.00024066492915153503outcome:
passed -
✅ Test 52
📌 Setup phase
duration:
0.00045369798317551613outcome:
passed📌 Call phase
duration:
0.0002234899438917637outcome:
passed📌 Teardown phase
duration:
0.00024638278409838676outcome:
passed -
✅ Test 53
📌 Setup phase
duration:
0.000480822054669261outcome:
passed📌 Call phase
duration:
0.00021425099112093449outcome:
passed📌 Teardown phase
duration:
0.0002498289104551077outcome:
passed -
✅ Test 54
📌 Setup phase
duration:
0.00046494207344949245outcome:
passed📌 Call phase
duration:
0.00024762004613876343outcome:
passed📌 Teardown phase
duration:
0.00024361396208405495outcome:
passed -
✅ Test 55
📌 Setup phase
duration:
0.0004710019566118717outcome:
passed📌 Call phase
duration:
0.00022599287331104279outcome:
passed📌 Teardown phase
duration:
0.00026108603924512863outcome:
passed -
✅ Test 56
📌 Setup phase
duration:
0.0004565799608826637outcome:
passed📌 Call phase
duration:
0.00023665884509682655outcome:
passed📌 Teardown phase
duration:
0.00023857690393924713outcome:
passed -
✅ Test 57
📌 Setup phase
duration:
0.0004756681155413389outcome:
passed📌 Call phase
duration:
0.00021563400514423847outcome:
passed📌 Teardown phase
duration:
0.00024862587451934814outcome:
passed -
✅ Test 58
📌 Setup phase
duration:
0.0004704948514699936outcome:
passed📌 Call phase
duration:
0.00021219998598098755outcome:
passed📌 Teardown phase
duration:
0.0002475469373166561outcome:
passed -
✅ Test 59
📌 Setup phase
duration:
0.00045499810948967934outcome:
passed📌 Call phase
duration:
0.00020920182578265667outcome:
passed📌 Teardown phase
duration:
0.0002476319205015898outcome:
passed -
✅ Test 60
📌 Setup phase
duration:
0.0005713908467441797outcome:
passed📌 Call phase
duration:
0.00021791993640363216outcome:
passed📌 Teardown phase
duration:
0.00027053290978074074outcome:
passed -
✅ Test 61
📌 Setup phase
duration:
0.000448484905064106outcome:
passed📌 Call phase
duration:
0.00022884085774421692outcome:
passed📌 Teardown phase
duration:
0.000236232066527009outcome:
passed -
✅ Test 62
📌 Setup phase
duration:
0.0005030359607189894outcome:
passed📌 Call phase
duration:
0.0005618131253868341outcome:
passed📌 Teardown phase
duration:
0.00024681398645043373outcome:
passed -
✅ Test 63
📌 Setup phase
duration:
0.0004953420720994473outcome:
passed📌 Call phase
duration:
0.0002387440763413906outcome:
passed📌 Teardown phase
duration:
0.00025806017220020294outcome:
passed -
✅ Test 64
📌 Setup phase
duration:
0.0004776699934154749outcome:
passed📌 Call phase
duration:
0.00023981998674571514outcome:
passed📌 Teardown phase
duration:
0.00024076411500573158outcome:
passed -
✅ Test 65
📌 Setup phase
duration:
0.000454847002401948outcome:
passed📌 Call phase
duration:
0.00026810308918356895outcome:
passed📌 Teardown phase
duration:
0.0002560000866651535outcome:
passed
-
-
📄 test_utils_debug.py
↳ Function: test_traceable
-
✅ Test 66
📌 Setup phase
duration:
0.00030420394614338875outcome:
passed📌 Call phase
duration:
0.0011127050966024399outcome:
passed📌 Teardown phase
duration:
0.00018153106793761253outcome:
passed -
✅ Test 67
📌 Setup phase
duration:
0.00029091211035847664outcome:
passed📌 Call phase
duration:
0.0009036089759320021outcome:
passed📌 Teardown phase
duration:
0.0001819860190153122outcome:
passed -
✅ Test 68
📌 Setup phase
duration:
0.0002829688601195812outcome:
passed📌 Call phase
duration:
0.000923053827136755outcome:
passed📌 Teardown phase
duration:
0.00019996310584247112outcome:
passed -
✅ Test 69
📌 Setup phase
duration:
0.0002780221402645111outcome:
passed📌 Call phase
duration:
0.0008887741714715958outcome:
passed📌 Teardown phase
duration:
0.00021434598602354527outcome:
passed -
✅ Test 70
📌 Setup phase
duration:
0.00028569786809384823outcome:
passed📌 Call phase
duration:
0.0008683099877089262outcome:
passed📌 Teardown phase
duration:
0.0001829368993639946outcome:
passed
↳ Function: test_short_repr
-
✅ Test 71
📌 Setup phase
duration:
0.0002885828725993633outcome:
passed📌 Call phase
duration:
0.00015914090909063816outcome:
passed📌 Teardown phase
duration:
0.00015601608902215958outcome:
passed -
✅ Test 73
📌 Setup phase
duration:
0.0003663660027086735outcome:
passed📌 Call phase
duration:
0.0001776060089468956outcome:
passed📌 Teardown phase
duration:
0.00016656704246997833outcome:
passed -
✅ Test 74
📌 Setup phase
duration:
0.0003461921587586403outcome:
passed📌 Call phase
duration:
0.00015696603804826736outcome:
passed📌 Teardown phase
duration:
0.0001827320083975792outcome:
passed -
✅ Test 75
📌 Setup phase
duration:
0.0002684681676328182outcome:
passed📌 Call phase
duration:
0.0001494919415563345outcome:
passed📌 Teardown phase
duration:
0.00016574212349951267outcome:
passed
-
-
📄 test_utils_dictext.py
↳ Function: test_attrdict_getattr
-
✅ Test 77
📌 Setup phase
duration:
0.00031037814915180206outcome:
passed📌 Call phase
duration:
0.0001719081774353981outcome:
passed📌 Teardown phase
duration:
0.00016009202226996422outcome:
passed -
✅ Test 78
📌 Setup phase
duration:
0.0002899770624935627outcome:
passed📌 Call phase
duration:
0.0001440439373254776outcome:
passed📌 Teardown phase
duration:
0.00015910807996988297outcome:
passed -
✅ Test 79
📌 Setup phase
duration:
0.00025882991030812263outcome:
passed📌 Call phase
duration:
0.00014386000111699104outcome:
passed📌 Teardown phase
duration:
0.00016776309348642826outcome:
passed
↳ Function: test_attrdict_setattr
-
✅ Test 82
📌 Setup phase
duration:
0.00031507411040365696outcome:
passed📌 Call phase
duration:
0.00016022194176912308outcome:
passed📌 Teardown phase
duration:
0.0001609909813851118outcome:
passed -
✅ Test 83
📌 Setup phase
duration:
0.00026778504252433777outcome:
passed📌 Call phase
duration:
0.00014091609045863152outcome:
passed📌 Teardown phase
duration:
0.00017806398682296276outcome:
passed
↳ Function: test_attrdict_delattr
-
✅ Test 84
📌 Setup phase
duration:
0.00027381000109016895outcome:
passed📌 Call phase
duration:
0.00020542996935546398outcome:
passed📌 Teardown phase
duration:
0.00015571597032248974outcome:
passed -
✅ Test 85
📌 Setup phase
duration:
0.0002684651408344507outcome:
passed📌 Call phase
duration:
0.00017883791588246822outcome:
passed📌 Teardown phase
duration:
0.00015454203821718693outcome:
passed
↳ Function: test_attrdict_dir
-
✅ Test 86
📌 Setup phase
duration:
0.0002543430309742689outcome:
passed📌 Call phase
duration:
0.00014730403199791908outcome:
passed📌 Teardown phase
duration:
0.0001403079368174076outcome:
passed -
✅ Test 87
📌 Setup phase
duration:
0.00022005499340593815outcome:
passed📌 Call phase
duration:
0.0001719500869512558outcome:
passed📌 Teardown phase
duration:
0.00014043785631656647outcome:
passed
↳ Function: test_attrdict_getattr_and_missing
-
✅ Test 88
📌 Setup phase
duration:
0.0003603061195462942outcome:
passed📌 Call phase
duration:
0.0001541131641715765outcome:
passed📌 Teardown phase
duration:
0.00016945414245128632outcome:
passed
↳ Function: test_dictupdatemixin_init_and_update
-
✅ Test 90
📌 Setup phase
duration:
0.00034008012153208256outcome:
passed📌 Call phase
duration:
0.00016387784853577614outcome:
passed📌 Teardown phase
duration:
0.00017027510330080986outcome:
passed -
✅ Test 91
📌 Setup phase
duration:
0.0003389499615877867outcome:
passed📌 Call phase
duration:
0.00016712909564375877outcome:
passed📌 Teardown phase
duration:
0.0001773510593920946outcome:
passed -
✅ Test 92
📌 Setup phase
duration:
0.0003198732156306505outcome:
passed📌 Call phase
duration:
0.00015224493108689785outcome:
passed📌 Teardown phase
duration:
0.00016974215395748615outcome:
passed -
✅ Test 93
📌 Setup phase
duration:
0.0003124210052192211outcome:
passed📌 Call phase
duration:
0.00016341404989361763outcome:
passed📌 Teardown phase
duration:
0.00016671395860612392outcome:
passed -
✅ Test 94
📌 Setup phase
duration:
0.00032174703665077686outcome:
passed📌 Call phase
duration:
0.0001540440134704113outcome:
passed📌 Teardown phase
duration:
0.00016714120283722878outcome:
passed -
✅ Test 95
📌 Setup phase
duration:
0.0003177691251039505outcome:
passed📌 Call phase
duration:
0.0002850429154932499outcome:
passed📌 Teardown phase
duration:
0.0001909448765218258outcome:
passed
-
❌ Failed (5)
-
📄 test_utils_debug.py
↳ Function: test_short_repr
-
❌ Test 72
📌 Setup phase
duration:
0.0002732919529080391outcome:
passed📌 Call phase
duration:
0.0009648851118981838outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_debug.py lineno: 66 message: assert "'aaaaaaaaa..." == "'aaaaaaaaaaa..." - 'aaaaaaaaaaa... ? -- + 'aaaaaaaaa...traceback:
- path: tests/test_utils_debug.py lineno: 66 message: AssertionErrorlongrepr:
value = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' cutoff = 10, expected = "'aaaaaaaaaaa..." @pytest.mark.parametrize( "value, cutoff, expected", [ ("abc", 10, "'abc'"), ("a" * 100, 10, "'aaaaaaaaaaa..."), (12345, 10, "12345"), ([0]*100, 15, str(repr([0]*100))[:15] + "..."), (None, 10, "None"), (type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxxx..."), ] ) def test_short_repr(value, cutoff, expected): > assert short_repr(value, cutoff) == expected E assert "'aaaaaaaaa..." == "'aaaaaaaaaaa..." E E - 'aaaaaaaaaaa... E ? -- E + 'aaaaaaaaa... tests/test_utils_debug.py:66: AssertionError📌 Teardown phase
duration:
0.00038082199171185493outcome:
passed -
❌ Test 76
📌 Setup phase
duration:
0.0002681240439414978outcome:
passed📌 Call phase
duration:
0.0006303449627012014outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_debug.py lineno: 66 message: AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxxx...' - Obj(xxxxxxxxxxxxxxxxxx... ? -- + Obj(xxxxxxxxxxxxxxxx...traceback:
- path: tests/test_utils_debug.py lineno: 66 message: AssertionErrorlongrepr:
value = Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), cutoff = 20 expected = 'Obj(xxxxxxxxxxxxxxxxxx...' @pytest.mark.parametrize( "value, cutoff, expected", [ ("abc", 10, "'abc'"), ("a" * 100, 10, "'aaaaaaaaaaa..."), (12345, 10, "12345"), ([0]*100, 15, str(repr([0]*100))[:15] + "..."), (None, 10, "None"), (type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxxx..."), ] ) def test_short_repr(value, cutoff, expected): > assert short_repr(value, cutoff) == expected E AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxxx...' E E - Obj(xxxxxxxxxxxxxxxxxx... E ? -- E + Obj(xxxxxxxxxxxxxxxx... tests/test_utils_debug.py:66: AssertionError📌 Teardown phase
duration:
0.0002201369497925043outcome:
passed
-
-
📄 test_utils_dictext.py
↳ Function: test_attrdict_getattr
-
❌ Test 80
📌 Setup phase
duration:
0.0002619759179651737outcome:
passed📌 Call phase
duration:
0.00017503183335065842outcome:
failedcrash:
path: /workspace/tligui_y/slic/slic/utils/dictext.py lineno: 31 message: AttributeError: 'MyDict' object has no attribute 'outer.inner'traceback:
- path: tests/test_utils_dictext.py lineno: 27 message: None - path: slic/utils/dictext.py lineno: 18 message: in __getattr__ - path: slic/utils/dictext.py lineno: 31 message: AttributeErrorlongrepr:
data = {'outer': {'inner': 42}}, attr = 'outer.inner', expected = None @pytest.mark.parametrize( "data, attr, expected", [ ({"x": 1, "y": 2}, "x", 1), ({"world": "ok"}, "world", "ok"), ({"outer": {"inner": 42}}, "outer", {"inner": 42}), ({"outer": {"inner": 42}}, "outer.inner", None), # pas converti, pas accessible par point ({"outer": AttrDict({"inner": 42})}, "outer.inner", 42), ] ) def test_attrdict_getattr(data, attr, expected): d = MyDict(**data) > assert getattr(d, attr) == expected tests/test_utils_dictext.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ slic/utils/dictext.py:18: in __getattr__ self._raise_missing_attribute(name) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = {'outer': {'inner': 42}}, name = 'outer.inner' def _raise_missing_attribute(self, name): tn = typename(self) > raise AttributeError(f"{repr(tn)} object has no attribute {repr(name)}") E AttributeError: 'MyDict' object has no attribute 'outer.inner' slic/utils/dictext.py:31: AttributeError📌 Teardown phase
duration:
0.00020211399532854557outcome:
passed -
❌ Test 81
📌 Setup phase
duration:
0.00029785698279738426outcome:
passed📌 Call phase
duration:
0.00016942201182246208outcome:
failedcrash:
path: /workspace/tligui_y/slic/slic/utils/dictext.py lineno: 31 message: AttributeError: 'MyDict' object has no attribute 'outer.inner'traceback:
- path: tests/test_utils_dictext.py lineno: 27 message: None - path: slic/utils/dictext.py lineno: 18 message: in __getattr__ - path: slic/utils/dictext.py lineno: 31 message: AttributeErrorlongrepr:
data = {'outer': {'inner': 42}}, attr = 'outer.inner', expected = 42 @pytest.mark.parametrize( "data, attr, expected", [ ({"x": 1, "y": 2}, "x", 1), ({"world": "ok"}, "world", "ok"), ({"outer": {"inner": 42}}, "outer", {"inner": 42}), ({"outer": {"inner": 42}}, "outer.inner", None), # pas converti, pas accessible par point ({"outer": AttrDict({"inner": 42})}, "outer.inner", 42), ] ) def test_attrdict_getattr(data, attr, expected): d = MyDict(**data) > assert getattr(d, attr) == expected tests/test_utils_dictext.py:27: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ slic/utils/dictext.py:18: in __getattr__ self._raise_missing_attribute(name) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = {'outer': {'inner': 42}}, name = 'outer.inner' def _raise_missing_attribute(self, name): tn = typename(self) > raise AttributeError(f"{repr(tn)} object has no attribute {repr(name)}") E AttributeError: 'MyDict' object has no attribute 'outer.inner' slic/utils/dictext.py:31: AttributeError📌 Teardown phase
duration:
0.00019762897863984108outcome:
passed
↳ Function: test_attrdict_getattr_and_missing
-
❌ Test 89
📌 Setup phase
duration:
0.0003110971301794052outcome:
passed📌 Call phase
duration:
0.0007201649714261293outcome:
failedcrash:
path: /workspace/tligui_y/slic/tests/test_utils_dictext.py lineno: 87 message: assert "'MyDict' obj...ute 'missing'" == "'AttrDict' o...ute 'missing'" - 'AttrDict' object has no attribute 'missing' ? ^^^^ + 'MyDict' object has no attribute 'missing' ? ^^traceback:
- path: tests/test_utils_dictext.py lineno: 87 message: AssertionErrorlongrepr:
data = {'number': 42}, attr = 'missing', expect_value = None expect_error = "'AttrDict' object has no attribute 'missing'" @pytest.mark.parametrize( "data, attr, expect_value, expect_error", [ ({"x": 1, "y": 2}, "x", 1, None), ({"number": 42}, "missing", None, "'AttrDict' object has no attribute 'missing'"), ] ) def test_attrdict_getattr_and_missing(data, attr, expect_value, expect_error): d = MyDict(**data) if expect_error is None: assert getattr(d, attr) == expect_value else: with pytest.raises(AttributeError) as excinfo: _ = getattr(d, attr) > assert str(excinfo.value) == expect_error E assert "'MyDict' obj...ute 'missing'" == "'AttrDict' o...ute 'missing'" E E - 'AttrDict' object has no attribute 'missing' E ? ^^^^ E + 'MyDict' object has no attribute 'missing' E ? ^^ tests/test_utils_dictext.py:87: AssertionError📌 Teardown phase
duration:
0.00021293293684720993outcome:
passed
-
📚 Collected files
✅ (1 tests)
-
✅
- Outcome:
passed - result:
- nodeid: . type: Dir - Outcome:
✅ ci-reports (13 tests)
-
✅ ci-reports
- Outcome:
passed - result:
- nodeid: ci-reports/allure type: Dir - nodeid: ci-reports/junit type: Dir - nodeid: ci-reports/markdown type: Dir-
✅ ci-reports/allure
- Outcome:
passed - result:
- nodeid: ci-reports/allure/data type: Dir - nodeid: ci-reports/allure/export type: Dir - nodeid: ci-reports/allure/history type: Dir - nodeid: ci-reports/allure/plugin type: Dir - nodeid: ci-reports/allure/widgets type: Dir - Outcome:
-
✅ ci-reports/allure/data
- Outcome:
passed - result:
- nodeid: ci-reports/allure/data/test-cases type: Dir - Outcome:
-
✅ ci-reports/allure/data/test-cases
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/allure/export
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/allure/history
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/allure/plugin
- Outcome:
passed - result:
- nodeid: ci-reports/allure/plugin/behaviors type: Dir - nodeid: ci-reports/allure/plugin/packages type: Dir - nodeid: ci-reports/allure/plugin/screen-diff type: Dir - Outcome:
-
✅ ci-reports/allure/plugin/behaviors
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/allure/plugin/packages
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/allure/plugin/screen-diff
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/allure/widgets
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/junit
- Outcome:
passed - result:
[] - Outcome:
-
✅ ci-reports/markdown
- Outcome:
passed - result:
[] - Outcome:
- Outcome:
✅ outputs (1 tests)
-
✅ outputs
- Outcome:
passed - result:
[] - Outcome:
✅ slic (30 tests)
-
✅ slic
- Outcome:
passed - result:
- nodeid: slic/core type: Package - nodeid: slic/devices type: Package - nodeid: slic/gui type: Package - nodeid: slic/utils type: Package-
✅ slic/core
- Outcome:
passed - result:
- nodeid: slic/core/acquisition type: Package - nodeid: slic/core/adjustable type: Package - nodeid: slic/core/condition type: Package - nodeid: slic/core/device type: Package - nodeid: slic/core/scanner type: Package - nodeid: slic/core/sensor type: Package - nodeid: slic/core/task type: Package - Outcome:
-
✅ slic/core/acquisition
- Outcome:
passed - result:
- nodeid: slic/core/acquisition/broker type: Package - Outcome:
-
✅ slic/core/acquisition/broker
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/core/adjustable
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/core/condition
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/core/device
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/core/scanner
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/core/sensor
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/core/task
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices
- Outcome:
passed - result:
- nodeid: slic/devices/cameras type: Package - nodeid: slic/devices/endstations type: Package - nodeid: slic/devices/general type: Package - nodeid: slic/devices/loptics type: Package - nodeid: slic/devices/timing type: Package - nodeid: slic/devices/xdiagnostics type: Package - nodeid: slic/devices/xoptics type: Package - Outcome:
-
✅ slic/devices/cameras
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/endstations
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/general
- Outcome:
passed - result:
- nodeid: slic/devices/general/detectors type: Package - nodeid: slic/devices/general/unused type: Dir - Outcome:
-
✅ slic/devices/general/detectors
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/general/unused
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/loptics
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/timing
- Outcome:
passed - result:
- nodeid: slic/devices/timing/events type: Package - Outcome:
-
✅ slic/devices/timing/events
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/xdiagnostics
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/xoptics
- Outcome:
passed - result:
- nodeid: slic/devices/xoptics/slits type: Package - nodeid: slic/devices/xoptics/unused type: Dir - Outcome:
-
✅ slic/devices/xoptics/slits
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/devices/xoptics/unused
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/gui
- Outcome:
passed - result:
- nodeid: slic/gui/daqpanels type: Package - nodeid: slic/gui/widgets type: Package - Outcome:
-
✅ slic/gui/daqpanels
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/gui/widgets
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/utils
- Outcome:
passed - result:
- nodeid: slic/utils/ioc type: Package - nodeid: slic/utils/unused type: Dir - Outcome:
-
✅ slic/utils/ioc
- Outcome:
passed - result:
[] - Outcome:
-
✅ slic/utils/unused
- Outcome:
passed - result:
- nodeid: slic/utils/unused/xsim type: Package - Outcome:
-
✅ slic/utils/unused/xsim
- Outcome:
passed - result:
[] - Outcome:
- Outcome:
✅ temp-ci (1 tests)
-
✅ temp-ci
- Outcome:
passed - result:
[] - Outcome:
✅ tests (6 tests)
-
✅ tests
- Outcome:
passed - result:
- nodeid: tests/test_utils_ask_yes_no.py type: Module - nodeid: tests/test_utils_channels.py type: Module - nodeid: tests/test_utils_cpint.py type: Module - nodeid: tests/test_utils_debug.py type: Module - nodeid: tests/test_utils_dictext.py type: Module-
✅ tests/test_utils_ask_yes_no.py
- Outcome:
passed - result:
- nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-y-True-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-yes-True-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-n-False-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-no-False-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-user_input4-True-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-user_input5-False-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[None-user_input6-True-Question? [y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[y-y-True-Question? [Y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[y-n-False-Question? [Y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[y--True-Question? [Y/n] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[n-y-True-Question? [y/N] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[n-n-False-Question? [y/N] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no[n--False-Question? [y/N] ] type: Function lineno: 8 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-KeyboardInterrupt-False-n] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-KeyboardInterrupt-True-y] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[y-KeyboardInterrupt-False-n] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[y-KeyboardInterrupt-True-y] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[n-KeyboardInterrupt-False-n] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-user_input5-False-n] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-user_input6-True-y] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[None-user_input7-False-None] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[n-user_input8-False-None] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_c[n-user_input9-False-Invalid] type: Function lineno: 46 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-EOFError-False-n] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-EOFError-True-y] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[y-EOFError-True-y] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-EOFError-True-y] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-EOFError-False-n] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input5-True-y] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input6-False-n] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[y-EOFError-True-None] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-EOFError-False-None] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input9-True-None] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[n-user_input10-False-None] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input11-True-None] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input12-False-n] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_ctrl_d[None-user_input13-True-y] type: Function lineno: 79 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_mixed_sequences[None-invalid-None-user_input0-False] type: Function lineno: 117 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_mixed_sequences[None-None-notananswer-user_input1-True] type: Function lineno: 117 - nodeid: tests/test_utils_ask_yes_no.py::test_ask_yes_no_mixed_sequences[None-n-nop-user_input2-False] type: Function lineno: 117 - Outcome:
-
✅ tests/test_utils_channels.py
- Outcome:
passed - result:
- nodeid: tests/test_utils_channels.py::test_load_channels_and_channels_class_with_professional_names type: Function lineno: 42 - Outcome:
-
✅ tests/test_utils_cpint.py
- Outcome:
passed - result:
- nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[red] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[blue] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[yellow] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[green] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[cyan] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[magenta] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[white] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_load_color_variants_all_keys_and_types[black] type: Function lineno: 9 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects0-color_spec0- | -['Fancy', 'list'] | {'a': 7} | None-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects1-color_spec1- - -{'k': [1, 2]} - 99 - ['X', ['Y']]-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects2-color_spec2- / -[] / {} / End-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects3-color_spec3-;-['', [3, 4]];done;0-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects4-color_spec4-::-['alpha', None]::['beta', {}]::stop-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects5-color_spec5- ... -['deep', ['deeper', ['deepest']]] ... X-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects6-color_spec6- // -{'dict': {'nested': [4, 5]}} // [True, False] // 6.28-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects7-color_spec7-==-['A', ['B']]==string==C-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects8-color_spec8- ++ -['Test', None, []] ++ {'v': 0}-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects9-None-;-['no', 'color'];plain-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects10-None- | -['simple'] | | 12-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects11-None- : -[['very', 'deep']] : {'ok': True}-None] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects12-color_spec12-|-['fail', 'color']|123-ValueError] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects13-color_spec13- * -['error'] * {}-ValueError] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects14-color_spec14-//-['nope']//['bad']-ValueError] type: Function lineno: 24 - nodeid: tests/test_utils_cpint.py::test_cprint_all_cases_fancy[objects15-color_spec15----wrong--base-ValueError] type: Function lineno: 24 - Outcome:
-
✅ tests/test_utils_debug.py
- Outcome:
passed - result:
- nodeid: tests/test_utils_debug.py::test_traceable[A-entry0-creating: A(10, 20)] type: Function lineno: 21 - nodeid: tests/test_utils_debug.py::test_traceable[A-entry1-creating: A(10, 20, e=100)] type: Function lineno: 21 - nodeid: tests/test_utils_debug.py::test_traceable[A-entry2-creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})] type: Function lineno: 21 - nodeid: tests/test_utils_debug.py::test_traceable[A-entry3-creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)] type: Function lineno: 21 - nodeid: tests/test_utils_debug.py::test_traceable[A-entry4-creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])] type: Function lineno: 21 - nodeid: tests/test_utils_debug.py::test_short_repr[abc-10-'abc'] type: Function lineno: 52 - nodeid: tests/test_utils_debug.py::test_short_repr[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10-'aaaaaaaaaaa...] type: Function lineno: 52 - nodeid: tests/test_utils_debug.py::test_short_repr[12345-10-12345] type: Function lineno: 52 - nodeid: tests/test_utils_debug.py::test_short_repr[value3-15-[0, 0, 0, 0, 0,...] type: Function lineno: 52 - nodeid: tests/test_utils_debug.py::test_short_repr[None-10-None] type: Function lineno: 52 - nodeid: tests/test_utils_debug.py::test_short_repr[value5-20-Obj(xxxxxxxxxxxxxxxxxx...] type: Function lineno: 52 - Outcome:
-
✅ tests/test_utils_dictext.py
- Outcome:
passed - result:
- nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data0-x-1] type: Function lineno: 12 - nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data1-world-ok] type: Function lineno: 12 - nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data2-outer-expected2] type: Function lineno: 12 - nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data3-outer.inner-None] type: Function lineno: 12 - nodeid: tests/test_utils_dictext.py::test_attrdict_getattr[data4-outer.inner-42] type: Function lineno: 12 - nodeid: tests/test_utils_dictext.py::test_attrdict_setattr[initial0-nouveau-123] type: Function lineno: 29 - nodeid: tests/test_utils_dictext.py::test_attrdict_setattr[initial1-b-valeur] type: Function lineno: 29 - nodeid: tests/test_utils_dictext.py::test_attrdict_delattr[initial0-a-expected_keys0] type: Function lineno: 43 - nodeid: tests/test_utils_dictext.py::test_attrdict_delattr[initial1-k-expected_keys1] type: Function lineno: 43 - nodeid: tests/test_utils_dictext.py::test_attrdict_dir[data0-expected_keys0] type: Function lineno: 58 - nodeid: tests/test_utils_dictext.py::test_attrdict_dir[data1-expected_keys1] type: Function lineno: 58 - nodeid: tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data0-x-1-None] type: Function lineno: 72 - nodeid: tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data1-missing-None-'AttrDict' object has no attribute 'missing'] type: Function lineno: 72 - nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs0-None-kwargs0-expected0] type: Function lineno: 93 - nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs1-other1-kwargs1-expected1] type: Function lineno: 93 - nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs2-other2-kwargs2-expected2] type: Function lineno: 93 - nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs3-None-kwargs3-expected3] type: Function lineno: 93 - nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs4-other4-kwargs4-expected4] type: Function lineno: 93 - nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs5-other5-kwargs5-expected5] type: Function lineno: 93 - Outcome:
- Outcome:
✅ . (1 tests)
-
✅ .
- Outcome:
passed - result:
- nodeid: ci-reports type: Dir - nodeid: outputs type: Dir - nodeid: slic type: Package - nodeid: temp-ci type: Dir - nodeid: tests type: Dir - Outcome:
⚠️ Warnings
Warnings #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 #2
message: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/ca.py
lineno: 28
Warnings #3
message: Deprecated call to `pkg_resources.declare_namespace('mpl_toolkits')`.
Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
category: DeprecationWarning
when: collect
filename: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pkg_resources/__init__.py
lineno: 3154
Warnings #4
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