Clone
1
run 1754 TEST commit b8e394b
ci-bot edited this page 2025-08-06 19:45:31 +00:00

Test Report

View CI Run 1754 | Commit b8e394b

🧪 Test Report

Generated on 2025-08-06 21:45:24 CEST

🧾 General Info

  • duration: 12.34352159500122
  • root: /workspace/tligui_y/slic
  • environment: {}

📋 Summary

  • Passed: 472
  • Failed: 37
  • Total: 509
  • Collected: 509

🔎 Tests

Passed (472)
  • 📄 morbidissimo/morbidissimo/morioc/test_infer_type.py

    Function: test_it_type_str

    • Test 1

      📌 Setup phase

      duration:

      0.0007265708409249783
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002299589104950428
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002256869338452816
      

      outcome:

      passed
      

    Function: test_it_type_float

    • Test 2

      📌 Setup phase

      duration:

      0.00012335507199168205
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014504604041576385
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011286372318863869
      

      outcome:

      passed
      

    Function: test_it_type_int

    • Test 3

      📌 Setup phase

      duration:

      0.0001066969707608223
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014244765043258667
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.886408224701881e-05
      

      outcome:

      passed
      

    Function: test_it_value_str

    • Test 4

      📌 Setup phase

      duration:

      0.0001135808415710926
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013613002374768257
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.489012882113457e-05
      

      outcome:

      passed
      

    Function: test_it_value_long_str

    • Test 5

      📌 Setup phase

      duration:

      0.0001121186651289463
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013887323439121246
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.828479960560799e-05
      

      outcome:

      passed
      

    Function: test_it_value_float

    • Test 6

      📌 Setup phase

      duration:

      0.00010677706450223923
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015992671251296997
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.492412209510803e-05
      

      outcome:

      passed
      

    Function: test_it_value_int

    • Test 7

      📌 Setup phase

      duration:

      0.00011911801993846893
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001615476794540882
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.688455611467361e-05
      

      outcome:

      passed
      

    Function: test_it_empty_value_str

    • Test 8

      📌 Setup phase

      duration:

      0.00011398829519748688
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013328297063708305
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010072579607367516
      

      outcome:

      passed
      

    Function: test_it_empty_value_float

    • Test 9

      📌 Setup phase

      duration:

      0.00010636774823069572
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013340869918465614
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.73292626440525e-05
      

      outcome:

      passed
      

    Function: test_it_empty_value_int

    • Test 10

      📌 Setup phase

      duration:

      0.00011026626452803612
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014436384662985802
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.647710248827934e-05
      

      outcome:

      passed
      

    Function: test_pstrue_str

    • Test 11

      📌 Setup phase

      duration:

      0.0001043868251144886
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013881223276257515
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.687338024377823e-05
      

      outcome:

      passed
      

    Function: test_pstrue_float

    • Test 12

      📌 Setup phase

      duration:

      0.00010538194328546524
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013233115896582603
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.450316429138184e-05
      

      outcome:

      passed
      

    Function: test_pstrue_int

    • Test 13

      📌 Setup phase

      duration:

      0.00010211998596787453
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013009971007704735
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.121093899011612e-05
      

      outcome:

      passed
      

    Function: test_psfalse_str

    • Test 14

      📌 Setup phase

      duration:

      0.00010825414210557938
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013639312237501144
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.6180010586977e-05
      

      outcome:

      passed
      

    Function: test_psfalse_float

    • Test 15

      📌 Setup phase

      duration:

      0.00010495167225599289
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00012963777408003807
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.688688442111015e-05
      

      outcome:

      passed
      

    Function: test_psfalse_int

    • Test 16

      📌 Setup phase

      duration:

      0.00011608004570007324
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013209087774157524
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.358767420053482e-05
      

      outcome:

      passed
      

    Function: test_it_None

    • Test 17

      📌 Setup phase

      duration:

      0.00010223314166069031
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016180425882339478
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001000482589006424
      

      outcome:

      passed
      

    Function: test_it_True

    • Test 18

      📌 Setup phase

      duration:

      0.00010590488091111183
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001323162578046322
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.479187428951263e-05
      

      outcome:

      passed
      

    Function: test_it_False

    • Test 19

      📌 Setup phase

      duration:

      0.00011092890053987503
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003464152105152607
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010625971481204033
      

      outcome:

      passed
      

    Function: test_it_nan

    • Test 20

      📌 Setup phase

      duration:

      0.00010846508666872978
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013567181304097176
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010532094165682793
      

      outcome:

      passed
      

    Function: test_it_np_nan

    • Test 21

      📌 Setup phase

      duration:

      0.00011044694110751152
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001457040198147297
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.761517867445946e-05
      

      outcome:

      passed
      

    Function: test_it_np1D_int

    • Test 22

      📌 Setup phase

      duration:

      0.00010425271466374397
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020373566076159477
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010601896792650223
      

      outcome:

      passed
      

    Function: test_it_np2D_int

    • Test 23

      📌 Setup phase

      duration:

      0.00011077709496021271
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001810118556022644
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010022614151239395
      

      outcome:

      passed
      

    Function: test_it_np1D_float

    • Test 24

      📌 Setup phase

      duration:

      0.0001064809039235115
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021041696891188622
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010015582665801048
      

      outcome:

      passed
      

    Function: test_it_np2D_float

    • Test 25

      📌 Setup phase

      duration:

      0.00011419318616390228
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020321132615208626
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010477378964424133
      

      outcome:

      passed
      

    Function: test_it_np1D_bool

    • Test 26

      📌 Setup phase

      duration:

      0.00010907603427767754
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015523098409175873
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010349508374929428
      

      outcome:

      passed
      

    Function: test_it_np1D_object

    • Test 27

      📌 Setup phase

      duration:

      0.00011178012937307358
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001518712379038334
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.82559286057949e-05
      

      outcome:

      passed
      

    Function: test_it_np_scalar_int

    • Test 28

      📌 Setup phase

      duration:

      0.00010597705841064453
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017316266894340515
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011248700320720673
      

      outcome:

      passed
      

    Function: test_it_np_scalar_float

    • Test 29

      📌 Setup phase

      duration:

      0.00011026766151189804
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016062892973423004
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010595889762043953
      

      outcome:

      passed
      

    Function: test_it_np_scalar_bool

    • Test 30

      📌 Setup phase

      duration:

      0.00011184904724359512
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016680778935551643
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010010413825511932
      

      outcome:

      passed
      

    Function: test_it_list

    • Test 31

      📌 Setup phase

      duration:

      0.00010962877422571182
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014117686077952385
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.51508991420269e-05
      

      outcome:

      passed
      

    Function: test_it_tuple

    • Test 32

      📌 Setup phase

      duration:

      0.0001173471100628376
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014419201761484146
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010298378765583038
      

      outcome:

      passed
      
  • 📄 test_utils_argfwd.py

    Function: test_split_at

    • Test 33
      params: lst=["a", "b", "c", "d"], index=2, expected="a", "b"], ["c", "d"

      📌 Runtime Parameters

      params:
        lst:
          - a
          - b
          - c
          - d
        index: 2
        expected:
          -       - a
            - b
          -       - c
            - d
      id: lst0-2-expected0
      

      📌 Setup phase

      duration:

      0.0004118070937693119
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014822976663708687
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016868207603693008
      

      outcome:

      passed
      
    • Test 34
      params: lst=["x", "y"], index=1, expected="x"], ["y"

      📌 Runtime Parameters

      params:
        lst:
          - x
          - y
        index: 1
        expected:
          -       - x
          -       - y
      id: lst1-1-expected1
      

      📌 Setup phase

      duration:

      0.00027310196310281754
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014776969328522682
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001614331267774105
      

      outcome:

      passed
      
    • Test 35
      params: lst=[], index=0, expected=], [

      📌 Runtime Parameters

      params:
        lst:
      []
        index: 0
        expected:
          - (vide)
          - (vide)
      id: lst2-0-expected2
      

      📌 Setup phase

      duration:

      0.000275234691798687
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013748696073889732
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015553506091237068
      

      outcome:

      passed
      

    Function: test_merge_lists_unique

    • Test 36
      params: a=["a", "b"], b=["b", "c"], expected=["a", "b", "c"]

      📌 Runtime Parameters

      params:
        a:
          - a
          - b
        b:
          - b
          - c
        expected:
          - a
          - b
          - c
      id: a0-b0-expected0
      

      📌 Setup phase

      duration:

      0.00029403017833828926
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014042016118764877
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001528649590909481
      

      outcome:

      passed
      
    • Test 37
      params: a=[], b=["x"], expected=["x"]

      📌 Runtime Parameters

      params:
        a:
      []
        b:
          - x
        expected:
          - x
      id: a1-b1-expected1
      

      📌 Setup phase

      duration:

      0.0002654027193784714
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001373710110783577
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014671962708234787
      

      outcome:

      passed
      
    • Test 38
      params: a=["x", "y"], b=["x", "y"], expected=["x", "y"]

      📌 Runtime Parameters

      params:
        a:
          - x
          - y
        b:
          - x
          - y
        expected:
          - x
          - y
      id: a2-b2-expected2
      

      📌 Setup phase

      duration:

      0.00027777720242738724
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013885274529457092
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015230337157845497
      

      outcome:

      passed
      

    Function: test_merge_dicts_unique

    • Test 39
      params: a={"a": 1}, b={"b": 2}, expected={"a": 1, "b": 2}

      📌 Runtime Parameters

      params:
        a:
          a: 1
        b:
          b: 2
        expected:
          a: 1
          b: 2
      id: a0-b0-expected0
      

      📌 Setup phase

      duration:

      0.00027077412232756615
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014126580208539963
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015660980716347694
      

      outcome:

      passed
      
    • Test 40
      params: a={"x": 1}, b={"x": 9, "y": 3}, expected={"x": 1, "y": 3}

      📌 Runtime Parameters

      params:
        a:
          x: 1
        b:
          x: 9
          y: 3
        expected:
          x: 1
          y: 3
      id: a1-b1-expected1
      

      📌 Setup phase

      duration:

      0.000337348785251379
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014125416055321693
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001563969999551773
      

      outcome:

      passed
      
    • Test 41
      params: a={}, b={"k": 4}, expected={"k": 4}

      📌 Runtime Parameters

      params:
        a:
      {}
        b:
          k: 4
        expected:
          k: 4
      id: a2-b2-expected2
      

      📌 Setup phase

      duration:

      0.00027846684679389
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014104414731264114
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014705583453178406
      

      outcome:

      passed
      

    Function: test_make_params_pos_basic

    • Test 42
      params: pos=["a", "b"], expected_names=["a", "b"]

      📌 Runtime Parameters

      params:
        pos:
          - a
          - b
        expected_names:
          - a
          - b
      id: pos0-expected_names0
      

      📌 Setup phase

      duration:

      0.0002258126623928547
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016529113054275513
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013390975072979927
      

      outcome:

      passed
      
    • Test 43
      params: pos=["param1", "value_2", "Z"], expected_names=["param1", "value_2", "Z"]

      📌 Runtime Parameters

      params:
        pos:
          - param1
          - value_2
          - Z
        expected_names:
          - param1
          - value_2
          - Z
      id: pos1-expected_names1
      

      📌 Setup phase

      duration:

      0.00023023923859000206
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001637670211493969
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014761881902813911
      

      outcome:

      passed
      
    • Test 44
      params: pos=[], expected_names=[]

      📌 Runtime Parameters

      params:
        pos:
      []
        expected_names:
      []
      id: pos2-expected_names2
      

      📌 Setup phase

      duration:

      0.0002292012795805931
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014134077355265617
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014123087748885155
      

      outcome:

      passed
      

    Function: test_make_params_kw_basic

    • Test 45
      params: kw={"a": 1, "b": 2}, expected_keys=["a", "b"], expected_defaults=[1, 2]

      📌 Runtime Parameters

      params:
        kw:
          a: 1
          b: 2
        expected_keys:
          - a
          - b
        expected_defaults:
          - 1
          - 2
      id: kw0-expected_keys0-expected_defaults0
      

      📌 Setup phase

      duration:

      0.0002584848552942276
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015538791194558144
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015914207324385643
      

      outcome:

      passed
      
    • Test 46
      params: kw={"param_x": 0}, expected_keys=["param_x"], expected_defaults=[0]

      📌 Runtime Parameters

      params:
        kw:
          param_x: 0
        expected_keys:
          - param_x
        expected_defaults:
          - (vide)
      id: kw1-expected_keys1-expected_defaults1
      

      📌 Setup phase

      duration:

      0.0002672811970114708
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001505119726061821
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014912988990545273
      

      outcome:

      passed
      
    • Test 47
      params: kw={}, expected_keys=[], expected_defaults=[]

      📌 Runtime Parameters

      params:
        kw:
      {}
        expected_keys:
      []
        expected_defaults:
      []
      id: kw2-expected_keys2-expected_defaults2
      

      📌 Setup phase

      duration:

      0.00028053997084498405
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014118291437625885
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015095388516783714
      

      outcome:

      passed
      

    Function: test_make_signature_parametrized

    • Test 48
      params: pos=["x", "y"], kw={"z": 3}, expected_signature="(x, y, z=3)"

      📌 Runtime Parameters

      params:
        pos:
          - x
          - y
        kw:
          z: 3
        expected_signature: (x, y, z=3)
      id: pos0-kw0-(x, y, z=3)
      

      📌 Setup phase

      duration:

      0.0002874191850423813
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019262172281742096
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015241000801324844
      

      outcome:

      passed
      
    • Test 49
      params: pos=["a"], kw={"b": 1, "c": 2}, expected_signature="(a, b=1, c=2)"

      📌 Runtime Parameters

      params:
        pos:
          - a
        kw:
          b: 1
          c: 2
        expected_signature: (a, b=1, c=2)
      id: pos1-kw1-(a, b=1, c=2)
      

      📌 Setup phase

      duration:

      0.00027170171961188316
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001778649166226387
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016804924234747887
      

      outcome:

      passed
      
    • Test 50
      params: pos=[], kw={"flag": false}, expected_signature="(flag=False)"

      📌 Runtime Parameters

      params:
        pos:
      []
        kw:
          flag: False
        expected_signature: (flag=False)
      id: pos2-kw2-(flag=False)
      

      📌 Setup phase

      duration:

      0.00025597307831048965
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016762223094701767
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017081480473279953
      

      outcome:

      passed
      

    Function: test_get_args_parametrized

    • Test 51
      params: func=" at 0x7f2b3327d5e0>", expected_pos=["a", "b"], expected_kw={"c": 3, "d": 4}

      📌 Runtime Parameters

      params:
        func: <function <lambda> at 0x7f2b3327d5e0>
        expected_pos:
          - a
          - b
        expected_kw:
          c: 3
          d: 4
      id: <lambda>-expected_pos0-expected_kw0
      

      📌 Setup phase

      duration:

      0.0002767271362245083
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002067037858068943
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015351222828030586
      

      outcome:

      passed
      
    • Test 52
      params: func=" at 0x7f2b33281550>", expected_pos=[], expected_kw="{'x': 1, 'y': , 'z': 0}"

      📌 Runtime Parameters

      params:
        func: <function <lambda> at 0x7f2b33281550>
        expected_pos:
      []
        expected_kw: {'x': 1, 'y': <class 'inspect._empty'>, 'z': 0}
      id: <lambda>-expected_pos1-expected_kw1
      

      📌 Setup phase

      duration:

      0.0002710591070353985
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001856861636042595
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001554577611386776
      

      outcome:

      passed
      
    • Test 53
      params: func=" at 0x7f2b33281670>", expected_pos=[], expected_kw={}

      📌 Runtime Parameters

      params:
        func: <function <lambda> at 0x7f2b33281670>
        expected_pos:
      []
        expected_kw:
      {}
      id: <lambda>-expected_pos2-expected_kw2
      

      📌 Setup phase

      duration:

      0.00027004582807421684
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017636828124523163
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016895215958356857
      

      outcome:

      passed
      

    Function: test_signature_visible

    • Test 54
      params: func="", expected_sig="(a, b, d=30, c=10)"

      📌 Runtime Parameters

      params:
        func: <function wrap_all at 0x7f2b332818b0>
        expected_sig: (a, b, d=30, c=10)
      id: wrap_all-(a, b, d=30, c=10)
      

      📌 Setup phase

      duration:

      0.0002204040065407753
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015143491327762604
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013863388448953629
      

      outcome:

      passed
      
    • Test 55
      params: func="", expected_sig="(a, b, c=10, d=20)"

      📌 Runtime Parameters

      params:
        func: <function wrap_skip at 0x7f2b33281940>
        expected_sig: (a, b, c=10, d=20)
      id: wrap_skip-(a, b, c=10, d=20)
      

      📌 Setup phase

      duration:

      0.00022256234660744667
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015164725482463837
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014023203402757645
      

      outcome:

      passed
      
    • Test 56
      params: func="", expected_sig="(x, y, c=10, d=20)"

      📌 Runtime Parameters

      params:
        func: <function wrap_ignore_all at 0x7f2b332819d0>
        expected_sig: (x, y, c=10, d=20)
      id: wrap_ignore_all-(x, y, c=10, d=20)
      

      📌 Setup phase

      duration:

      0.00021922681480646133
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016528135165572166
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013341428712010384
      

      outcome:

      passed
      

    Function: test_wrapper_behavior

    • Test 57
      params: func="", args=[1, 2, 3], kwargs={}, expected_result=36

      📌 Runtime Parameters

      params:
        func: <function wrap_all at 0x7f2b332818b0>
        args:
          - 1
          - 2
          - 3
        kwargs:
      {}
        expected_result: 36
      id: wrap_all-args0-kwargs0-36
      

      📌 Setup phase

      duration:

      0.0003112470731139183
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014499016106128693
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016712816432118416
      

      outcome:

      passed
      
    • Test 58
      params: func="", args=[1, 2, 3], kwargs={"d": 5}, expected_result=11

      📌 Runtime Parameters

      params:
        func: <function wrap_all at 0x7f2b332818b0>
        args:
          - 1
          - 2
          - 3
        kwargs:
          d: 5
        expected_result: 11
      id: wrap_all-args1-kwargs1-11
      

      📌 Setup phase

      duration:

      0.00030605727806687355
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001366306096315384
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016145780682563782
      

      outcome:

      passed
      
    • Test 59
      params: func="", args=[0, 0], kwargs={"c": 3, "d": 4}, expected_result=10

      📌 Runtime Parameters

      params:
        func: <function wrap_skip at 0x7f2b33281940>
        args:
          - (vide)
          - (vide)
        kwargs:
          c: 3
          d: 4
        expected_result: 10
      id: wrap_skip-args2-kwargs2-10
      

      📌 Setup phase

      duration:

      0.0003008791245520115
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014093006029725075
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017418619245290756
      

      outcome:

      passed
      
    • Test 60
      params: func="", args=[0, 0], kwargs={}, expected_result=10

      📌 Runtime Parameters

      params:
        func: <function wrap_ignore_all at 0x7f2b332819d0>
        args:
          - (vide)
          - (vide)
        kwargs:
      {}
        expected_result: 10
      id: wrap_ignore_all-args3-kwargs3-10
      

      📌 Setup phase

      duration:

      0.0003045909106731415
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001292000524699688
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016763713210821152
      

      outcome:

      passed
      
  • 📄 test_utils_ask_yes_no.py

    Function: test_ask_yes_no

    • Test 61
      params: default=null, user_input="y", expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: y
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-y-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.000323255080729723
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008392692543566227
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001948741264641285
      

      outcome:

      passed
      
    • Test 62
      params: default=null, user_input="yes", expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: yes
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-yes-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003366847522556782
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005519101396203041
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021071266382932663
      

      outcome:

      passed
      
    • Test 63
      params: default=null, user_input="n", expected_output=false, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: n
        expected_output: False
        expected_prompt: Question? [y/n] 
      id: None-n-False-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.000324225053191185
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005338368937373161
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001867399550974369
      

      outcome:

      passed
      
    • Test 64
      params: default=null, user_input="no", expected_output=false, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input: no
        expected_output: False
        expected_prompt: Question? [y/n] 
      id: None-no-False-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.00032596103847026825
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.001136214006692171
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021000904962420464
      

      outcome:

      passed
      
    • Test 65
      params: default=null, user_input=["maybe", "y"], expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input:
          - maybe
          - y
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-user_input4-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.00034463033080101013
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005704932846128941
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000213495921343565
      

      outcome:

      passed
      
    • Test 66
      params: default=null, user_input=["", "no"], expected_output=false, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input:
          - (vide)
          - no
        expected_output: False
        expected_prompt: Question? [y/n] 
      id: None-user_input5-False-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003345920704305172
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005528158508241177
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018425378948450089
      

      outcome:

      passed
      
    • Test 67
      params: default=null, user_input=["invalid", "", "invalid", "yes"], expected_output=true, expected_prompt="Question? [y/n] "

      📌 Runtime Parameters

      params:
        default: None
        user_input:
          - invalid
          - (vide)
          - invalid
          - yes
        expected_output: True
        expected_prompt: Question? [y/n] 
      id: None-user_input6-True-Question? [y/n] 
      

      📌 Setup phase

      duration:

      0.0003265552222728729
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005670557729899883
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018673622980713844
      

      outcome:

      passed
      
    • Test 68
      params: default="y", user_input="y", expected_output=true, expected_prompt="Question? [Y/n] "

      📌 Runtime Parameters

      params:
        default: y
        user_input: y
        expected_output: True
        expected_prompt: Question? [Y/n] 
      id: y-y-True-Question? [Y/n] 
      

      📌 Setup phase

      duration:

      0.0003357771784067154
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005937200039625168
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018461327999830246
      

      outcome:

      passed
      
    • Test 69
      params: default="y", user_input="n", expected_output=false, expected_prompt="Question? [Y/n] "

      📌 Runtime Parameters

      params:
        default: y
        user_input: n
        expected_output: False
        expected_prompt: Question? [Y/n] 
      id: y-n-False-Question? [Y/n] 
      

      📌 Setup phase

      duration:

      0.0003380291163921356
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004943655803799629
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020253565162420273
      

      outcome:

      passed
      
    • Test 70
      params: default="y", user_input="", expected_output=true, expected_prompt="Question? [Y/n] "

      📌 Runtime Parameters

      params:
        default: y
        user_input: None
        expected_output: True
        expected_prompt: Question? [Y/n] 
      id: y--True-Question? [Y/n] 
      

      📌 Setup phase

      duration:

      0.00031886016950011253
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005254950374364853
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018566614016890526
      

      outcome:

      passed
      
    • Test 71
      params: default="n", user_input="y", expected_output=true, expected_prompt="Question? [y/N] "

      📌 Runtime Parameters

      params:
        default: n
        user_input: y
        expected_output: True
        expected_prompt: Question? [y/N] 
      id: n-y-True-Question? [y/N] 
      

      📌 Setup phase

      duration:

      0.00031990697607398033
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006094877608120441
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001793811097741127
      

      outcome:

      passed
      
    • Test 72
      params: default="n", user_input="n", expected_output=false, expected_prompt="Question? [y/N] "

      📌 Runtime Parameters

      params:
        default: n
        user_input: n
        expected_output: False
        expected_prompt: Question? [y/N] 
      id: n-n-False-Question? [y/N] 
      

      📌 Setup phase

      duration:

      0.0003254418261349201
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004947260022163391
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017608515918254852
      

      outcome:

      passed
      
    • Test 73
      params: default="n", user_input="", expected_output=false, expected_prompt="Question? [y/N] "

      📌 Runtime Parameters

      params:
        default: n
        user_input: None
        expected_output: False
        expected_prompt: Question? [y/N] 
      id: n--False-Question? [y/N] 
      

      📌 Setup phase

      duration:

      0.0003155022859573364
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005035651847720146
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017304671928286552
      

      outcome:

      passed
      

    Function: test_ask_yes_no_ctrl_c

    • Test 74
      params: default=null, user_input="", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'KeyboardInterrupt'>
        expected_output: False
        ctrl_c: n
      id: None-KeyboardInterrupt-False-n
      

      📌 Setup phase

      duration:

      0.0003253975883126259
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005368338897824287
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001901085488498211
      

      outcome:

      passed
      
    • Test 75
      params: default=null, user_input="", expected_output=true, ctrl_c="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'KeyboardInterrupt'>
        expected_output: True
        ctrl_c: y
      id: None-KeyboardInterrupt-True-y
      

      📌 Setup phase

      duration:

      0.0003301640972495079
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006004096940159798
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001793690025806427
      

      outcome:

      passed
      
    • Test 76
      params: default="y", user_input="", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'KeyboardInterrupt'>
        expected_output: False
        ctrl_c: n
      id: y-KeyboardInterrupt-False-n
      

      📌 Setup phase

      duration:

      0.0003105378709733486
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004967539571225643
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017521530389785767
      

      outcome:

      passed
      
    • Test 77
      params: default="y", user_input="", expected_output=true, ctrl_c="y"

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'KeyboardInterrupt'>
        expected_output: True
        ctrl_c: y
      id: y-KeyboardInterrupt-True-y
      

      📌 Setup phase

      duration:

      0.0003151888959109783
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005094571970403194
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017506210133433342
      

      outcome:

      passed
      
    • Test 78
      params: default="n", user_input="", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'KeyboardInterrupt'>
        expected_output: False
        ctrl_c: n
      id: n-KeyboardInterrupt-False-n
      

      📌 Setup phase

      duration:

      0.0003242921084165573
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005167359486222267
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017956970259547234
      

      outcome:

      passed
      
    • Test 79
      params: default=null, user_input="['invalid', '', 'invalid', ]", expected_output=false, ctrl_c="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', '', 'invalid', <class 'KeyboardInterrupt'>]
        expected_output: False
        ctrl_c: n
      id: None-user_input5-False-n
      

      📌 Setup phase

      duration:

      0.00032901717349886894
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000636023934930563
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019747111946344376
      

      outcome:

      passed
      
    • Test 80
      params: default=null, user_input="['invalid', '', 'invalid', ]", expected_output=true, ctrl_c="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', '', 'invalid', <class 'KeyboardInterrupt'>]
        expected_output: True
        ctrl_c: y
      id: None-user_input6-True-y
      

      📌 Setup phase

      duration:

      0.00031834421679377556
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005511417984962463
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001902347430586815
      

      outcome:

      passed
      
    • Test 81
      params: default=null, user_input="['foo', '', , '', 'invalid', , 'no']", expected_output=false, ctrl_c=null

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['foo', '', <class 'KeyboardInterrupt'>, '', 'invalid', <class 'KeyboardInterrupt'>, 'no']
        expected_output: False
        ctrl_c: None
      id: None-user_input7-False-None
      

      📌 Setup phase

      duration:

      0.0003294730558991432
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006099739111959934
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019453000277280807
      

      outcome:

      passed
      
    • Test 82
      params: default="n", user_input="[, , , '']", expected_output=false, ctrl_c=null

      📌 Runtime Parameters

      params:
        default: n
        user_input: [<class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, '']
        expected_output: False
        ctrl_c: None
      id: n-user_input8-False-None
      

      📌 Setup phase

      duration:

      0.00032941484823822975
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007028421387076378
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017930194735527039
      

      outcome:

      passed
      
    • Test 83
      params: default="n", user_input="[, , , '']", expected_output=false, ctrl_c="Invalid"

      📌 Runtime Parameters

      params:
        default: n
        user_input: [<class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, <class 'KeyboardInterrupt'>, '']
        expected_output: False
        ctrl_c: Invalid
      id: n-user_input9-False-Invalid
      

      📌 Setup phase

      duration:

      0.0003415481187403202
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005534286610782146
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001828949898481369
      

      outcome:

      passed
      

    Function: test_ask_yes_no_ctrl_d

    • Test 84
      params: default=null, user_input="", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'EOFError'>
        expected_output: False
        ctrl_d: n
      id: None-EOFError-False-n
      

      📌 Setup phase

      duration:

      0.0003317287191748619
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005131331272423267
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019363779574632645
      

      outcome:

      passed
      
    • Test 85
      params: default=null, user_input="", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: y
      id: None-EOFError-True-y
      

      📌 Setup phase

      duration:

      0.000313641969114542
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005098385736346245
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023251818493008614
      

      outcome:

      passed
      
    • Test 86
      params: default="y", user_input="", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: y
      id: y-EOFError-True-y
      

      📌 Setup phase

      duration:

      0.00033894414082169533
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006148838438093662
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001801988109946251
      

      outcome:

      passed
      
    • Test 87
      params: default="n", user_input="", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: y
      id: n-EOFError-True-y
      

      📌 Setup phase

      duration:

      0.00031724199652671814
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004891268908977509
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018261559307575226
      

      outcome:

      passed
      
    • Test 88
      params: default="n", user_input="", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'EOFError'>
        expected_output: False
        ctrl_d: n
      id: n-EOFError-False-n
      

      📌 Setup phase

      duration:

      0.00030346866697072983
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004958710633218288
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000186283141374588
      

      outcome:

      passed
      
    • Test 89
      params: default=null, user_input="['foo', ]", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['foo', <class 'EOFError'>]
        expected_output: True
        ctrl_d: y
      id: None-user_input5-True-y
      

      📌 Setup phase

      duration:

      0.0003125299699604511
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005210060626268387
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001804162748157978
      

      outcome:

      passed
      
    • Test 90
      params: default=null, user_input="['foo', ]", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['foo', <class 'EOFError'>]
        expected_output: False
        ctrl_d: n
      id: None-user_input6-False-n
      

      📌 Setup phase

      duration:

      0.00033617811277508736
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005970722995698452
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018031196668744087
      

      outcome:

      passed
      
    • Test 91
      params: default="y", user_input="", expected_output=true, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: y
        user_input: <class 'EOFError'>
        expected_output: True
        ctrl_d: None
      id: y-EOFError-True-None
      

      📌 Setup phase

      duration:

      0.0003235563635826111
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004977039061486721
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019321823492646217
      

      outcome:

      passed
      
    • Test 92
      params: default="n", user_input="", expected_output=false, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: n
        user_input: <class 'EOFError'>
        expected_output: False
        ctrl_d: None
      id: n-EOFError-False-None
      

      📌 Setup phase

      duration:

      0.00031832559034228325
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005064071156084538
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001767338253557682
      

      outcome:

      passed
      
    • Test 93
      params: default=null, user_input="['invalid', 'ok', '', , 'ok', 'y']", expected_output=true, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', 'ok', '', <class 'EOFError'>, 'ok', 'y']
        expected_output: True
        ctrl_d: None
      id: None-user_input9-True-None
      

      📌 Setup phase

      duration:

      0.0003191116265952587
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006501711905002594
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018174899742007256
      

      outcome:

      passed
      
    • Test 94
      params: default="n", user_input="['no', ]", expected_output=false, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: n
        user_input: ['no', <class 'EOFError'>]
        expected_output: False
        ctrl_d: None
      id: n-user_input10-False-None
      

      📌 Setup phase

      duration:

      0.0003328220918774605
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004863669164478779
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018176622688770294
      

      outcome:

      passed
      
    • Test 95
      params: default=null, user_input="[, , , 'y']", expected_output=true, ctrl_d=null

      📌 Runtime Parameters

      params:
        default: None
        user_input: [<class 'EOFError'>, <class 'EOFError'>, <class 'EOFError'>, 'y']
        expected_output: True
        ctrl_d: None
      id: None-user_input11-True-None
      

      📌 Setup phase

      duration:

      0.000311089213937521
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005267001688480377
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001873713918030262
      

      outcome:

      passed
      
    • Test 96
      params: default=null, user_input="['invalid', '', 'nope', ]", expected_output=false, ctrl_d="n"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['invalid', '', 'nope', <class 'EOFError'>]
        expected_output: False
        ctrl_d: n
      id: None-user_input12-False-n
      

      📌 Setup phase

      duration:

      0.00031434791162610054
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000541584100574255
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018494809046387672
      

      outcome:

      passed
      
    • Test 97
      params: default=null, user_input="['nope', 'nope', ]", expected_output=true, ctrl_d="y"

      📌 Runtime Parameters

      params:
        default: None
        user_input: ['nope', 'nope', <class 'EOFError'>]
        expected_output: True
        ctrl_d: y
      id: None-user_input13-True-y
      

      📌 Setup phase

      duration:

      0.0003254823386669159
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006219428032636642
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018617790192365646
      

      outcome:

      passed
      

    Function: test_ask_yes_no_mixed_sequences

    • Test 98
      params: default=null, ctrl_c="invalid", ctrl_d=null, user_input="['what', '', 'nope', , 'ok', , 'no']", expected_output=false

      📌 Runtime Parameters

      params:
        default: None
        ctrl_c: invalid
        ctrl_d: None
        user_input: ['what', '', 'nope', <class 'KeyboardInterrupt'>, 'ok', <class 'EOFError'>, 'no']
        expected_output: False
      id: None-invalid-None-user_input0-False
      

      📌 Setup phase

      duration:

      0.0003757248632609844
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005693146958947182
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019906973466277122
      

      outcome:

      passed
      
    • Test 99
      params: default=null, ctrl_c=null, ctrl_d="notananswer", user_input="['maybe', , 'nop', 'yep', , 'yes']", expected_output=true

      📌 Runtime Parameters

      params:
        default: None
        ctrl_c: None
        ctrl_d: notananswer
        user_input: ['maybe', <class 'KeyboardInterrupt'>, 'nop', 'yep', <class 'EOFError'>, 'yes']
        expected_output: True
      id: None-None-notananswer-user_input1-True
      

      📌 Setup phase

      duration:

      0.00035847490653395653
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005614268593490124
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020620040595531464
      

      outcome:

      passed
      
    • Test 100
      params: default=null, ctrl_c="n", ctrl_d="nop", user_input="['ok', , , 'maybe', , 'nah', ]", expected_output=false

      📌 Runtime Parameters

      params:
        default: None
        ctrl_c: n
        ctrl_d: nop
        user_input: ['ok', <class 'EOFError'>, <class 'EOFError'>, 'maybe', <class 'EOFError'>, 'nah', <class 'KeyboardInterrupt'>]
        expected_output: False
      id: None-n-nop-user_input2-False
      

      📌 Setup phase

      duration:

      0.0003695911727845669
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006829607300460339
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001911441795527935
      

      outcome:

      passed
      
  • 📄 test_utils_channels.py

    Function: test_load_channels_and_channels_class_with_professional_names

    • Test 101

      📌 Setup phase

      duration:

      0.00012772995978593826
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009912899695336819
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001225760206580162
      

      outcome:

      passed
      
  • 📄 test_utils_config.py

    Function: test_config_with_nested_and_list_data

    • Test 102

      📌 Setup phase

      duration:

      0.0001257588155567646
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000585583969950676
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012232502922415733
      

      outcome:

      passed
      

    Function: test_config_with_strange_and_edge_keys

    • Test 103

      📌 Setup phase

      duration:

      0.00011384394019842148
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007361359894275665
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013857660815119743
      

      outcome:

      passed
      
  • 📄 test_utils_cpint.py

    Function: test_load_color_variants_all_keys_and_types

    • Test 104
      params: base_color="red"

      📌 Runtime Parameters

      params:
        base_color: red
      id: red
      

      📌 Setup phase

      duration:

      0.0002099461853504181
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017821602523326874
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000131877139210701
      

      outcome:

      passed
      
    • Test 105
      params: base_color="blue"

      📌 Runtime Parameters

      params:
        base_color: blue
      id: blue
      

      📌 Setup phase

      duration:

      0.00020696409046649933
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001702839508652687
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000138105358928442
      

      outcome:

      passed
      
    • Test 106
      params: base_color="yellow"

      📌 Runtime Parameters

      params:
        base_color: yellow
      id: yellow
      

      📌 Setup phase

      duration:

      0.00020393729209899902
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018240930512547493
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014375988394021988
      

      outcome:

      passed
      
    • Test 107
      params: base_color="green"

      📌 Runtime Parameters

      params:
        base_color: green
      id: green
      

      📌 Setup phase

      duration:

      0.00020000524818897247
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015515275299549103
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012552598491311073
      

      outcome:

      passed
      
    • Test 108
      params: base_color="cyan"

      📌 Runtime Parameters

      params:
        base_color: cyan
      id: cyan
      

      📌 Setup phase

      duration:

      0.00017520086839795113
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000143369659781456
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012053688988089561
      

      outcome:

      passed
      
    • Test 109
      params: base_color="magenta"

      📌 Runtime Parameters

      params:
        base_color: magenta
      id: magenta
      

      📌 Setup phase

      duration:

      0.0001687132753431797
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014897668734192848
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012013828381896019
      

      outcome:

      passed
      
    • Test 110
      params: base_color="white"

      📌 Runtime Parameters

      params:
        base_color: white
      id: white
      

      📌 Setup phase

      duration:

      0.00016937591135501862
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014728913083672523
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011719157919287682
      

      outcome:

      passed
      
    • Test 111
      params: base_color="black"

      📌 Runtime Parameters

      params:
        base_color: black
      id: black
      

      📌 Setup phase

      duration:

      0.00017075566574931145
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014943722635507584
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011914502829313278
      

      outcome:

      passed
      

    Function: test_cprint_all_cases_fancy

    • Test 112
      params: objects=[["Fancy", "list"], {"a": 7}, null], color_spec=["red", "+"], sep=" | ", expected_flatten="['Fancy', 'list'] | {'a': 7} | None", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - Fancy
            - list
          -       a: 7
          - (vide)
        color_spec:
          - red
          - +
        sep:  | 
        expected_flatten: ['Fancy', 'list'] | {'a': 7} | None
        expected_error: None
      id: objects0-color_spec0- | -['Fancy', 'list'] | {'a': 7} | None-None
      

      📌 Setup phase

      duration:

      0.0006081312894821167
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025180308148264885
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024136900901794434
      

      outcome:

      passed
      
    • Test 113
      params: objects=[{"k": [1, 2]}, 99, ["X", ["Y"]]], color_spec=["blue", "++"], sep=" - ", expected_flatten="{'k': [1, 2]} - 99 - ['X', ['Y']]", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       k:
              - 1
              - 2
          - 99
          -       - X
            -         - Y
        color_spec:
          - blue
          - ++
        sep:  - 
        expected_flatten: {'k': [1, 2]} - 99 - ['X', ['Y']]
        expected_error: None
      id: objects1-color_spec1- - -{'k': [1, 2]} - 99 - ['X', ['Y']]-None
      

      📌 Setup phase

      duration:

      0.0004717959091067314
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023395661264657974
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023484788835048676
      

      outcome:

      passed
      
    • Test 114
      params: objects=[[], {}, "End"], color_spec=["magenta", "--"], sep=" / ", expected_flatten="[] / {} / End", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          - (vide)
          - (vide)
          - End
        color_spec:
          - magenta
          - --
        sep:  / 
        expected_flatten: [] / {} / End
        expected_error: None
      id: objects2-color_spec2- / -[] / {} / End-None
      

      📌 Setup phase

      duration:

      0.0004649967886507511
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021434389054775238
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002495558001101017
      

      outcome:

      passed
      
    • Test 115
      params: objects="", [3, 4, "done", 0], color_spec=["green", ""], sep=";", expected_flatten="['', [3, 4]];done;0", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - (vide)
            -         - 3
              - 4
          - done
          - (vide)
        color_spec:
          - green
          - (vide)
        sep: ;
        expected_flatten: ['', [3, 4]];done;0
        expected_error: None
      id: objects3-color_spec3-;-['', [3, 4]];done;0-None
      

      📌 Setup phase

      duration:

      0.0004436778835952282
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021510804072022438
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023847399279475212
      

      outcome:

      passed
      
    • Test 116
      params: objects=[["alpha", null], ["beta", {}], "stop"], color_spec=["yellow", ""], sep="::", expected_flatten="['alpha', None]::['beta', {}]::stop", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - alpha
            - (vide)
          -       - beta
            - (vide)
          - stop
        color_spec:
          - yellow
          - (vide)
        sep: ::
        expected_flatten: ['alpha', None]::['beta', {}]::stop
        expected_error: None
      id: objects4-color_spec4-::-['alpha', None]::['beta', {}]::stop-None
      

      📌 Setup phase

      duration:

      0.0004642028361558914
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022469926625490189
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024667102843523026
      

      outcome:

      passed
      
    • Test 117
      params: objects="deep", ["deeper", ["deepest"], "X"], color_spec=["cyan", "+"], sep=" ... ", expected_flatten="['deep', ['deeper', ['deepest']]] ... X", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - deep
            -         - deeper
              -           - deepest
          - X
        color_spec:
          - cyan
          - +
        sep:  ... 
        expected_flatten: ['deep', ['deeper', ['deepest']]] ... X
        expected_error: None
      id: objects5-color_spec5- ... -['deep', ['deeper', ['deepest']]] ... X-None
      

      📌 Setup phase

      duration:

      0.0004650326445698738
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000215223990380764
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023681623861193657
      

      outcome:

      passed
      
    • Test 118
      params: objects=[{"dict": {"nested": [4, 5]}}, [true, false], 6.28], color_spec=["white", "++"], sep=" // ", expected_flatten="{'dict': {'nested': [4, 5]}} // [True, False] // 6.28", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       dict:
              nested:
                - 4
                - 5
          -       - True
            - (vide)
          - 6.28
        color_spec:
          - white
          - ++
        sep:  // 
        expected_flatten: {'dict': {'nested': [4, 5]}} // [True, False] // 6.28
        expected_error: None
      id: objects6-color_spec6- // -{'dict': {'nested': [4, 5]}} // [True, False] // 6.28-None
      

      📌 Setup phase

      duration:

      0.00045771989971399307
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002244352363049984
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024984683841466904
      

      outcome:

      passed
      
    • Test 119
      params: objects="A", ["B", "string", "C"], color_spec=["red", "--"], sep="==", expected_flatten="['A', ['B']]==string==C", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - A
            -         - B
          - string
          - C
        color_spec:
          - red
          - --
        sep: ==
        expected_flatten: ['A', ['B']]==string==C
        expected_error: None
      id: objects7-color_spec7-==-['A', ['B']]==string==C-None
      

      📌 Setup phase

      duration:

      0.0005575860850512981
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022936519235372543
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025000330060720444
      

      outcome:

      passed
      
    • Test 120
      params: objects="Test", null, [, {"v": 0}], color_spec=["green", "++"], sep=" ++ ", expected_flatten="['Test', None, []] ++ {'v': 0}", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - Test
            - (vide)
            - (vide)
          -       v: 0
        color_spec:
          - green
          - ++
        sep:  ++ 
        expected_flatten: ['Test', None, []] ++ {'v': 0}
        expected_error: None
      id: objects8-color_spec8- ++ -['Test', None, []] ++ {'v': 0}-None
      

      📌 Setup phase

      duration:

      0.00045614084228873253
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002223588526248932
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023343507200479507
      

      outcome:

      passed
      
    • Test 121
      params: objects=[["no", "color"], "plain"], color_spec=null, sep=";", expected_flatten="['no', 'color'];plain", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - no
            - color
          - plain
        color_spec: None
        sep: ;
        expected_flatten: ['no', 'color'];plain
        expected_error: None
      id: objects9-None-;-['no', 'color'];plain-None
      

      📌 Setup phase

      duration:

      0.00044455286115407944
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021017203107476234
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025183800607919693
      

      outcome:

      passed
      
    • Test 122
      params: objects=[["simple"], "", 12], color_spec=null, sep=" | ", expected_flatten="['simple'] | | 12", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       - simple
          - (vide)
          - 12
        color_spec: None
        sep:  | 
        expected_flatten: ['simple'] |  | 12
        expected_error: None
      id: objects10-None- | -['simple'] |  | 12-None
      

      📌 Setup phase

      duration:

      0.0004443279467523098
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021011196076869965
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023540621623396873
      

      outcome:

      passed
      
    • Test 123
      params: objects=["very", "deep", {"ok": true}], color_spec=null, sep=" : ", expected_flatten="'very', 'deep' : {'ok': True}", expected_error=null

      📌 Runtime Parameters

      params:
        objects:
          -       -         - very
              - deep
          -       ok: True
        color_spec: None
        sep:  : 
        expected_flatten: [['very', 'deep']] : {'ok': True}
        expected_error: None
      id: objects11-None- : -[['very', 'deep']] : {'ok': True}-None
      

      📌 Setup phase

      duration:

      0.0004529450088739395
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022158166393637657
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024583563208580017
      

      outcome:

      passed
      
    • Test 124
      params: objects=[["fail", "color"], 123], color_spec=["green", "!!"], sep="|", expected_flatten="['fail', 'color']|123", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          -       - fail
            - color
          - 123
        color_spec:
          - green
          - !!
        sep: |
        expected_flatten: ['fail', 'color']|123
        expected_error: <class 'ValueError'>
      id: objects12-color_spec12-|-['fail', 'color']|123-ValueError
      

      📌 Setup phase

      duration:

      0.00045865774154663086
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002440623939037323
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023983698338270187
      

      outcome:

      passed
      
    • Test 125
      params: objects=[["error"], {}], color_spec=["cyan", "xxx"], sep=" * ", expected_flatten="['error'] * {}", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          -       - error
          - (vide)
        color_spec:
          - cyan
          - xxx
        sep:  * 
        expected_flatten: ['error'] * {}
        expected_error: <class 'ValueError'>
      id: objects13-color_spec13- * -['error'] * {}-ValueError
      

      📌 Setup phase

      duration:

      0.00045904889702796936
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023623928427696228
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024156970903277397
      

      outcome:

      passed
      
    • Test 126
      params: objects="nope"], ["bad", color_spec=["magenta", "invalid"], sep="//", expected_flatten="['nope']//['bad']", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          -       - nope
          -       - bad
        color_spec:
          - magenta
          - invalid
        sep: //
        expected_flatten: ['nope']//['bad']
        expected_error: <class 'ValueError'>
      id: objects14-color_spec14-//-['nope']//['bad']-ValueError
      

      📌 Setup phase

      duration:

      0.0004561510868370533
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002274611033499241
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025400472804903984
      

      outcome:

      passed
      
    • Test 127
      params: objects=["wrong", "base"], color_spec=["notacolor", ""], sep="--", expected_flatten="wrong--base", expected_error=""

      📌 Runtime Parameters

      params:
        objects:
          - wrong
          - base
        color_spec:
          - notacolor
          - (vide)
        sep: --
        expected_flatten: wrong--base
        expected_error: <class 'ValueError'>
      id: objects15-color_spec15----wrong--base-ValueError
      

      📌 Setup phase

      duration:

      0.00044900598004460335
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022724783048033714
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024267006665468216
      

      outcome:

      passed
      
  • 📄 test_utils_debug.py

    Function: test_traceable

    • Test 128
      params: cls="", entry=[[10, 20], {}], expected="creating: A(10, 20)"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - 10
            - 20
          - (vide)
        expected: creating: A(10, 20)
      id: A-entry0-creating: A(10, 20)
      

      📌 Setup phase

      duration:

      0.00029959622770547867
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008662203326821327
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017269188538193703
      

      outcome:

      passed
      
    • Test 129
      params: cls="", entry=[[10, 20], {"e": 100}], expected="creating: A(10, 20, e=100)"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - 10
            - 20
          -       e: 100
        expected: creating: A(10, 20, e=100)
      id: A-entry1-creating: A(10, 20, e=100)
      

      📌 Setup phase

      duration:

      0.0002812230959534645
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0011673718690872192
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018267333507537842
      

      outcome:

      passed
      
    • Test 130
      params: cls="", entry="foo", [1, 2, 3, {"flag": true, "data": {"x": 9}}], expected="creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - foo
            -         - 1
              - 2
              - 3
          -       flag: True
            data:
              x: 9
        expected: creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})
      id: A-entry2-creating: A('foo', [1, 2, 3], flag=True, data={'x': 9})
      

      📌 Setup phase

      duration:

      0.0002817567437887192
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007694410160183907
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017365394160151482
      

      outcome:

      passed
      
    • Test 131
      params: cls="", entry="([CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], {'name': 'test', 'meta': 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'})", expected="creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry: ([CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], {'name': 'test', 'meta': 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'})
        expected: creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)
      id: A-entry3-creating: A(CustomObj(big), [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], name='test', meta='yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...)
      

      📌 Setup phase

      duration:

      0.0002889237366616726
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000852752011269331
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017411494627594948
      

      outcome:

      passed
      
    • Test 132
      params: cls="", entry="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", [0, 0, 0, 0, 0, {}], expected="creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])"

      📌 Runtime Parameters

      params:
        cls: <class 'test_utils_debug.A'>
        entry:
          -       - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
            -         - (vide)
              - (vide)
              - (vide)
              - (vide)
              - (vide)
          - (vide)
        expected: creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])
      id: A-entry4-creating: A('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA..., [0, 0, 0, 0, 0])
      

      📌 Setup phase

      duration:

      0.00027367519214749336
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007588169537484646
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000173129141330719
      

      outcome:

      passed
      

    Function: test_short_repr

    • Test 133
      params: value="abc", cutoff=10, expected="'abc'"

      📌 Runtime Parameters

      params:
        value: abc
        cutoff: 10
        expected: 'abc'
      id: abc-10-'abc'
      

      📌 Setup phase

      duration:

      0.00027911365032196045
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014698132872581482
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001659630797803402
      

      outcome:

      passed
      
    • Test 135
      params: value=12345, cutoff=10, expected="12345"

      📌 Runtime Parameters

      params:
        value: 12345
        cutoff: 10
        expected: 12345
      id: 12345-10-12345
      

      📌 Setup phase

      duration:

      0.0003361459821462631
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001587551087141037
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016117887571454048
      

      outcome:

      passed
      
    • Test 136
      params: value=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], cutoff=15, expected="[0, 0, 0, 0, 0,..."

      📌 Runtime Parameters

      params:
        value:
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
          - (vide)
        cutoff: 15
        expected: [0, 0, 0, 0, 0,...
      id: value3-15-[0, 0, 0, 0, 0,...
      

      📌 Setup phase

      duration:

      0.0002826983109116554
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015168823301792145
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015696510672569275
      

      outcome:

      passed
      
    • Test 137
      params: value=null, cutoff=10, expected="None"

      📌 Runtime Parameters

      params:
        value: None
        cutoff: 10
        expected: None
      id: None-10-None
      

      📌 Setup phase

      duration:

      0.0002743382938206196
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014086393639445305
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001506749540567398
      

      outcome:

      passed
      
  • 📄 test_utils_dictext.py

    Function: test_attrdict_getattr

    • Test 139
      params: data={"x": 1, "y": 2}, attr="x", expected=1

      📌 Runtime Parameters

      params:
        data:
          x: 1
          y: 2
        attr: x
        expected: 1
      id: data0-x-1
      

      📌 Setup phase

      duration:

      0.0003111511468887329
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015306472778320312
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015124399214982986
      

      outcome:

      passed
      
    • Test 140
      params: data={"world": "ok"}, attr="world", expected="ok"

      📌 Runtime Parameters

      params:
        data:
          world: ok
        attr: world
        expected: ok
      id: data1-world-ok
      

      📌 Setup phase

      duration:

      0.0002756929025053978
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014249561354517937
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001519499346613884
      

      outcome:

      passed
      
    • Test 141
      params: data={"outer": {"inner": 42}}, attr="outer", expected={"inner": 42}

      📌 Runtime Parameters

      params:
        data:
          outer:
            inner: 42
        attr: outer
        expected:
          inner: 42
      id: data2-outer-expected2
      

      📌 Setup phase

      duration:

      0.00026579108089208603
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013737287372350693
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001568109728395939
      

      outcome:

      passed
      

    Function: test_attrdict_setattr

    • Test 142
      params: initial={}, attr="nouveau", value=123

      📌 Runtime Parameters

      params:
        initial:
      {}
        attr: nouveau
        value: 123
      id: initial0-nouveau-123
      

      📌 Setup phase

      duration:

      0.0002639717422425747
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013876007869839668
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014898879453539848
      

      outcome:

      passed
      
    • Test 143
      params: initial={"a": 1}, attr="b", value="valeur"

      📌 Runtime Parameters

      params:
        initial:
          a: 1
        attr: b
        value: valeur
      id: initial1-b-valeur
      

      📌 Setup phase

      duration:

      0.00026630284264683723
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015011988580226898
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015705032274127007
      

      outcome:

      passed
      

    Function: test_attrdict_delattr

    • Test 144
      params: initial={"a": 1, "b": 2}, to_del="a", expected_keys=["b"]

      📌 Runtime Parameters

      params:
        initial:
          a: 1
          b: 2
        to_del: a
        expected_keys:
          - b
      id: initial0-a-expected_keys0
      

      📌 Setup phase

      duration:

      0.00025284895673394203
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017590215429663658
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015526916831731796
      

      outcome:

      passed
      
    • Test 145
      params: initial={"k": "v"}, to_del="k", expected_keys=[]

      📌 Runtime Parameters

      params:
        initial:
          k: v
        to_del: k
        expected_keys:
      []
      id: initial1-k-expected_keys1
      

      📌 Setup phase

      duration:

      0.00027355365455150604
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016788393259048462
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014716805890202522
      

      outcome:

      passed
      

    Function: test_attrdict_dir

    • Test 146
      params: data={"alpha": 1, "beta": 2}, expected_keys="{'alpha', 'beta'}"

      📌 Runtime Parameters

      params:
        data:
          alpha: 1
          beta: 2
        expected_keys: {'alpha', 'beta'}
      id: data0-expected_keys0
      

      📌 Setup phase

      duration:

      0.00022465595975518227
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013959407806396484
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001359148882329464
      

      outcome:

      passed
      
    • Test 147
      params: data={}, expected_keys="set()"

      📌 Runtime Parameters

      params:
        data:
      {}
        expected_keys: set()
      id: data1-expected_keys1
      

      📌 Setup phase

      duration:

      0.00021457113325595856
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015828898176550865
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001517040655016899
      

      outcome:

      passed
      

    Function: test_attrdict_getattr_and_missing

    • Test 148
      params: data={"x": 1, "y": 2}, attr="x", expect_value=1, expect_error=null

      📌 Runtime Parameters

      params:
        data:
          x: 1
          y: 2
        attr: x
        expect_value: 1
        expect_error: None
      id: data0-x-1-None
      

      📌 Setup phase

      duration:

      0.0003095800057053566
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013678288087248802
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016697589308023453
      

      outcome:

      passed
      
    • Test 149
      params: data={"number": 42}, attr="missing", expect_value=null, expect_error="'MyDict' object has no attribute 'missing'"

      📌 Runtime Parameters

      params:
        data:
          number: 42
        attr: missing
        expect_value: None
        expect_error: 'MyDict' object has no attribute 'missing'
      id: data1-missing-None-'MyDict' object has no attribute 'missing'
      

      📌 Setup phase

      duration:

      0.0003061559982597828
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001703863963484764
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016396678984165192
      

      outcome:

      passed
      

    Function: test_dictupdatemixin_init_and_update

    • Test 150
      params: init_kwargs={"a": 1, "b": 2}, other=null, kwargs={}, expected={"a": 1, "b": 2}

      📌 Runtime Parameters

      params:
        init_kwargs:
          a: 1
          b: 2
        other: None
        kwargs:
      {}
        expected:
          a: 1
          b: 2
      id: init_kwargs0-None-kwargs0-expected0
      

      📌 Setup phase

      duration:

      0.0003179511986672878
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014745304360985756
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016038818284869194
      

      outcome:

      passed
      
    • Test 151
      params: init_kwargs={}, other={"x": 10, "y": 20}, kwargs={}, expected={"x": 10, "y": 20}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other:
          x: 10
          y: 20
        kwargs:
      {}
        expected:
          x: 10
          y: 20
      id: init_kwargs1-other1-kwargs1-expected1
      

      📌 Setup phase

      duration:

      0.00030263420194387436
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000167913269251585
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016370369121432304
      

      outcome:

      passed
      
    • Test 152
      params: init_kwargs={"world": "ok"}, other={"number": 42}, kwargs={"num2": 100}, expected={"world": "ok", "number": 42, "num2": 100}

      📌 Runtime Parameters

      params:
        init_kwargs:
          world: ok
        other:
          number: 42
        kwargs:
          num2: 100
        expected:
          world: ok
          number: 42
          num2: 100
      id: init_kwargs2-other2-kwargs2-expected2
      

      📌 Setup phase

      duration:

      0.00029525114223361015
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013978080824017525
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016815587878227234
      

      outcome:

      passed
      
    • Test 153
      params: init_kwargs={}, other=null, kwargs={"alpha": "beta"}, expected={"alpha": "beta"}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other: None
        kwargs:
          alpha: beta
        expected:
          alpha: beta
      id: init_kwargs3-None-kwargs3-expected3
      

      📌 Setup phase

      duration:

      0.0003037508577108383
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014026928693056107
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016097305342555046
      

      outcome:

      passed
      
    • Test 154
      params: init_kwargs={}, other={"key": "value"}, kwargs={"extra": 1}, expected={"key": "value", "extra": 1}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other:
          key: value
        kwargs:
          extra: 1
        expected:
          key: value
          extra: 1
      id: init_kwargs4-other4-kwargs4-expected4
      

      📌 Setup phase

      duration:

      0.00029917992651462555
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014115683734416962
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001679677516222
      

      outcome:

      passed
      
    • Test 155
      params: init_kwargs={}, other="key", "value"], ["list", [5, 6], kwargs={"extra": {"subkey": 123}}, expected={"key": "value", "list": [5, 6], "extra": {"subkey": 123}}

      📌 Runtime Parameters

      params:
        init_kwargs:
      {}
        other:
          -       - key
            - value
          -       - list
            -         - 5
              - 6
        kwargs:
          extra:
            subkey: 123
        expected:
          key: value
          list:
            - 5
            - 6
          extra:
            subkey: 123
      id: init_kwargs5-other5-kwargs5-expected5
      

      📌 Setup phase

      duration:

      0.00031211599707603455
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025140494108200073
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017151562497019768
      

      outcome:

      passed
      
  • 📄 test_utils_dotdir.py

    Function: test_dotdir_creation_and_base_exists

    • Test 156

      📌 Setup phase

      duration:

      0.0014310791157186031
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002708812244236469
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021907687187194824
      

      outcome:

      passed
      

    Function: test_dotdir_repr_returns_path_str

    • Test 157

      📌 Setup phase

      duration:

      0.0006065499037504196
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022279005497694016
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020507117733359337
      

      outcome:

      passed
      

    Function: test_dotdir_call

    • Test 158

      📌 Setup phase

      duration:

      0.0006224960088729858
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002326909452676773
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002050129696726799
      

      outcome:

      passed
      
  • 📄 test_utils_eval.py

    Function: test_arithmetic_eval_valid

    • Test 164
      params: expr="1 + 2", expected=3

      📌 Runtime Parameters

      params:
        expr: 1 + 2
        expected: 3
      id: 1 + 2-3
      

      📌 Setup phase

      duration:

      0.00028670020401477814
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017273519188165665
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015475600957870483
      

      outcome:

      passed
      
    • Test 165
      params: expr="4 - 2", expected=2

      📌 Runtime Parameters

      params:
        expr: 4 - 2
        expected: 2
      id: 4 - 2-2
      

      📌 Setup phase

      duration:

      0.0002333591692149639
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016251485794782639
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014320295304059982
      

      outcome:

      passed
      
    • Test 166
      params: expr="3 * 5", expected=15

      📌 Runtime Parameters

      params:
        expr: 3 * 5
        expected: 15
      id: 3 * 5-15
      

      📌 Setup phase

      duration:

      0.00022407202050089836
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015226472169160843
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014661205932497978
      

      outcome:

      passed
      
    • Test 167
      params: expr="10 / 2", expected=5.0

      📌 Runtime Parameters

      params:
        expr: 10 / 2
        expected: 5.0
      id: 10 / 2-5.0
      

      📌 Setup phase

      duration:

      0.0002230401150882244
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016800733283162117
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000141792930662632
      

      outcome:

      passed
      
    • Test 168
      params: expr="10 % 3", expected=1

      📌 Runtime Parameters

      params:
        expr: 10 % 3
        expected: 1
      id: 10 % 3-1
      

      📌 Setup phase

      duration:

      0.00022123800590634346
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015832670032978058
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013752980157732964
      

      outcome:

      passed
      
    • Test 169
      params: expr="-5", expected=-5

      📌 Runtime Parameters

      params:
        expr: -5
        expected: -5
      id: -5--5
      

      📌 Setup phase

      duration:

      0.00023082317784428596
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001537431962788105
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013581197708845139
      

      outcome:

      passed
      
    • Test 170
      params: expr="+7", expected=7

      📌 Runtime Parameters

      params:
        expr: +7
        expected: 7
      id: +7-7
      

      📌 Setup phase

      duration:

      0.00021918397396802902
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015625730156898499
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014162389561533928
      

      outcome:

      passed
      
    • Test 171
      params: expr="1 + 2 * 3", expected=7

      📌 Runtime Parameters

      params:
        expr: 1 + 2 * 3
        expected: 7
      id: 1 + 2 * 3-7
      

      📌 Setup phase

      duration:

      0.00022108200937509537
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015800399705767632
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014045974239706993
      

      outcome:

      passed
      
    • Test 172
      params: expr="(1 + 2) * 3", expected=9

      📌 Runtime Parameters

      params:
        expr: (1 + 2) * 3
        expected: 9
      id: (1 + 2) * 3-9
      

      📌 Setup phase

      duration:

      0.00022149784490466118
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001580091193318367
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013250624760985374
      

      outcome:

      passed
      
    • Test 173
      params: expr="-(-3)", expected=3

      📌 Runtime Parameters

      params:
        expr: -(-3)
        expected: 3
      id: -(-3)-3
      

      📌 Setup phase

      duration:

      0.0002206689678132534
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015457672998309135
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001498563215136528
      

      outcome:

      passed
      
    • Test 174
      params: expr="-2 + 4 * 2", expected=6

      📌 Runtime Parameters

      params:
        expr: -2 + 4 * 2
        expected: 6
      id: -2 + 4 * 2-6
      

      📌 Setup phase

      duration:

      0.0002184300683438778
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015672482550144196
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001357821747660637
      

      outcome:

      passed
      
    • Test 175
      params: expr="(4 + 5) * (6 - 1)", expected=45

      📌 Runtime Parameters

      params:
        expr: (4 + 5) * (6 - 1)
        expected: 45
      id: (4 + 5) * (6 - 1)-45
      

      📌 Setup phase

      duration:

      0.0002214270643889904
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016484083607792854
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013662315905094147
      

      outcome:

      passed
      
    • Test 176
      params: expr="(((3)))", expected=3

      📌 Runtime Parameters

      params:
        expr: (((3)))
        expected: 3
      id: (((3)))-3
      

      📌 Setup phase

      duration:

      0.0002219928428530693
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016124499961733818
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013562198728322983
      

      outcome:

      passed
      
    • Test 177
      params: expr="-(-(-2))", expected=-2

      📌 Runtime Parameters

      params:
        expr: -(-(-2))
        expected: -2
      id: -(-(-2))--2
      

      📌 Setup phase

      duration:

      0.00020987587049603462
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017581740394234657
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001386101357638836
      

      outcome:

      passed
      
    • Test 178
      params: expr="3 + +4", expected=7

      📌 Runtime Parameters

      params:
        expr: 3 + +4
        expected: 7
      id: 3 + +4-7
      

      📌 Setup phase

      duration:

      0.00021692179143428802
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015738420188426971
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013796426355838776
      

      outcome:

      passed
      
    • Test 179
      params: expr="3 + -4", expected=-1

      📌 Runtime Parameters

      params:
        expr: 3 + -4
        expected: -1
      id: 3 + -4--1
      

      📌 Setup phase

      duration:

      0.00022765574976801872
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015236902981996536
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013161497190594673
      

      outcome:

      passed
      
    • Test 180
      params: expr="True + 1", expected=2

      📌 Runtime Parameters

      params:
        expr: True + 1
        expected: 2
      id: True + 1-2
      

      📌 Setup phase

      duration:

      0.00023095495998859406
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001543508842587471
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013551674783229828
      

      outcome:

      passed
      
    • Test 181
      params: expr="'string'", expected="string"

      📌 Runtime Parameters

      params:
        expr: 'string'
        expected: string
      id: 'string'-string
      

      📌 Setup phase

      duration:

      0.00022113509476184845
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015145214274525642
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013592420145869255
      

      outcome:

      passed
      
    • Test 182
      params: expr="1e1000 * 1e1000", expected=Infinity

      📌 Runtime Parameters

      params:
        expr: 1e1000 * 1e1000
        expected: inf
      id: 1e1000 * 1e1000-inf
      

      📌 Setup phase

      duration:

      0.000211221631616354
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015016691759228706
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001358012668788433
      

      outcome:

      passed
      
    • Test 183
      params: expr="'a' + 'b'", expected="ab"

      📌 Runtime Parameters

      params:
        expr: 'a' + 'b'
        expected: ab
      id: 'a' + 'b'-ab
      

      📌 Setup phase

      duration:

      0.000218105036765337
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015080207958817482
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014063483104109764
      

      outcome:

      passed
      

    Function: test_arithmetic_eval_raises_with_message

    • Test 184
      params: expr="2 ** 3", expected_message="Unsupported BinOp Pow"

      📌 Runtime Parameters

      params:
        expr: 2 ** 3
        expected_message: Unsupported BinOp Pow
      id: 2 ** 3-Unsupported BinOp Pow
      

      📌 Setup phase

      duration:

      0.00023030396550893784
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003699879162013531
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014285510405898094
      

      outcome:

      passed
      
    • Test 185
      params: expr="3 << 1", expected_message="Unsupported BinOp LShift"

      📌 Runtime Parameters

      params:
        expr: 3 << 1
        expected_message: Unsupported BinOp LShift
      id: 3 << 1-Unsupported BinOp LShift
      

      📌 Setup phase

      duration:

      0.0002192188985645771
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003515118733048439
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014108605682849884
      

      outcome:

      passed
      
    • Test 186
      params: expr="1 < 2", expected_message="Unsupported node type Compare"

      📌 Runtime Parameters

      params:
        expr: 1 < 2
        expected_message: Unsupported node type Compare
      id: 1 < 2-Unsupported node type Compare
      

      📌 Setup phase

      duration:

      0.00022466620430350304
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035382993519306183
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001431587152183056
      

      outcome:

      passed
      
    • Test 187
      params: expr="abs(3)", expected_message="Unsupported node type Call"

      📌 Runtime Parameters

      params:
        expr: abs(3)
        expected_message: Unsupported node type Call
      id: abs(3)-Unsupported node type Call
      

      📌 Setup phase

      duration:

      0.00021882681176066399
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003262059763073921
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000147359911352396
      

      outcome:

      passed
      
    • Test 188
      params: expr="a + 2", expected_message="Unsupported node type Name"

      📌 Runtime Parameters

      params:
        expr: a + 2
        expected_message: Unsupported node type Name
      id: a + 2-Unsupported node type Name
      

      📌 Setup phase

      duration:

      0.0002207597717642784
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034885993227362633
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001493389718234539
      

      outcome:

      passed
      
    • Test 189
      params: expr="string", expected_message="Unsupported node type Name"

      📌 Runtime Parameters

      params:
        expr: string
        expected_message: Unsupported node type Name
      id: string-Unsupported node type Name
      

      📌 Setup phase

      duration:

      0.00023525627329945564
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017915619537234306
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001376126892864704
      

      outcome:

      passed
      
    • Test 190
      params: expr="[1, 2] + [3]", expected_message="Unsupported node type List"

      📌 Runtime Parameters

      params:
        expr: [1, 2] + [3]
        expected_message: Unsupported node type List
      id: [1, 2] + [3]-Unsupported node type List
      

      📌 Setup phase

      duration:

      0.00022697914391756058
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034349923953413963
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001599709503352642
      

      outcome:

      passed
      
    • Test 191
      params: expr="{1: 2}", expected_message="Unsupported node type Dict"

      📌 Runtime Parameters

      params:
        expr: {1: 2}
        expected_message: Unsupported node type Dict
      id: {1: 2}-Unsupported node type Dict
      

      📌 Setup phase

      duration:

      0.00022254977375268936
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005396031774580479
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015633227303624153
      

      outcome:

      passed
      

    Function: test_arithmetic_eval_runtime_errors

    • Test 192
      params: expr="1 / 0", exception=""

      📌 Runtime Parameters

      params:
        expr: 1 / 0
        exception: <class 'ZeroDivisionError'>
      id: 1 / 0-ZeroDivisionError
      

      📌 Setup phase

      duration:

      0.0002421727403998375
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017690425738692284
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001370757818222046
      

      outcome:

      passed
      
    • Test 193
      params: expr="10 % 0", exception=""

      📌 Runtime Parameters

      params:
        expr: 10 % 0
        exception: <class 'ZeroDivisionError'>
      id: 10 % 0-ZeroDivisionError
      

      📌 Setup phase

      duration:

      0.00022756773978471756
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000174839049577713
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001373947598040104
      

      outcome:

      passed
      

    Function: test_forgiving_eval

    • Test 194
      params: expr="1 + 2", expected=3

      📌 Runtime Parameters

      params:
        expr: 1 + 2
        expected: 3
      id: 1 + 2-3
      

      📌 Setup phase

      duration:

      0.0002240682952105999
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001595788635313511
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001491582952439785
      

      outcome:

      passed
      
    • Test 195
      params: expr="bad + 2", expected="bad + 2"

      📌 Runtime Parameters

      params:
        expr: bad + 2
        expected: bad + 2
      id: bad + 2-bad + 2
      

      📌 Setup phase

      duration:

      0.00022024428471922874
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001578168012201786
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014209793880581856
      

      outcome:

      passed
      
    • Test 196
      params: expr="1 / 0", expected="1 / 0"

      📌 Runtime Parameters

      params:
        expr: 1 / 0
        expected: 1 / 0
      id: 1 / 0-1 / 0
      

      📌 Setup phase

      duration:

      0.00022105779498815536
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015402678400278091
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014201225712895393
      

      outcome:

      passed
      
    • Test 197
      params: expr="2 ** 10", expected="2 ** 10"

      📌 Runtime Parameters

      params:
        expr: 2 ** 10
        expected: 2 ** 10
      id: 2 ** 10-2 ** 10
      

      📌 Setup phase

      duration:

      0.00022122822701931
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001660478301346302
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013544689863920212
      

      outcome:

      passed
      

    Function: test_defaulting_eval

    • Test 198
      params: expr="3 * 4", default=0, expected=12

      📌 Runtime Parameters

      params:
        expr: 3 * 4
        default: 0
        expected: 12
      id: 3 * 4-0-12
      

      📌 Setup phase

      duration:

      0.0002671601250767708
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015832483768463135
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015168078243732452
      

      outcome:

      passed
      
    • Test 199
      params: expr="invalid + 1", default=99, expected=99

      📌 Runtime Parameters

      params:
        expr: invalid + 1
        default: 99
        expected: 99
      id: invalid + 1-99-99
      

      📌 Setup phase

      duration:

      0.00026543671265244484
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001688208431005478
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015479791909456253
      

      outcome:

      passed
      
    • Test 200
      params: expr="1 / 0", default=-1, expected=-1

      📌 Runtime Parameters

      params:
        expr: 1 / 0
        default: -1
        expected: -1
      id: 1 / 0--1--1
      

      📌 Setup phase

      duration:

      0.00026696501299738884
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015355506911873817
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014677923172712326
      

      outcome:

      passed
      
    • Test 201
      params: expr="2 ** 10", default=42, expected=42

      📌 Runtime Parameters

      params:
        expr: 2 ** 10
        default: 42
        expected: 42
      id: 2 ** 10-42-42
      

      📌 Setup phase

      duration:

      0.00025674887001514435
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015717511996626854
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016282685101032257
      

      outcome:

      passed
      
  • 📄 test_utils_exceptions.py

    Function: test_chained_exception_various

    • Test 202
      params: func="", expected_output="High-level task failed\ncaused by KeyError: 'missing'"

      📌 Runtime Parameters

      params:
        func: <function cause_key_error at 0x7f2b32eb6c10>
        expected_output: High-level task failed
      caused by KeyError: 'missing'
      id: cause_key_error-High-level task failed\ncaused by KeyError: 'missing'
      

      📌 Setup phase

      duration:

      0.0002259509637951851
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001592547632753849
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014072982594370842
      

      outcome:

      passed
      
    • Test 203
      params: func="", expected_output="High-level task failed\ncaused by IndexError: list index out of range"

      📌 Runtime Parameters

      params:
        func: <function cause_index_error at 0x7f2b32eb6d30>
        expected_output: High-level task failed
      caused by IndexError: list index out of range
      id: cause_index_error-High-level task failed\ncaused by IndexError: list index out of range
      

      📌 Setup phase

      duration:

      0.0002206261269748211
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015620002523064613
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013575423508882523
      

      outcome:

      passed
      
    • Test 204
      params: func="", expected_output="High-level task failed\ncaused by ZeroDivisionError: division by zero"

      📌 Runtime Parameters

      params:
        func: <function cause_zero_division at 0x7f2b32eb6dc0>
        expected_output: High-level task failed
      caused by ZeroDivisionError: division by zero
      id: cause_zero_division-High-level task failed\ncaused by ZeroDivisionError: division by zero
      

      📌 Setup phase

      duration:

      0.0002224920317530632
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014856690540909767
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001463121734559536
      

      outcome:

      passed
      
    • Test 205
      params: func="", expected_output="High-level task failed\ncaused by ValueError: invalid literal for int() with base 10: 'not_a_number'"

      📌 Runtime Parameters

      params:
        func: <function cause_value_error at 0x7f2b32eb6e50>
        expected_output: High-level task failed
      caused by ValueError: invalid literal for int() with base 10: 'not_a_number'
      id: cause_value_error-High-level task failed\ncaused by ValueError: invalid literal for int() with base 10: 'not_a_number'
      

      📌 Setup phase

      duration:

      0.00021810410544276237
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015433970838785172
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014561181887984276
      

      outcome:

      passed
      
    • Test 206
      params: func="", expected_output="High-level task failed\ncaused by TypeError: can only concatenate str (not \"int\") to str"

      📌 Runtime Parameters

      params:
        func: <function cause_type_error at 0x7f2b32eb6ee0>
        expected_output: High-level task failed
      caused by TypeError: can only concatenate str (not "int") to str
      id: cause_type_error-High-level task failed\ncaused by TypeError: can only concatenate str (not "int") to str
      

      📌 Setup phase

      duration:

      0.00022528879344463348
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001421719789505005
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014206813648343086
      

      outcome:

      passed
      

    Function: test_printed_exception

    • Test 207
      params: func="", expected_output="KeyError: 'missing'"

      📌 Runtime Parameters

      params:
        func: <function cause_key_error at 0x7f2b32eb6c10>
        expected_output: KeyError: 'missing'
      id: cause_key_error-KeyError: 'missing'
      

      📌 Setup phase

      duration:

      0.0006670108996331692
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009685466066002846
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00043685128912329674
      

      outcome:

      passed
      
    • Test 208
      params: func="", expected_output="IndexError: list index out of range"

      📌 Runtime Parameters

      params:
        func: <function cause_index_error at 0x7f2b32eb6d30>
        expected_output: IndexError: list index out of range
      id: cause_index_error-IndexError: list index out of range
      

      📌 Setup phase

      duration:

      0.000574975274503231
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009309547021985054
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0004282267764210701
      

      outcome:

      passed
      
    • Test 209
      params: func="", expected_output="ZeroDivisionError: division by zero"

      📌 Runtime Parameters

      params:
        func: <function cause_zero_division at 0x7f2b32eb6dc0>
        expected_output: ZeroDivisionError: division by zero
      id: cause_zero_division-ZeroDivisionError: division by zero
      

      📌 Setup phase

      duration:

      0.000572865828871727
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007980382069945335
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00043460726737976074
      

      outcome:

      passed
      
    • Test 210
      params: func="", expected_output="ValueError: invalid literal for int() with base 10: 'not_a_number'"

      📌 Runtime Parameters

      params:
        func: <function cause_value_error at 0x7f2b32eb6e50>
        expected_output: ValueError: invalid literal for int() with base 10: 'not_a_number'
      id: cause_value_error-ValueError: invalid literal for int() with base 10: 'not_a_number'
      

      📌 Setup phase

      duration:

      0.0005554473027586937
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007800022140145302
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00042714085429906845
      

      outcome:

      passed
      
    • Test 211
      params: func="", expected_output="TypeError: can only concatenate str (not \"int\") to str"

      📌 Runtime Parameters

      params:
        func: <function cause_type_error at 0x7f2b32eb6ee0>
        expected_output: TypeError: can only concatenate str (not "int") to str
      id: cause_type_error-TypeError: can only concatenate str (not "int") to str
      

      📌 Setup phase

      duration:

      0.0005213986150920391
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008554928936064243
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0004107709974050522
      

      outcome:

      passed
      
  • 📄 test_utils_get_adj.py

    Function: test_get_adj_success

    • Test 212

      📌 Setup phase

      duration:

      0.0001539783552289009
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006183302029967308
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011392869055271149
      

      outcome:

      passed
      

    Function: test_get_adj_not_found

    • Test 213

      📌 Setup phase

      duration:

      0.00048142997547984123
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008970126509666443
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00037544313818216324
      

      outcome:

      passed
      

    Function: test_ensure_adjs_mixed

    • Test 214

      📌 Setup phase

      duration:

      0.00012416904792189598
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008430676534771919
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011712219566106796
      

      outcome:

      passed
      
  • 📄 test_utils_hastyepics.py

    Function: test_motor_invalid_name_raises

    • Test 218

      📌 Setup phase

      duration:

      0.00012565497308969498
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00026268092915415764
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011501787230372429
      

      outcome:

      passed
      

    Function: test_motor_init_list_has_no_disabled

    • Test 219

      📌 Setup phase

      duration:

      0.00013558799400925636
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014911312609910965
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001005297526717186
      

      outcome:

      passed
      

    Function: test_motor_pv_connection_skipped_by_default

    • Test 221

      📌 Setup phase

      duration:

      0.00012763682752847672
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000337300356477499
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000124265905469656
      

      outcome:

      passed
      

    Function: test_motor_adds_all_extras_pvs

    • Test 222

      📌 Setup phase

      duration:

      0.00011046929284930229
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003418847918510437
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010329717770218849
      

      outcome:

      passed
      

    Function: test_motor_PV_method_exists_and_works

    • Test 223

      📌 Setup phase

      duration:

      0.00010861596092581749
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00034549133852124214
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011192308738827705
      

      outcome:

      passed
      
  • 📄 test_utils_ipy.py

    Function: test_devices_repr_fallback_and_ignore

    • Test 224

      📌 Setup phase

      duration:

      0.0007567037828266621
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007995371706783772
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002702591009438038
      

      outcome:

      passed
      
  • 📄 test_utils_jsonext.py

    Function: test_json_validate_save_load

    • Test 225
      params: input_obj="[1 2 3]", expected=[1, 2, 3]

      📌 Runtime Parameters

      params:
        input_obj: [1 2 3]
        expected:
          - 1
          - 2
          - 3
      id: input_obj0-expected0
      

      📌 Setup phase

      duration:

      0.0008409740403294563
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000638927798718214
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000212149228900671
      

      outcome:

      passed
      
    • Test 226
      params: input_obj="42", expected=42

      📌 Runtime Parameters

      params:
        input_obj: 42
        expected: 42
      id: input_obj1-42
      

      📌 Setup phase

      duration:

      0.0006534559652209282
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004072031006217003
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023110676556825638
      

      outcome:

      passed
      
    • Test 227
      params: input_obj="(1-1j)", expected={"real": 1.0, "imag": -1.0}

      📌 Runtime Parameters

      params:
        input_obj: (1-1j)
        expected:
          real: 1.0
          imag: -1.0
      id: (1-1j)-expected2
      

      📌 Setup phase

      duration:

      0.0005893241614103317
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004266868345439434
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018626777455210686
      

      outcome:

      passed
      
    • Test 228
      params: input_obj="/tmp/file.txt", expected="/tmp/file.txt"

      📌 Runtime Parameters

      params:
        input_obj: /tmp/file.txt
        expected: /tmp/file.txt
      id: input_obj3-/tmp/file.txt
      

      📌 Setup phase

      duration:

      0.0005960278213024139
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00035777315497398376
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017154822126030922
      

      outcome:

      passed
      
    • Test 229
      params: input_obj="{1, 2, 3}", expected=[1, 2, 3]

      📌 Runtime Parameters

      params:
        input_obj: {1, 2, 3}
        expected:
          - 1
          - 2
          - 3
      id: input_obj4-expected4
      

      📌 Setup phase

      duration:

      0.0005708732642233372
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003934688866138458
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001732851378619671
      

      outcome:

      passed
      
    • Test 230
      params: input_obj="{'a': array([10, 20])}", expected={"a": [10, 20]}

      📌 Runtime Parameters

      params:
        input_obj: {'a': array([10, 20])}
        expected:
          a:
            - 10
            - 20
      id: input_obj5-expected5
      

      📌 Setup phase

      duration:

      0.0006001461297273636
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003928598016500473
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001892251893877983
      

      outcome:

      passed
      
    • Test 231
      params: input_obj="{'c': (2+3j)}", expected={"c": {"real": 2.0, "imag": 3.0}}

      📌 Runtime Parameters

      params:
        input_obj: {'c': (2+3j)}
        expected:
          c:
            real: 2.0
            imag: 3.0
      id: input_obj6-expected6
      

      📌 Setup phase

      duration:

      0.0007037329487502575
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00041440408676862717
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001791343092918396
      

      outcome:

      passed
      
    • Test 232
      params: input_obj="{'nested': {'arr': array(10, 20],\n [30, 40), 'complex_num': (-1+5j), 'files': [PosixPath('/file1'), PosixPath('/file2')], 'set_values': {200, 100}, 'inner': {'num': 7}}}", expected={"nested": {"arr": 10, 20], [30, 40, "complex_num": {"real": -1.0, "imag": 5.0}, "files": ["/file1", "/file2"], "set_values": [100, 200], "inner": {"num": 7}}}

      📌 Runtime Parameters

      params:
        input_obj: {'nested': {'arr': array([[10, 20],
             [30, 40]]), 'complex_num': (-1+5j), 'files': [PosixPath('/file1'), PosixPath('/file2')], 'set_values': {200, 100}, 'inner': {'num': 7}}}
        expected:
          nested:
            arr:
              -           - 10
                - 20
              -           - 30
                - 40
            complex_num:
              real: -1.0
              imag: 5.0
            files:
              - /file1
              - /file2
            set_values:
              - 100
              - 200
            inner:
              num: 7
      id: input_obj7-expected7
      

      📌 Setup phase

      duration:

      0.0005799541249871254
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005826298147439957
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001850072294473648
      

      outcome:

      passed
      
  • 📄 test_utils_lazypv.py

    Function: test_getattr

    • Test 233

      📌 Setup phase

      duration:

      0.00013720989227294922
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003044125624001026
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000124265905469656
      

      outcome:

      passed
      
  • 📄 test_utils_logcfg.py

    Function: test_custom_log_outputs

    • Test 234
      params: levelname="LONG", logfunc=" at 0x7f2adfad9670>", message="This is a LONG message"

      📌 Runtime Parameters

      params:
        levelname: LONG
        logfunc: <function <lambda> at 0x7f2adfad9670>
        message: This is a LONG message
      id: LONG-<lambda>-This is a LONG message
      

      📌 Setup phase

      duration:

      0.0015013432130217552
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008149272762238979
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023195194080471992
      

      outcome:

      passed
      
    • Test 235
      params: levelname="ENLARGE", logfunc=" at 0x7f2adfad9700>", message="Please ENLARGE this!"

      📌 Runtime Parameters

      params:
        levelname: ENLARGE
        logfunc: <function <lambda> at 0x7f2adfad9700>
        message: Please ENLARGE this!
      id: ENLARGE-<lambda>-Please ENLARGE this!
      

      📌 Setup phase

      duration:

      0.0004236898384988308
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004775780253112316
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024906406179070473
      

      outcome:

      passed
      
  • 📄 test_utils_logign.py

    Function: test_ignore_log_msg_behavior

    • Test 237
      params: levelname="WARNING", msg_to_ignore="This should be ignored", msg_to_keep="This should appear"

      📌 Runtime Parameters

      params:
        levelname: WARNING
        msg_to_ignore: This should be ignored
        msg_to_keep: This should appear
      id: WARNING-This should be ignored-This should appear
      

      📌 Setup phase

      duration:

      0.000623414758592844
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007951026782393456
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000245432835072279
      

      outcome:

      passed
      
    • Test 238
      params: levelname="ENLARGE", msg_to_ignore="ENLARGE this", msg_to_keep="Keep this ENLARGE"

      📌 Runtime Parameters

      params:
        levelname: ENLARGE
        msg_to_ignore: ENLARGE this
        msg_to_keep: Keep this ENLARGE
      id: ENLARGE-ENLARGE this-Keep this ENLARGE
      

      📌 Setup phase

      duration:

      0.0004029916599392891
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004427512176334858
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00022584199905395508
      

      outcome:

      passed
      

    Function: test_ignore_only_by_level

    • Test 239

      📌 Setup phase

      duration:

      0.00023589981719851494
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004033660516142845
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016458705067634583
      

      outcome:

      passed
      

    Function: test_ignore_only_by_msg

    • Test 240

      📌 Setup phase

      duration:

      0.0002467031590640545
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00036111101508140564
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021007610484957695
      

      outcome:

      passed
      

    Function: test_filter_removed_after_context

    • Test 241

      📌 Setup phase

      duration:

      0.00023068580776453018
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003945082426071167
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017506908625364304
      

      outcome:

      passed
      
  • 📄 test_utils_metaclasses.py

    Function: test_combine_classes_combines_methods

    • Test 242

      📌 Setup phase

      duration:

      0.00012991297990083694
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019799638539552689
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010487018153071404
      

      outcome:

      passed
      

    Function: test_registryabc_combines_registrymeta_and_abcmeta

    • Test 243

      📌 Setup phase

      duration:

      0.0001309216022491455
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.005122917704284191
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012183608487248421
      

      outcome:

      passed
      
  • 📄 test_utils_namespace.py

    Function: test_namespace_pretty_repr_mixed_and_nested

    • Test 244

      📌 Setup phase

      duration:

      0.00014436198398470879
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00027584005147218704
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010615168139338493
      

      outcome:

      passed
      
  • 📄 test_utils_npy.py

    Function: test_nice_arange

    • Test 245
      params: start=0, stop=5, step=1, expected="[0. 1. 2. 3. 4. 5.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 1
        expected: [0. 1. 2. 3. 4. 5.]
      id: 0-5-1-expected0
      

      📌 Setup phase

      duration:

      0.0003695688210427761
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.019173850771039724
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002514701336622238
      

      outcome:

      passed
      
    • Test 247
      params: start=1, stop=2, step=0.3, expected="[1. 1.33333333 1.66666667 2. ]"

      📌 Runtime Parameters

      params:
        start: 1
        stop: 2
        step: 0.3
        expected: [1.         1.33333333 1.66666667 2.        ]
      id: 1-2-0.3-expected2
      

      📌 Setup phase

      duration:

      0.00036948686465620995
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004336233250796795
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019705109298229218
      

      outcome:

      passed
      

    Function: test_nice_linspace

    • Test 250
      params: start=0, stop=10, num=4, expected="[ 0. 2.5 5. 7.5 10. ]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 10
        num: 4
        expected: [ 0.   2.5  5.   7.5 10. ]
      id: 0-10-4-expected0
      

      📌 Setup phase

      duration:

      0.00036373408511281013
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003659091889858246
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019595911726355553
      

      outcome:

      passed
      
    • Test 251
      params: start=5, stop=15, num=2, expected="[ 5. 10. 15.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 15
        num: 2
        expected: [ 5. 10. 15.]
      id: 5-15-2-expected1
      

      📌 Setup phase

      duration:

      0.00035923905670642853
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033726170659065247
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019615469500422478
      

      outcome:

      passed
      
    • Test 252
      params: start=-5, stop=5, num=4, expected="[-5. -2.5 0. 2.5 5. ]"

      📌 Runtime Parameters

      params:
        start: -5
        stop: 5
        num: 4
        expected: [-5.  -2.5  0.   2.5  5. ]
      id: -5-5-4-expected2
      

      📌 Setup phase

      duration:

      0.0003335466608405113
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037436699494719505
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018379976972937584
      

      outcome:

      passed
      
    • Test 253
      params: start=0, stop=1, num=3, expected="[0. 0.33333333 0.66666667 1. ]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 1
        num: 3
        expected: [0.         0.33333333 0.66666667 1.        ]
      id: 0-1-3-expected3
      

      📌 Setup phase

      duration:

      0.00033459626138210297
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003155008889734745
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018008286133408546
      

      outcome:

      passed
      
    • Test 254
      params: start=2, stop=2, num=3, expected="[2. 2. 2. 2.]"

      📌 Runtime Parameters

      params:
        start: 2
        stop: 2
        num: 3
        expected: [2. 2. 2. 2.]
      id: 2-2-3-expected4
      

      📌 Setup phase

      duration:

      0.00034313276410102844
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003287210129201412
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019202707335352898
      

      outcome:

      passed
      
    • Test 255
      params: start=3, stop=0, num=3, expected="[3. 2. 1. 0.]"

      📌 Runtime Parameters

      params:
        start: 3
        stop: 0
        num: 3
        expected: [3. 2. 1. 0.]
      id: 3-0-3-expected5
      

      📌 Setup phase

      duration:

      0.0003301347605884075
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003315238282084465
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017515616491436958
      

      outcome:

      passed
      
    • Test 256
      params: start=0, stop=1, num=0, expected="[0.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 1
        num: 0
        expected: [0.]
      id: 0-1-0-expected6
      

      📌 Setup phase

      duration:

      0.00033255014568567276
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033238716423511505
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018290802836418152
      

      outcome:

      passed
      

    Function: test_nice_steps_centered

    • Test 257
      params: start=-2, stop=2, step=2, endpoint=true, expected="[-2. 0. 2.]"

      📌 Runtime Parameters

      params:
        start: -2
        stop: 2
        step: 2
        endpoint: True
        expected: [-2.  0.  2.]
      id: -2-2-2-True-expected0
      

      📌 Setup phase

      duration:

      0.0003774021752178669
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003589126281440258
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020632799714803696
      

      outcome:

      passed
      
    • Test 258
      params: start=0, stop=5, step=2, endpoint=true, expected="[0. 2. 4.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: True
        expected: [0. 2. 4.]
      id: 0-5-2-True-expected1
      

      📌 Setup phase

      duration:

      0.00038334913551807404
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033526914194226265
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019175978377461433
      

      outcome:

      passed
      
    • Test 259
      params: start=0, stop=5, step=2, endpoint=false, expected="[0. 2.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: False
        expected: [0. 2.]
      id: 0-5-2-False-expected2
      

      📌 Setup phase

      duration:

      0.0003728112205862999
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033511873334646225
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019799871370196342
      

      outcome:

      passed
      
    • Test 260
      params: start=-1, stop=2, step=1.5, endpoint=true, expected="[-1.5 0. 1.5]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: True
        expected: [-1.5  0.   1.5]
      id: -1-2-1.5-True-expected3
      

      📌 Setup phase

      duration:

      0.0003853146918118
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00032011978328227997
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020829075947403908
      

      outcome:

      passed
      

    Function: test_nice_steps_left_aligned

    • Test 263
      params: start=-1, stop=2, step=1.5, endpoint=true, expected="[-1. 0.5 2. ]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: True
        expected: [-1.   0.5  2. ]
      id: -1-2-1.5-True-expected2
      

      📌 Setup phase

      duration:

      0.0003931797109544277
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037089502438902855
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020223343744874
      

      outcome:

      passed
      
    • Test 264
      params: start=-1, stop=2, step=1.5, endpoint=false, expected="[-1. 0.5]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: False
        expected: [-1.   0.5]
      id: -1-2-1.5-False-expected3
      

      📌 Setup phase

      duration:

      0.0003723828122019768
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003230092115700245
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018615182489156723
      

      outcome:

      passed
      

    Function: test_within_scalar

    • Test 275
      params: val=5, vmin=0, vmax=10, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: 0
        vmax: 10
        expected: True
      id: 5-0-10-True
      

      📌 Setup phase

      duration:

      0.00035852426663041115
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015369802713394165
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017731310799717903
      

      outcome:

      passed
      
    • Test 276
      params: val=5, vmin=6, vmax=10, expected=false

      📌 Runtime Parameters

      params:
        val: 5
        vmin: 6
        vmax: 10
        expected: False
      id: 5-6-10-False
      

      📌 Setup phase

      duration:

      0.0003220168873667717
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016510393470525742
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018138904124498367
      

      outcome:

      passed
      
    • Test 277
      params: val=5, vmin=null, vmax=10, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: None
        vmax: 10
        expected: True
      id: 5-None-10-True
      

      📌 Setup phase

      duration:

      0.00031606294214725494
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014024600386619568
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001653740182518959
      

      outcome:

      passed
      
    • Test 278
      params: val=5, vmin=0, vmax=null, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: 0
        vmax: None
        expected: True
      id: 5-0-None-True
      

      📌 Setup phase

      duration:

      0.0002998011186718941
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013176724314689636
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017775408923625946
      

      outcome:

      passed
      
    • Test 279
      params: val=5, vmin=null, vmax=null, expected=true

      📌 Runtime Parameters

      params:
        val: 5
        vmin: None
        vmax: None
        expected: True
      id: 5-None-None-True
      

      📌 Setup phase

      duration:

      0.00030899234116077423
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017104577273130417
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016680825501680374
      

      outcome:

      passed
      

    Function: test_within_fraction

    • Test 280
      params: data=[1, 2, 3, 4, 5], vmin=2, vmax=5, expected=0.6

      📌 Runtime Parameters

      params:
        data:
          - 1
          - 2
          - 3
          - 4
          - 5
        vmin: 2
        vmax: 5
        expected: 0.6
      id: data0-2-5-0.6
      

      📌 Setup phase

      duration:

      0.0003087017685174942
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000286933034658432
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018370896577835083
      

      outcome:

      passed
      
    • Test 281
      params: data=[10, 20, 30], vmin=5, vmax=25, expected=0.6666666666666666

      📌 Runtime Parameters

      params:
        data:
          - 10
          - 20
          - 30
        vmin: 5
        vmax: 25
        expected: 0.6666666666666666
      id: data1-5-25-0.6666666666666666
      

      📌 Setup phase

      duration:

      0.0003353138454258442
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00024351989850401878
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018061790615320206
      

      outcome:

      passed
      
    • Test 282
      params: data=[1, 2, 3], vmin=null, vmax=2, expected=0.3333333333333333

      📌 Runtime Parameters

      params:
        data:
          - 1
          - 2
          - 3
        vmin: None
        vmax: 2
        expected: 0.3333333333333333
      id: data2-None-2-0.3333333333333333
      

      📌 Setup phase

      duration:

      0.00032576825469732285
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022866297513246536
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016809580847620964
      

      outcome:

      passed
      
    • Test 283
      params: data=[], vmin=0, vmax=1, expected=0

      📌 Runtime Parameters

      params:
        data:
      []
        vmin: 0
        vmax: 1
        expected: 0
      id: data3-0-1-0
      

      📌 Setup phase

      duration:

      0.0003359569236636162
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022976892068982124
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017526187002658844
      

      outcome:

      passed
      

    Function: test_fraction_to_percentage

    • Test 284
      params: fraction=0.456, ndigits=1, expected=45.6

      📌 Runtime Parameters

      params:
        fraction: 0.456
        ndigits: 1
        expected: 45.6
      id: 0.456-1-45.6
      

      📌 Setup phase

      duration:

      0.0002757529728114605
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016511883586645126
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015627825632691383
      

      outcome:

      passed
      
    • Test 285
      params: fraction=0.12345, ndigits=2, expected=12.35

      📌 Runtime Parameters

      params:
        fraction: 0.12345
        ndigits: 2
        expected: 12.35
      id: 0.12345-2-12.35
      

      📌 Setup phase

      duration:

      0.00026199501007795334
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015499815344810486
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015306472778320312
      

      outcome:

      passed
      
    • Test 286
      params: fraction=0.9999, ndigits=0, expected=100.0

      📌 Runtime Parameters

      params:
        fraction: 0.9999
        ndigits: 0
        expected: 100.0
      id: 0.9999-0-100.0
      

      📌 Setup phase

      duration:

      0.00026187673211097717
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001397542655467987
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017706165090203285
      

      outcome:

      passed
      

    Function: test_get_dtype

    • Test 287
      params: val="[1 2 3]", expected=""

      📌 Runtime Parameters

      params:
        val: [1 2 3]
        expected: <class 'numpy.ndarray'>
      id: val0-ndarray
      

      📌 Setup phase

      duration:

      0.00025490159168839455
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014107581228017807
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001856079325079918
      

      outcome:

      passed
      
    • Test 288
      params: val=[1, 2, 3], expected=""

      📌 Runtime Parameters

      params:
        val:
          - 1
          - 2
          - 3
        expected: <class 'list'>
      id: val1-list
      

      📌 Setup phase

      duration:

      0.000239628367125988
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014065485447645187
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001385081559419632
      

      outcome:

      passed
      
    • Test 289
      params: val=3.14, expected=""

      📌 Runtime Parameters

      params:
        val: 3.14
        expected: <class 'float'>
      id: 3.14-float
      

      📌 Setup phase

      duration:

      0.00022982200607657433
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017131492495536804
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001460229977965355
      

      outcome:

      passed
      

    Function: test_get_shape

    • Test 290
      params: val="1 2]\n [3 4", expected=[2, 2]

      📌 Runtime Parameters

      params:
        val: [[1 2]
       [3 4]]
        expected:
          - 2
          - 2
      id: val0-expected0
      

      📌 Setup phase

      duration:

      0.0002210652455687523
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013502268120646477
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015964312478899956
      

      outcome:

      passed
      
    • Test 291
      params: val=[1, 2, 3], expected=[]

      📌 Runtime Parameters

      params:
        val:
          - 1
          - 2
          - 3
        expected:
      []
      id: val1-expected1
      

      📌 Setup phase

      duration:

      0.0002505229786038399
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001397780142724514
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001687849871814251
      

      outcome:

      passed
      
    • Test 292
      params: val=42, expected=[]

      📌 Runtime Parameters

      params:
        val: 42
        expected:
      []
      id: 42-expected2
      

      📌 Setup phase

      duration:

      0.0002466002479195595
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001399340108036995
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001449831761419773
      

      outcome:

      passed
      

    Function: test_is_array

    • Test 293
      params: val="[1 2 3]", expected=true

      📌 Runtime Parameters

      params:
        val: [1 2 3]
        expected: True
      id: val0-True
      

      📌 Setup phase

      duration:

      0.00021333899348974228
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013761036098003387
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001624859869480133
      

      outcome:

      passed
      
    • Test 294
      params: val=[1, 2, 3], expected=false

      📌 Runtime Parameters

      params:
        val:
          - 1
          - 2
          - 3
        expected: False
      id: val1-False
      

      📌 Setup phase

      duration:

      0.0002498570829629898
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013889605179429054
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013682199642062187
      

      outcome:

      passed
      
    • Test 295
      params: val=42, expected=false

      📌 Runtime Parameters

      params:
        val: 42
        expected: False
      id: 42-False
      

      📌 Setup phase

      duration:

      0.00021542515605688095
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023654988035559654
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00024974578991532326
      

      outcome:

      passed
      
  • 📄 test_utils_path.py

    Function: test_can_create_all_files_user_says_yes

    • Test 296

      📌 Setup phase

      duration:

      0.0001980629749596119
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007820003665983677
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020608585327863693
      

      outcome:

      passed
      

    Function: test_can_create_all_files_user_says_no

    • Test 297

      📌 Setup phase

      duration:

      0.00020040571689605713
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006200904026627541
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017813220620155334
      

      outcome:

      passed
      

    Function: test_make_missing_dir_creates_folder

    • Test 298

      📌 Setup phase

      duration:

      0.0002515288069844246
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007329811342060566
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019344594329595566
      

      outcome:

      passed
      

    Function: test_glob_files_returns_matching_files_only

    • Test 299

      📌 Setup phase

      duration:

      0.00021317508071660995
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0014758352190256119
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001942007802426815
      

      outcome:

      passed
      

    Function: test_filter_files_excludes_directories

    • Test 300

      📌 Setup phase

      duration:

      0.00020807795226573944
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0010890262201428413
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020434195175766945
      

      outcome:

      passed
      
  • 📄 test_utils_picklio.py

    Function: test_pickle_and_unpickle

    • Test 301
      params: test_obj={"a": 1, "b": [2, 3], "c": {"world": "ok"}}

      📌 Runtime Parameters

      params:
        test_obj:
          a: 1
          b:
            - 2
            - 3
          c:
            world: ok
      id: test_obj0
      

      📌 Setup phase

      duration:

      0.0009960168972611427
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000529916025698185
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0003060312010347843
      

      outcome:

      passed
      
    • Test 302
      params: test_obj=[1, 2, 3, 4, 5]

      📌 Runtime Parameters

      params:
        test_obj:
          - 1
          - 2
          - 3
          - 4
          - 5
      id: test_obj1
      

      📌 Setup phase

      duration:

      0.0006721103563904762
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00031720101833343506
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016412930563092232
      

      outcome:

      passed
      
    • Test 303
      params: test_obj="simple string"

      📌 Runtime Parameters

      params:
        test_obj: simple string
      id: simple string
      

      📌 Setup phase

      duration:

      0.0005419990047812462
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00030882703140378
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016461126506328583
      

      outcome:

      passed
      
    • Test 304
      params: test_obj=42

      📌 Runtime Parameters

      params:
        test_obj: 42
      id: 42
      

      📌 Setup phase

      duration:

      0.0005529290065169334
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006773532368242741
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017317011952400208
      

      outcome:

      passed
      
    • Test 305
      params: test_obj=3.14159

      📌 Runtime Parameters

      params:
        test_obj: 3.14159
      id: 3.14159
      

      📌 Setup phase

      duration:

      0.0006061838939785957
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028203101828694344
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001670760102570057
      

      outcome:

      passed
      
    • Test 306
      params: test_obj=[true, false, null]

      📌 Runtime Parameters

      params:
        test_obj:
          - True
          - (vide)
          - (vide)
      id: test_obj5
      

      📌 Setup phase

      duration:

      0.0005466686561703682
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002781050279736519
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001650252379477024
      

      outcome:

      passed
      
    • Test 307
      params: test_obj={"complex": [{"list": [1, 2]}, {"dict": {"x": 10}}]}

      📌 Runtime Parameters

      params:
        test_obj:
          complex:
            -         list:
                - 1
                - 2
            -         dict:
                x: 10
      id: test_obj6
      

      📌 Setup phase

      duration:

      0.0005423030816018581
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003027813509106636
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016983691602945328
      

      outcome:

      passed
      
  • 📄 test_utils_printing.py

    Function: test_maxlen_valid

    • Test 308
      params: seq=["a", "abc", ""], expected=3

      📌 Runtime Parameters

      params:
        seq:
          - a
          - abc
          - (vide)
        expected: 3
      id: seq0-3
      

      📌 Setup phase

      duration:

      0.00027607986703515053
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001475880853831768
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001428411342203617
      

      outcome:

      passed
      
    • Test 309
      params: seq=[], expected=0

      📌 Runtime Parameters

      params:
        seq:
      []
        expected: 0
      id: seq1-0
      

      📌 Setup phase

      duration:

      0.00024103093892335892
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013916008174419403
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015220977365970612
      

      outcome:

      passed
      
    • Test 310
      params: seq=1, 2], [3], [4, 5, 6, expected=3

      📌 Runtime Parameters

      params:
        seq:
          -       - 1
            - 2
          -       - 3
          -       - 4
            - 5
            - 6
        expected: 3
      id: seq2-3
      

      📌 Setup phase

      duration:

      0.00021917466074228287
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014326302334666252
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001394590362906456
      

      outcome:

      passed
      
    • Test 311
      params: seq=[{"a": 2, "b": 3}, {}, {"c": 4}], expected=2

      📌 Runtime Parameters

      params:
        seq:
          -       a: 2
            b: 3
          - (vide)
          -       c: 4
        expected: 2
      id: seq3-2
      

      📌 Setup phase

      duration:

      0.00022672303020954132
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014282390475273132
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014111585915088654
      

      outcome:

      passed
      

    Function: test_strlen

    • Test 312
      params: value=42, expected=2

      📌 Runtime Parameters

      params:
        value: 42
        expected: 2
      id: 42-2
      

      📌 Setup phase

      duration:

      0.00022110529243946075
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015825824812054634
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013387715443968773
      

      outcome:

      passed
      
    • Test 313
      params: value="hello", expected=5

      📌 Runtime Parameters

      params:
        value: hello
        expected: 5
      id: hello-5
      

      📌 Setup phase

      duration:

      0.0002271542325615883
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013872608542442322
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001360108144581318
      

      outcome:

      passed
      
    • Test 314
      params: value=false, expected=5

      📌 Runtime Parameters

      params:
        value: False
        expected: 5
      id: False-5
      

      📌 Setup phase

      duration:

      0.0002252119593322277
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013488205149769783
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013888999819755554
      

      outcome:

      passed
      
    • Test 315
      params: value=null, expected=4

      📌 Runtime Parameters

      params:
        value: None
        expected: 4
      id: None-4
      

      📌 Setup phase

      duration:

      0.00023668911308050156
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013223011046648026
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013970909640192986
      

      outcome:

      passed
      
    • Test 316
      params: value=[1, 2, 3], expected=9

      📌 Runtime Parameters

      params:
        value:
          - 1
          - 2
          - 3
        expected: 9
      id: value4-9
      

      📌 Setup phase

      duration:

      0.00021946290507912636
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013280101120471954
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001359507441520691
      

      outcome:

      passed
      
    • Test 317
      params: value={"a": 1}, expected=8

      📌 Runtime Parameters

      params:
        value:
          a: 1
        expected: 8
      id: value5-8
      

      📌 Setup phase

      duration:

      0.0002252599224448204
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001378157176077366
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013379007577896118
      

      outcome:

      passed
      
    • Test 318
      params: value=[1, 2], expected=6

      📌 Runtime Parameters

      params:
        value:
          - 1
          - 2
        expected: 6
      id: value6-6
      

      📌 Setup phase

      duration:

      0.00020974176004529
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001338147558271885
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00023732567206025124
      

      outcome:

      passed
      
    • Test 319
      params: value="", expected=0

      📌 Runtime Parameters

      params:
        value: None
        expected: 0
      id: -0
      

      📌 Setup phase

      duration:

      0.000420526135712862
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025993306189775467
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00026196520775556564
      

      outcome:

      passed
      
    • Test 320
      params: value="this is a phrase", expected=16

      📌 Runtime Parameters

      params:
        value: this is a phrase
        expected: 16
      id: this is a phrase-16
      

      📌 Setup phase

      duration:

      0.0004205917939543724
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025493791326880455
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0004174499772489071
      

      outcome:

      passed
      

    Function: test_maxstrlen

    • Test 321
      params: seq=[1, true, 3.1415], expected=6

      📌 Runtime Parameters

      params:
        seq:
          - 1
          - True
          - 3.1415
        expected: 6
      id: seq0-6
      

      📌 Setup phase

      duration:

      0.00042460812255740166
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002867518924176693
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00025867531076073647
      

      outcome:

      passed
      
    • Test 322
      params: seq=["aa", "bbb", "c"], expected=3

      📌 Runtime Parameters

      params:
        seq:
          - aa
          - bbb
          - c
        expected: 3
      id: seq1-3
      

      📌 Setup phase

      duration:

      0.0004121260717511177
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00026392610743641853
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002617808058857918
      

      outcome:

      passed
      
    • Test 323
      params: seq=1, 2], [], [1, 2, 3, expected=9

      📌 Runtime Parameters

      params:
        seq:
          -       - 1
            - 2
          - (vide)
          -       - 1
            - 2
            - 3
        expected: 9
      id: seq2-9
      

      📌 Setup phase

      duration:

      0.0004100971855223179
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002752058207988739
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002531600184738636
      

      outcome:

      passed
      
    • Test 324
      params: seq=[{"a": 1}, {}, {"a": 1, "b": 2}], expected=16

      📌 Runtime Parameters

      params:
        seq:
          -       a: 1
          - (vide)
          -       a: 1
            b: 2
        expected: 16
      id: seq3-16
      

      📌 Setup phase

      duration:

      0.00043221237137913704
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028392719104886055
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002548010088503361
      

      outcome:

      passed
      
    • Test 325
      params: seq=[null, false, 12345], expected=5

      📌 Runtime Parameters

      params:
        seq:
          - (vide)
          - (vide)
          - 12345
        expected: 5
      id: seq4-5
      

      📌 Setup phase

      duration:

      0.00040993280708789825
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025998707860708237
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002580569125711918
      

      outcome:

      passed
      

    Function: test_transpose_matrix

    • Test 326
      params: data=1, 2], [3, 4, expected=1, 3], [2, 4

      📌 Runtime Parameters

      params:
        data:
          -       - 1
            - 2
          -       - 3
            - 4
        expected:
          -       - 1
            - 3
          -       - 2
            - 4
      id: data0-expected0
      

      📌 Setup phase

      duration:

      0.0004131076857447624
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002825628034770489
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002462351694703102
      

      outcome:

      passed
      
    • Test 327

      📌 Runtime Parameters

      params:
        data:
          -       - a
            - b
          -       - c
            - d
        expected:
          -       - a
            - c
          -       - b
            - d
      id: data1-expected1
      

      📌 Setup phase

      duration:

      0.00040728505700826645
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002785022370517254
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002653268165886402
      

      outcome:

      passed
      
    • Test 328
      params: data={"x": 1}, {"y": 2}], [{"x": 3}, {"y": 4}, expected={"x": 1}, {"x": 3}], [{"y": 2}, {"y": 4}

      📌 Runtime Parameters

      params:
        data:
          -       -         x: 1
            -         y: 2
          -       -         x: 3
            -         y: 4
        expected:
          -       -         x: 1
            -         x: 3
          -       -         y: 2
            -         y: 4
      id: data2-expected2
      

      📌 Setup phase

      duration:

      0.0004105749540030956
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00027701398357748985
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00026368116959929466
      

      outcome:

      passed
      

    Function: test_prepend

    • Test 329
      params: initial=[1, 2, 3], prepend=1, expected=[1, 2, 3]

      📌 Runtime Parameters

      params:
        initial:
          - 1
          - 2
          - 3
        prepend: 1
        expected:
          - 1
          - 2
          - 3
      id: initial0-1-expected0
      

      📌 Setup phase

      duration:

      0.0005035377107560635
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002611507661640644
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002773599699139595
      

      outcome:

      passed
      
    • Test 330
      params: initial=["a", "b", "c"], prepend="a", expected=["a", "b", "c"]

      📌 Runtime Parameters

      params:
        initial:
          - a
          - b
          - c
        prepend: a
        expected:
          - a
          - b
          - c
      id: initial1-a-expected1
      

      📌 Setup phase

      duration:

      0.00046595605090260506
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00025961408391594887
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002951030619442463
      

      outcome:

      passed
      
    • Test 331
      params: initial=[{"a": 1}, {"b": 2}], prepend={"a": 1}, expected=[{"a": 1}, {"b": 2}]

      📌 Runtime Parameters

      params:
        initial:
          -       a: 1
          -       b: 2
        prepend:
          a: 1
        expected:
          -       a: 1
          -       b: 2
      id: initial2-prepend2-expected2
      

      📌 Setup phase

      duration:

      0.0005198577418923378
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00027463678270578384
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00028801942244172096
      

      outcome:

      passed
      
    • Test 332
      params: initial=1], [2], [3, prepend=[1], expected=1], [2], [3

      📌 Runtime Parameters

      params:
        initial:
          -       - 1
          -       - 2
          -       - 3
        prepend:
          - 1
        expected:
          -       - 1
          -       - 2
          -       - 3
      id: initial3-prepend3-expected3
      

      📌 Setup phase

      duration:

      0.0005233758129179478
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002774200402200222
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002848752774298191
      

      outcome:

      passed
      

    Function: test_fmt_table_line

    • Test 333
      params: entries=["a", "bbb"], widths=[3, 5], expected=" a bbb"

      📌 Runtime Parameters

      params:
        entries:
          - a
          - bbb
        widths:
          - 3
          - 5
        expected:   a   bbb
      id: entries0-widths0-  a   bbb
      

      📌 Setup phase

      duration:

      0.0005221799947321415
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028241612017154694
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00026726117357611656
      

      outcome:

      passed
      
    • Test 334
      params: entries=[1, 2], widths=[2, 2], expected=" 1 2"

      📌 Runtime Parameters

      params:
        entries:
          - 1
          - 2
        widths:
          - 2
          - 2
        expected:  1  2
      id: entries1-widths1- 1  2
      

      📌 Setup phase

      duration:

      0.00048148632049560547
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002945666201412678
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002925088629126549
      

      outcome:

      passed
      
    • Test 335
      params: entries=["long", "val"], widths=[6, 4], expected=" long val"

      📌 Runtime Parameters

      params:
        entries:
          - long
          - val
        widths:
          - 6
          - 4
        expected:   long  val
      id: entries2-widths2-  long  val
      

      📌 Setup phase

      duration:

      0.0004922808147966862
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002791518345475197
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002994779497385025
      

      outcome:

      passed
      
    • Test 336
      params: entries=[true, false], widths=[5, 6], expected=" True False"

      📌 Runtime Parameters

      params:
        entries:
          - True
          - (vide)
        widths:
          - 5
          - 6
        expected:  True  False
      id: entries3-widths3- True  False
      

      📌 Setup phase

      duration:

      0.00046153878793120384
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028631463646888733
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00030076317489147186
      

      outcome:

      passed
      
    • Test 337
      params: entries=[123, 4567], widths=[5, 5], expected=" 123 4567"

      📌 Runtime Parameters

      params:
        entries:
          - 123
          - 4567
        widths:
          - 5
          - 5
        expected:   123  4567
      id: entries4-widths4-  123  4567
      

      📌 Setup phase

      duration:

      0.000500890426337719
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028706202283501625
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002837670035660267
      

      outcome:

      passed
      
    • Test 338
      params: entries=["text with space", "end"], widths=[16, 5], expected=" text with space end"

      📌 Runtime Parameters

      params:
        entries:
          - text with space
          - end
        widths:
          - 16
          - 5
        expected:  text with space   end
      id: entries5-widths5- text with space   end
      

      📌 Setup phase

      duration:

      0.0005102651193737984
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002762279473245144
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00029387185350060463
      

      outcome:

      passed
      
    • Test 339
      params: entries=[{"a": 1}, {"b": 2}], widths=[10, 10], expected=" {'a': 1} {'b': 2}"

      📌 Runtime Parameters

      params:
        entries:
          -       a: 1
          -       b: 2
        widths:
          - 10
          - 10
        expected:   {'a': 1}   {'b': 2}
      id: entries6-widths6-  {'a': 1}   {'b': 2}
      

      📌 Setup phase

      duration:

      0.0004932680167257786
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003001997247338295
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00027096038684248924
      

      outcome:

      passed
      
    • Test 340
      params: entries=1, 2], [3, 4, widths=[10, 10], expected=" [1, 2] [3, 4]"

      📌 Runtime Parameters

      params:
        entries:
          -       - 1
            - 2
          -       - 3
            - 4
        widths:
          - 10
          - 10
        expected:     [1, 2]     [3, 4]
      id: entries7-widths7-    [1, 2]     [3, 4]
      

      📌 Setup phase

      duration:

      0.0005051698535680771
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002803741954267025
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00028094183653593063
      

      outcome:

      passed
      

    Function: test_fmt_label_sep

    • Test 341
      params: widths=[3, 4], line="-", expected="--- ----"

      📌 Runtime Parameters

      params:
        widths:
          - 3
          - 4
        line: -
        expected: --- ----
      id: widths0------ ----
      

      📌 Setup phase

      duration:

      0.0004915078170597553
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00027209194377064705
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0003140498884022236
      

      outcome:

      passed
      
    • Test 342
      params: widths=[2, 3], line="=", expected="== ==="

      📌 Runtime Parameters

      params:
        widths:
          - 2
          - 3
        line: =
        expected: == ===
      id: widths1-=-== ===
      

      📌 Setup phase

      duration:

      0.0005037030205130577
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00028703082352876663
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00028835516422986984
      

      outcome:

      passed
      
    • Test 343
      params: widths=[5, 2], line="*", expected="***** **"

      📌 Runtime Parameters

      params:
        widths:
          - 5
          - 2
        line: *
        expected: ***** **
      id: widths2-*-***** **
      

      📌 Setup phase

      duration:

      0.0005103759467601776
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002909330651164055
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002855239436030388
      

      outcome:

      passed
      

    Function: test_printable_dict_with_header

    • Test 344
      params: d={"medium": true, "very_long_key": 3.14, "x": 1}, header="HeaderTest", expected_lines=["HeaderTest:", "-----------", "medium: True", "very_long_key: 3.14", "x: 1", ""]

      📌 Runtime Parameters

      params:
        d:
          medium: True
          very_long_key: 3.14
          x: 1
        header: HeaderTest
        expected_lines:
          - HeaderTest:
          - -----------
          - medium:        True
          - very_long_key: 3.14
          - x:             1
          - (vide)
      id: d0-HeaderTest-expected_lines0
      

      📌 Setup phase

      duration:

      0.0006422651931643486
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037664221599698067
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0003075278364121914
      

      outcome:

      passed
      

    Function: test_printable_dict_of_dicts

    • Test 345

      📌 Setup phase

      duration:

      0.0002094586379826069
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00041960133239626884
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00020299293100833893
      

      outcome:

      passed
      

    Function: test_printable_table

    • Test 346
      params: data="X1", true, 0.1234, {"meta": "ok"}], ["AnotherSample", false, 98765.4321, {"meta": [1, 2, 3]}], ["Z", null, 0.0, {"meta": {"nested_key": 42}}, labels=["ID", "✓ Success?", "SuperPrecisionValue", "Result Metadata"], expected="A: ID\nB: ✓ Success?\nC: SuperPrecisionValue\nD: Result Metadata\n\n# A B C D\n- ------------- ----- ---------- ----------------------------\n0 X1 True 0.1234 {'meta': 'ok'}\n1 AnotherSample False 98765.4321 {'meta': [1, 2, 3]}\n2 Z None 0.0 {'meta': {'nested_key': 42}}"

      📌 Runtime Parameters

      params:
        data:
          -       - X1
            - True
            - 0.1234
            -         meta: ok
          -       - AnotherSample
            - (vide)
            - 98765.4321
            -         meta:
                - 1
                - 2
                - 3
          -       - Z
            - (vide)
            - (vide)
            -         meta:
                nested_key: 42
        labels:
          - ID
          -  Success?
          - SuperPrecisionValue
          - Result Metadata
        expected: A: ID
      B:  Success?
      C: SuperPrecisionValue
      D: Result Metadata
      
      #             A     B          C                            D
      - ------------- ----- ---------- ----------------------------
      0            X1  True     0.1234               {'meta': 'ok'}
      1 AnotherSample False 98765.4321          {'meta': [1, 2, 3]}
      2             Z  None        0.0 {'meta': {'nested_key': 42}}
      id: data0-labels0-A: ID\nB: \u2713 Success?\nC: SuperPrecisionValue\nD: Result Metadata\n\n#             A     B          C                            D\n- ------------- ----- ---------- ----------------------------\n0            X1  True     0.1234               {'meta': 'ok'}\n1 AnotherSample False 98765.4321          {'meta': [1, 2, 3]}\n2             Z  None        0.0 {'meta': {'nested_key': 42}}
      

      📌 Setup phase

      duration:

      0.0005163634195923805
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005658851005136967
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0003069071099162102
      

      outcome:

      passed
      
  • 📄 test_utils_rangebar.py

    Function: test_full_progress_bar

    • Test 355

      📌 Setup phase

      duration:

      0.0003284118138253689
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002178288996219635
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017189886420965195
      

      outcome:

      passed
      

    Function: test_half_progress_bar

    • Test 356

      📌 Setup phase

      duration:

      0.0002763192169368267
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021943310275673866
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016368180513381958
      

      outcome:

      passed
      

    Function: test_zero_progress_bar

    • Test 357

      📌 Setup phase

      duration:

      0.00025264499709010124
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002049407921731472
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015886686742305756
      

      outcome:

      passed
      

    Function: test_overflow_bar

    • Test 358

      📌 Setup phase

      duration:

      0.0002800310030579567
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018304493278265
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001535750925540924
      

      outcome:

      passed
      

    Function: test_underflow_bar

    • Test 359

      📌 Setup phase

      duration:

      0.00027892179787158966
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018377043306827545
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015395600348711014
      

      outcome:

      passed
      

    Function: test_repr

    • Test 360

      📌 Setup phase

      duration:

      0.00010792398825287819
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013977708294987679
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010040821507573128
      

      outcome:

      passed
      

    Function: test_each_value_separately

    • Test 361
      params: value=0, expected_bar_part=" "

      📌 Runtime Parameters

      params:
        value: 0
        expected_bar_part:           
      id: 0-          
      

      📌 Setup phase

      duration:

      0.00036856113001704216
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019181333482265472
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019458122551441193
      

      outcome:

      passed
      
    • Test 362
      params: value=10, expected_bar_part="█ "

      📌 Runtime Parameters

      params:
        value: 10
        expected_bar_part:          
      id: 10-\u2588         
      

      📌 Setup phase

      duration:

      0.0003497772850096226
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002000490203499794
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018084421753883362
      

      outcome:

      passed
      
    • Test 363
      params: value=25, expected_bar_part="██▌ "

      📌 Runtime Parameters

      params:
        value: 25
        expected_bar_part: ██▌       
      id: 25-\u2588\u2588\u258c       
      

      📌 Setup phase

      duration:

      0.00037710415199398994
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018905801698565483
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019175000488758087
      

      outcome:

      passed
      
    • Test 364
      params: value=27, expected_bar_part="██▊ "

      📌 Runtime Parameters

      params:
        value: 27
        expected_bar_part: ██▊       
      id: 27-\u2588\u2588\u258a       
      

      📌 Setup phase

      duration:

      0.0003575151786208153
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018641632050275803
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019248900935053825
      

      outcome:

      passed
      
    • Test 365
      params: value=49, expected_bar_part="████▉ "

      📌 Runtime Parameters

      params:
        value: 49
        expected_bar_part: ████▉     
      id: 49-\u2588\u2588\u2588\u2588\u2589     
      

      📌 Setup phase

      duration:

      0.00034996727481484413
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018729176372289658
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018304493278265
      

      outcome:

      passed
      
    • Test 366
      params: value=50, expected_bar_part="█████ "

      📌 Runtime Parameters

      params:
        value: 50
        expected_bar_part: █████     
      id: 50-\u2588\u2588\u2588\u2588\u2588     
      

      📌 Setup phase

      duration:

      0.00036244187504053116
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018436694517731667
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00019458774477243423
      

      outcome:

      passed
      
    • Test 367
      params: value=51, expected_bar_part="█████▏ "

      📌 Runtime Parameters

      params:
        value: 51
        expected_bar_part: █████▏    
      id: 51-\u2588\u2588\u2588\u2588\u2588\u258f    
      

      📌 Setup phase

      duration:

      0.000351151917129755
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001849159598350525
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018147891387343407
      

      outcome:

      passed
      
    • Test 368
      params: value=73, expected_bar_part="███████▎ "

      📌 Runtime Parameters

      params:
        value: 73
        expected_bar_part: ███████▎  
      id: 73-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258e  
      

      📌 Setup phase

      duration:

      0.0003515426069498062
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019978918135166168
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018500490114092827
      

      outcome:

      passed
      
    • Test 369
      params: value=75, expected_bar_part="███████▌ "

      📌 Runtime Parameters

      params:
        value: 75
        expected_bar_part: ███████▌  
      id: 75-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  
      

      📌 Setup phase

      duration:

      0.00035951007157564163
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018601492047309875
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018380722030997276
      

      outcome:

      passed
      
    • Test 370
      params: value=90, expected_bar_part="█████████ "

      📌 Runtime Parameters

      params:
        value: 90
        expected_bar_part: █████████ 
      id: 90-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 
      

      📌 Setup phase

      duration:

      0.0003312770277261734
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019328435882925987
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00029822904616594315
      

      outcome:

      passed
      
    • Test 371
      params: value=100, expected_bar_part="██████████"

      📌 Runtime Parameters

      params:
        value: 100
        expected_bar_part: ██████████
      id: 100-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588
      

      📌 Setup phase

      duration:

      0.0003787558525800705
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001934422180056572
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018987618386745453
      

      outcome:

      passed
      
  • 📄 test_utils_readable.py

    Function: test_readable_seconds

    • Test 372
      params: seconds=59.4, expected="59 seconds"

      📌 Runtime Parameters

      params:
        seconds: 59.4
        expected: 59 seconds
      id: 59.4-59 seconds
      

      📌 Setup phase

      duration:

      0.00023561157286167145
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015839096158742905
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016483105719089508
      

      outcome:

      passed
      
    • Test 373
      params: seconds=59.9, expected="60 seconds"

      📌 Runtime Parameters

      params:
        seconds: 59.9
        expected: 60 seconds
      id: 59.9-60 seconds
      

      📌 Setup phase

      duration:

      0.00022391881793737411
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013852771371603012
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014766398817300797
      

      outcome:

      passed
      
    • Test 374
      params: seconds=119.9, expected="120 seconds"

      📌 Runtime Parameters

      params:
        seconds: 119.9
        expected: 120 seconds
      id: 119.9-120 seconds
      

      📌 Setup phase

      duration:

      0.00021165795624256134
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016428763046860695
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013988185673952103
      

      outcome:

      passed
      
    • Test 375
      params: seconds=120.1, expected="2 minutes"

      📌 Runtime Parameters

      params:
        seconds: 120.1
        expected: 2 minutes
      id: 120.1-2 minutes
      

      📌 Setup phase

      duration:

      0.00021354621276259422
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001544528640806675
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013410300016403198
      

      outcome:

      passed
      
    • Test 376
      params: seconds=3599.9, expected="60 minutes"

      📌 Runtime Parameters

      params:
        seconds: 3599.9
        expected: 60 minutes
      id: 3599.9-60 minutes
      

      📌 Setup phase

      duration:

      0.0002192845568060875
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001536281779408455
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000136468093842268
      

      outcome:

      passed
      
    • Test 377
      params: seconds=3600.1, expected="60 minutes"

      📌 Runtime Parameters

      params:
        seconds: 3600.1
        expected: 60 minutes
      id: 3600.1-60 minutes
      

      📌 Setup phase

      duration:

      0.00023248512297868729
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001476062461733818
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001389230601489544
      

      outcome:

      passed
      
    • Test 378
      params: seconds=7199.9, expected="120 minutes"

      📌 Runtime Parameters

      params:
        seconds: 7199.9
        expected: 120 minutes
      id: 7199.9-120 minutes
      

      📌 Setup phase

      duration:

      0.0002360413782298565
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020298687741160393
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001405957154929638
      

      outcome:

      passed
      
    • Test 379
      params: seconds=7200.1, expected="2 hours"

      📌 Runtime Parameters

      params:
        seconds: 7200.1
        expected: 2 hours
      id: 7200.1-2 hours
      

      📌 Setup phase

      duration:

      0.00022208411246538162
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013545295223593712
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001400308683514595
      

      outcome:

      passed
      
    • Test 380
      params: seconds=90.4, expected="90 seconds"

      📌 Runtime Parameters

      params:
        seconds: 90.4
        expected: 90 seconds
      id: 90.4-90 seconds
      

      📌 Setup phase

      duration:

      0.00023004412651062012
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013979896903038025
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001523839309811592
      

      outcome:

      passed
      
    • Test 381
      params: seconds=90.6, expected="91 seconds"

      📌 Runtime Parameters

      params:
        seconds: 90.6
        expected: 91 seconds
      id: 90.6-91 seconds
      

      📌 Setup phase

      duration:

      0.0002240329049527645
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016534561291337013
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00021108891814947128
      

      outcome:

      passed
      
    • Test 382
      params: seconds=121.9, expected="2 minutes"

      📌 Runtime Parameters

      params:
        seconds: 121.9
        expected: 2 minutes
      id: 121.9-2 minutes
      

      📌 Setup phase

      duration:

      0.00022425269708037376
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014070281758904457
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013714376837015152
      

      outcome:

      passed
      
    • Test 383
      params: seconds=1296000.0, expected="2 weeks"

      📌 Runtime Parameters

      params:
        seconds: 1296000.0
        expected: 2 weeks
      id: 1296000.0-2 weeks
      

      📌 Setup phase

      duration:

      0.00024374714121222496
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014236802235245705
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014009885489940643
      

      outcome:

      passed
      
    • Test 384
      params: seconds=2592000.0, expected="4 weeks"

      📌 Runtime Parameters

      params:
        seconds: 2592000.0
        expected: 4 weeks
      id: 2592000.0-4 weeks
      

      📌 Setup phase

      duration:

      0.00023422855883836746
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013947999104857445
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001314808614552021
      

      outcome:

      passed
      
    • Test 385
      params: seconds=2800000.0, expected="5 weeks"

      📌 Runtime Parameters

      params:
        seconds: 2800000.0
        expected: 5 weeks
      id: 2800000.0-5 weeks
      

      📌 Setup phase

      duration:

      0.00022088224068284035
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001410529948771
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014197500422596931
      

      outcome:

      passed
      
    • Test 386
      params: seconds=3888000.0, expected="6 weeks"

      📌 Runtime Parameters

      params:
        seconds: 3888000.0
        expected: 6 weeks
      id: 3888000.0-6 weeks
      

      📌 Setup phase

      duration:

      0.0002100011333823204
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013327226042747498
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013613980263471603
      

      outcome:

      passed
      
    • Test 387
      params: seconds=5097600.0, expected="8 weeks"

      📌 Runtime Parameters

      params:
        seconds: 5097600.0
        expected: 8 weeks
      id: 5097600.0-8 weeks
      

      📌 Setup phase

      duration:

      0.00022225920110940933
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013914704322814941
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014335475862026215
      

      outcome:

      passed
      
    • Test 388
      params: seconds=5184000.0, expected="9 weeks"

      📌 Runtime Parameters

      params:
        seconds: 5184000.0
        expected: 9 weeks
      id: 5184000.0-9 weeks
      

      📌 Setup phase

      duration:

      0.00021742098033428192
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014475127682089806
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001510242000222206
      

      outcome:

      passed
      
    • Test 389
      params: seconds=5270400.0, expected="2 months"

      📌 Runtime Parameters

      params:
        seconds: 5270400.0
        expected: 2 months
      id: 5270400.0-2 months
      

      📌 Setup phase

      duration:

      0.0002152780070900917
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013773608952760696
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001406739465892315
      

      outcome:

      passed
      
    • Test 390
      params: seconds=23328000.0, expected="9 months"

      📌 Runtime Parameters

      params:
        seconds: 23328000.0
        expected: 9 months
      id: 23328000.0-9 months
      

      📌 Setup phase

      duration:

      0.0002170470543205738
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013876426964998245
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013363780453801155
      

      outcome:

      passed
      
    • Test 391
      params: seconds=31104000.0, expected="12 months"

      📌 Runtime Parameters

      params:
        seconds: 31104000.0
        expected: 12 months
      id: 31104000.0-12 months
      

      📌 Setup phase

      duration:

      0.0002131783403456211
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014889612793922424
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014430005103349686
      

      outcome:

      passed
      
    • Test 392
      params: seconds=33696000.0, expected="13 months"

      📌 Runtime Parameters

      params:
        seconds: 33696000.0
        expected: 13 months
      id: 33696000.0-13 months
      

      📌 Setup phase

      duration:

      0.00023010699078440666
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015014689415693283
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013806810602545738
      

      outcome:

      passed
      
    • Test 393
      params: seconds=59616000.0, expected="23 months"

      📌 Runtime Parameters

      params:
        seconds: 59616000.0
        expected: 23 months
      id: 59616000.0-23 months
      

      📌 Setup phase

      duration:

      0.00021528173238039017
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014213193207979202
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014136405661702156
      

      outcome:

      passed
      
    • Test 394
      params: seconds=62208000.0, expected="24 months"

      📌 Runtime Parameters

      params:
        seconds: 62208000.0
        expected: 24 months
      id: 62208000.0-24 months
      

      📌 Setup phase

      duration:

      0.00023424997925758362
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013922899961471558
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013819709420204163
      

      outcome:

      passed
      
    • Test 395
      params: seconds=64208000.0, expected="2 years"

      📌 Runtime Parameters

      params:
        seconds: 64208000.0
        expected: 2 years
      id: 64208000.0-2 years
      

      📌 Setup phase

      duration:

      0.00023659411817789078
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014391029253602028
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001330571249127388
      

      outcome:

      passed
      
  • 📄 test_utils_registry.py

    Function: test_metaclass_creates_weakset

    • Test 396

      📌 Setup phase

      duration:

      0.0001310296356678009
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006450391374528408
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001109028235077858
      

      outcome:

      passed
      

    Function: test_metaclass_tracks_instances

    • Test 397

      📌 Setup phase

      duration:

      0.000107624102383852
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002537551335990429
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010970979928970337
      

      outcome:

      passed
      

    Function: test_registry_inheritance

    • Test 398

      📌 Setup phase

      duration:

      0.00018036691471934319
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005333386361598969
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013590790331363678
      

      outcome:

      passed
      

    Function: test_instance_tracking

    • Test 399

      📌 Setup phase

      duration:

      0.00017859693616628647
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020362203940749168
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013925181701779366
      

      outcome:

      passed
      

    Function: test_collect_instances_recursive

    • Test 400

      📌 Setup phase

      duration:

      0.000168725848197937
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.001096965279430151
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015447894111275673
      

      outcome:

      passed
      

    Function: test_instances_function

    • Test 401

      📌 Setup phase

      duration:

      0.00017582112923264503
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009771729819476604
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013958197087049484
      

      outcome:

      passed
      

    Function: test_non_registry_class_error

    • Test 402

      📌 Setup phase

      duration:

      0.00011133868247270584
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00019075488671660423
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.954115375876427e-05
      

      outcome:

      passed
      

    Function: test_signature_preservation

    • Test 403

      📌 Setup phase

      duration:

      0.0001115347258746624
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00023759203031659126
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011583883315324783
      

      outcome:

      passed
      
  • 📄 test_utils_run_later.py

    Function: test_init_and_repr

    • Test 405

      📌 Setup phase

      duration:

      0.000172395259141922
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00022116303443908691
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012050382792949677
      

      outcome:

      passed
      

    Function: test_call

    • Test 406

      📌 Setup phase

      duration:

      0.00012526800855994225
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016457075253129005
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014121411368250847
      

      outcome:

      passed
      

    Function: test_matmul_with_string

    • Test 407

      📌 Setup phase

      duration:

      0.00010975683107972145
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015998398885130882
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012120930477976799
      

      outcome:

      passed
      

    Function: test_matmul_with_list

    • Test 408

      📌 Setup phase

      duration:

      0.00010980898514389992
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015172502025961876
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010763667523860931
      

      outcome:

      passed
      

    Function: test_matmul_with_single_int

    • Test 409

      📌 Setup phase

      duration:

      0.00011336570605635643
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014913082122802734
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.568082168698311e-05
      

      outcome:

      passed
      

    Function: test_run_at_future_triggered_and_logs

    • Test 410

      📌 Setup phase

      duration:

      0.0003329748287796974
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.20586646487936378
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.652485418
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1735732800.0686758
        msecs: 68.67575645446777
        relativeCreated: -18776710198.932648
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.753059197
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1735732800.1692524
        msecs: 169.2523956298828
        relativeCreated: -18776710098.35601
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Teardown phase

      duration:

      0.00029293494299054146
      

      outcome:

      passed
      

    Function: test_run_at_already_past

    • Test 411

      📌 Setup phase

      duration:

      0.00031570205464959145
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003327028825879097
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018049217760562897
      

      outcome:

      passed
      

    Function: test_run_in_future_triggered_and_logs

    • Test 412

      📌 Setup phase

      duration:

      0.00023842602968215942
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.20173483714461327
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.853602343
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1735732800.0611236
        msecs: 61.12360954284668
        relativeCreated: -18776710206.484795
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.954518150
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1735732800.162028
        msecs: 162.02807426452637
        relativeCreated: -18776710105.58033
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Teardown phase

      duration:

      0.00029191281646490097
      

      outcome:

      passed
      

    Function: test_run_in_past

    • Test 413

      📌 Setup phase

      duration:

      0.0003104237839579582
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003483523614704609
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018301233649253845
      

      outcome:

      passed
      

    Function: test_run_later_with_seconds

    • Test 414

      📌 Setup phase

      duration:

      0.00023303460329771042
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.20160518866032362
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.55085912
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1735740000.057731
        msecs: 57.730913162231445
        relativeCreated: -18769510209.87749
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.155640270
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1735740000.158317
        msecs: 158.31708908081055
        relativeCreated: -18769510109.291313
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Teardown phase

      duration:

      0.0002652467228472233
      

      outcome:

      passed
      

    Function: test_run_later_with_past_datetime

    • Test 415

      📌 Setup phase

      duration:

      0.0003234008327126503
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003352118656039238
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001743743196129799
      

      outcome:

      passed
      

    Function: test_run_at_tqdm_multiple_updates

    • Test 416

      📌 Setup phase

      duration:

      0.0002999301068484783
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.20159573201090097
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.256174850
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.2562668
        msecs: 256.26683235168457
        relativeCreated: 9988.658428192139
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.356715084
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.3568106
        msecs: 356.8105697631836
        relativeCreated: 10089.202165603638
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Teardown phase

      duration:

      0.00029650190845131874
      

      outcome:

      passed
      

    Function: test_today_basic

    • Test 417

      📌 Setup phase

      duration:

      0.00013609789311885834
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0007042046636343002
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013236608356237411
      

      outcome:

      passed
      

    Function: test_tomorrow_basic

    • Test 418

      📌 Setup phase

      duration:

      0.00013475306332111359
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003839177079498768
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012926384806632996
      

      outcome:

      passed
      

    Function: test_yesterday_basic

    • Test 419

      📌 Setup phase

      duration:

      0.00011366279795765877
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00033560488373041153
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010480498895049095
      

      outcome:

      passed
      

    Function: test_today_matmul_string

    • Test 420

      📌 Setup phase

      duration:

      0.00011493125930428505
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00037683872506022453
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010884227231144905
      

      outcome:

      passed
      

    Function: test_tomorrow_matmul_list

    • Test 421

      📌 Setup phase

      duration:

      0.00010840408504009247
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005992129445075989
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001466916874051094
      

      outcome:

      passed
      

    Function: test_yesterday_matmul_single

    • Test 422

      📌 Setup phase

      duration:

      0.00011987518519163132
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00042665377259254456
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011790916323661804
      

      outcome:

      passed
      
  • 📄 test_utils_sendmail.py

    Function: test_sendmail_real_local_verbose

    • Test 423

      📌 Setup phase

      duration:

      0.00014754384756088257
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      1.8004967388696969
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.457319792
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.457536
        msecs: 457.535982131958
        relativeCreated: 10189.927577972412
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.558080519
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.5581965
        msecs: 558.1965446472168
        relativeCreated: 10290.58814048767
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.658616708
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.6587431
        msecs: 658.743143081665
        relativeCreated: 10391.13473892212
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.759158699
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.759264
        msecs: 759.2639923095703
        relativeCreated: 10491.655588150024
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.859792686
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.8600059
        msecs: 860.0058555603027
        relativeCreated: 10592.397451400757
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357520.961573264
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509520.9620156
        msecs: 962.0156288146973
        relativeCreated: 10694.407224655151
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.62729179
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.0628433
        msecs: 62.84332275390625
        relativeCreated: 10795.23491859436
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.163278395
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.1633835
        msecs: 163.38348388671875
        relativeCreated: 10895.775079727173
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.263832380
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.2639422
        msecs: 263.9422416687012
        relativeCreated: 10996.333837509155
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.364378981
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.364483
        msecs: 364.483118057251
        relativeCreated: 11096.874713897705
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.464907355
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.465012
        msecs: 465.0120735168457
        relativeCreated: 11197.4036693573
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.565395860
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.5654962
        msecs: 565.4962062835693
        relativeCreated: 11297.887802124023
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.665938158
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.6660488
        msecs: 666.0487651824951
        relativeCreated: 11398.44036102295
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.766464999
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.7665713
        msecs: 766.5712833404541
        relativeCreated: 11498.962879180908
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.866995038
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.8671083
        msecs: 867.1083450317383
        relativeCreated: 11599.499940872192
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357521.967560300
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509521.9676747
        msecs: 967.674732208252
        relativeCreated: 11700.066328048706
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357522.68097961
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509522.0682003
        msecs: 68.20034980773926
        relativeCreated: 11800.591945648193
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357522.168648687
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509522.1687813
        msecs: 168.78128051757812
        relativeCreated: 11901.172876358032
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Teardown phase

      duration:

      0.0003088810481131077
      

      outcome:

      passed
      
  • 📄 test_utils_shortcut.py

    Function: TestShortcutInitialization

    • Test 424

      📌 Setup phase

      duration:

      0.00042140018194913864
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002206512726843357
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017529819160699844
      

      outcome:

      passed
      
    • Test 425

      📌 Setup phase

      duration:

      0.0002290857955813408
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016701919957995415
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014902418479323387
      

      outcome:

      passed
      

    Function: test_run_method

    • Test 426

      📌 Setup phase

      duration:

      0.000414297915995121
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006414107047021389
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002136719413101673
      

      outcome:

      passed
      

    Function: test_repr_output

    • Test 427

      📌 Setup phase

      duration:

      0.0002037608064711094
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020293425768613815
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001364029012620449
      

      outcome:

      passed
      

    Function: test_source_with_regular_function

    • Test 428

      📌 Setup phase

      duration:

      0.00017481716349720955
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006256606429815292
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015754811465740204
      

      outcome:

      passed
      

    Function: test_source_error_handling

    • Test 429

      📌 Setup phase

      duration:

      0.00018179183825850487
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008536740206182003
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016749417409300804
      

      outcome:

      passed
      

    Function: test_as_shortcut_basic

    • Test 430

      📌 Setup phase

      duration:

      0.00019396189600229263
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015926919877529144
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012907758355140686
      

      outcome:

      passed
      

    Function: test_as_shortcut_with_name

    • Test 431

      📌 Setup phase

      duration:

      0.0001850188709795475
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001562950201332569
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012922938913106918
      

      outcome:

      passed
      

    Function: test_as_shortcut_factory_pattern

    • Test 432

      📌 Setup phase

      duration:

      0.0001696157269179821
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014159176498651505
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012167589738965034
      

      outcome:

      passed
      

    Function: TestShortcutsSingleton

    • Test 433

      📌 Setup phase

      duration:

      0.00030302489176392555
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001376117579638958
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001466008834540844
      

      outcome:

      passed
      
    • Test 434

      📌 Setup phase

      duration:

      0.0002325158566236496
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004032640717923641
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015482399612665176
      

      outcome:

      passed
      
    • Test 435

      📌 Setup phase

      duration:

      0.00027514994144439697
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017860392108559608
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001490563154220581
      

      outcome:

      passed
      
    • Test 436

      📌 Setup phase

      duration:

      0.0002405908890068531
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018005818128585815
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001663598231971264
      

      outcome:

      passed
      
    • Test 437

      📌 Setup phase

      duration:

      0.0002452968619763851
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002436419017612934
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014666514471173286
      

      outcome:

      passed
      

    Function: TestFullIntegration

    • Test 438

      📌 Setup phase

      duration:

      0.0003797011449933052
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006687468849122524
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0002216980792582035
      

      outcome:

      passed
      
    • Test 439

      📌 Setup phase

      duration:

      0.00025843409821391106
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00020701810717582703
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001538391225039959
      

      outcome:

      passed
      

    Function: test_registry_inheritance

    • Test 440

      📌 Setup phase

      duration:

      0.00018573878332972527
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013607926666736603
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013558892533183098
      

      outcome:

      passed
      
  • 📄 test_utils_snapshot.py

    Function: test_snapshot

    • Test 441
      params: test_input="v1", "Visible", false], ["h1", "Hidden", true, expected=["Visible"], kwargs={}

      📌 Runtime Parameters

      params:
        test_input:
          -       - v1
            - Visible
            - (vide)
          -       - h1
            - Hidden
            - True
        expected:
          - Visible
        kwargs:
      {}
      id: exclude_internals
      

      📌 Setup phase

      duration:

      0.00029145507141947746
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006474154070019722
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001796162687242031
      

      outcome:

      passed
      
    • Test 442
      params: test_input="v1", "Visible", false], ["h1", "Hidden", true, expected=["Visible", "Hidden"], kwargs={"include_internal": true}

      📌 Runtime Parameters

      params:
        test_input:
          -       - v1
            - Visible
            - (vide)
          -       - h1
            - Hidden
            - True
        expected:
          - Visible
          - Hidden
        kwargs:
          include_internal: True
      id: include_internals
      

      📌 Setup phase

      duration:

      0.00028100376948714256
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004865969531238079
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017654476687312126
      

      outcome:

      passed
      
    • Test 443
      params: test_input=[], expected=[], kwargs={}

      📌 Runtime Parameters

      params:
        test_input:
      []
        expected:
      []
        kwargs:
      {}
      id: empty_case
      

      📌 Setup phase

      duration:

      0.0002776109613478184
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001429608091711998
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00017027370631694794
      

      outcome:

      passed
      
    • Test 444
      params: test_input="3", "Charlie"], ["1", "Alpha"], ["2", "Beta", expected=["Alpha", "Beta", "Charlie"], kwargs="{'sort_key': }"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 3
            - Charlie
          -       - 1
            - Alpha
          -       - 2
            - Beta
        expected:
          - Alpha
          - Beta
          - Charlie
        kwargs: {'sort_key': <class 'str'>}
      id: sort_str
      

      📌 Setup phase

      duration:

      0.0002751639112830162
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006033801473677158
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00018594088032841682
      

      outcome:

      passed
      
    • Test 445
      params: test_input="z3", "C"], ["a1", "A"], ["m2", "B", expected=["A", "B", "C"], kwargs="{'sort_key': at 0x7f2b3301b280>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - z3
            - C
          -       - a1
            - A
          -       - m2
            - B
        expected:
          - A
          - B
          - C
        kwargs: {'sort_key': <function <lambda> at 0x7f2b3301b280>}
      id: sort_id
      

      📌 Setup phase

      duration:

      0.00028124265372753143
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005774633027613163
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001738220453262329
      

      outcome:

      passed
      
    • Test 446
      params: test_input="3", "Charlie"], ["1", "alpha"], ["2", "Beta", expected=["alpha", "Beta", "Charlie"], kwargs="{'sort_key': at 0x7f2b3301b310>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 3
            - Charlie
          -       - 1
            - alpha
          -       - 2
            - Beta
        expected:
          - alpha
          - Beta
          - Charlie
        kwargs: {'sort_key': <function <lambda> at 0x7f2b3301b310>}
      id: sort_case_insensitive
      

      📌 Setup phase

      duration:

      0.0002815360203385353
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005981000140309334
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016851769760251045
      

      outcome:

      passed
      
    • Test 447
      params: test_input="1", "A"], ["2", "BB"], ["3", "CCC", expected=["A", "BB", "CCC"], kwargs="{'sort_key': at 0x7f2b3301b3a0>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 1
            - A
          -       - 2
            - BB
          -       - 3
            - CCC
        expected:
          - A
          - BB
          - CCC
        kwargs: {'sort_key': <function <lambda> at 0x7f2b3301b3a0>}
      id: sort_length
      

      📌 Setup phase

      duration:

      0.00028022797778248787
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005845683626830578
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016561290249228477
      

      outcome:

      passed
      
    • Test 448
      params: test_input="1", "A"], ["2", "B"], ["3", "C", expected=["C", "B", "A"], kwargs="{'sort_key': at 0x7f2b3301b430>}"

      📌 Runtime Parameters

      params:
        test_input:
          -       - 1
            - A
          -       - 2
            - B
          -       - 3
            - C
        expected:
          - C
          - B
          - A
        kwargs: {'sort_key': <function <lambda> at 0x7f2b3301b430>}
      id: sort_reverse
      

      📌 Setup phase

      duration:

      0.0004120608791708946
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005616489797830582
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001677391119301319
      

      outcome:

      passed
      
  • 📄 test_utils_termtitle.py

    Function: test_terminal_title_with_tmux

    • Test 449

      📌 Setup phase

      duration:

      0.00014962395653128624
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.016174677293747663
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357522.269322877
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509522.2695029
        msecs: 269.5028781890869
        relativeCreated: 12001.894474029541
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Teardown phase

      duration:

      0.00023542018607258797
      

      outcome:

      passed
      
  • 📄 test_utils_tqdm_mod.py

    Function: test_complete_progress_bar

    • Test 450

      📌 Setup phase

      duration:

      0.00016868487000465393
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.004101874306797981
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012404192239046097
      

      outcome:

      passed
      

    Function: test_set_progress_multiple_points

    • Test 451

      📌 Setup phase

      duration:

      0.00014048395678400993
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.001739343162626028
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00012705707922577858
      

      outcome:

      passed
      

    Function: test_format_sizeof_alignment

    • Test 452

      📌 Setup phase

      duration:

      0.00012843869626522064
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015872810035943985
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010570790618658066
      

      outcome:

      passed
      

    Function: test_custom_unit

    • Test 454

      📌 Setup phase

      duration:

      0.00012080231681466103
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.004847933072596788
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001302417367696762
      

      outcome:

      passed
      

    Function: test_clamp_above_total

    • Test 455

      📌 Setup phase

      duration:

      0.00011605024337768555
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004992843605577946
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000105992890894413
      

      outcome:

      passed
      

    Function: test_clamp_below_zero

    • Test 456

      📌 Setup phase

      duration:

      0.00011406606063246727
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0006044837646186352
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011977506801486015
      

      outcome:

      passed
      
  • 📄 test_utils_trinary.py

    Function: test_check_trinary_valid_values

    • Test 457

      📌 Setup phase

      duration:

      0.00013058772310614586
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001672687940299511
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010248413309454918
      

      outcome:

      passed
      

    Function: test_check_trinary_invalid_value

    • Test 458

      📌 Setup phase

      duration:

      0.00010719290003180504
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0003939797170460224
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00011104485020041466
      

      outcome:

      passed
      

    Function: test_check_trinary_with_custom_allowed_values

    • Test 459

      📌 Setup phase

      duration:

      0.00011108117178082466
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017635012045502663
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010226713493466377
      

      outcome:

      passed
      
  • 📄 test_utils_typecast.py

    Function: test_downcast_success

    • Test 460

      📌 Setup phase

      duration:

      0.00012667197734117508
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017678877338767052
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010095164179801941
      

      outcome:

      passed
      

    Function: test_upcast_success

    • Test 461

      📌 Setup phase

      duration:

      0.00010730884969234467
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001443875953555107
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014142785221338272
      

      outcome:

      passed
      

    Function: test_downcast_invalid

    • Test 462

      📌 Setup phase

      duration:

      0.00012061325833201408
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00032503530383110046
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001064627431333065
      

      outcome:

      passed
      

    Function: test_upcast_invalid

    • Test 463

      📌 Setup phase

      duration:

      0.00010944390669465065
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017566094174981117
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010456424206495285
      

      outcome:

      passed
      

    Function: test_object_identity_preserved

    • Test 464

      📌 Setup phase

      duration:

      0.00010735588148236275
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000160174909979105
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010009901598095894
      

      outcome:

      passed
      

    Function: test_ensure_subclass_valid

    • Test 465

      📌 Setup phase

      duration:

      0.0001066192053258419
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014943024143576622
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.944383054971695e-05
      

      outcome:

      passed
      

    Function: test_ensure_subclass_invalid

    • Test 466

      📌 Setup phase

      duration:

      0.0001039779745042324
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00018079625442624092
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.796395897865295e-05
      

      outcome:

      passed
      

    Function: test_cast_changes_class

    • Test 467

      📌 Setup phase

      duration:

      0.00010325340554118156
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014808494597673416
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.834114462137222e-05
      

      outcome:

      passed
      

    Function: test_cast_preserves_identity

    • Test 468

      📌 Setup phase

      duration:

      0.00010998919606208801
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001419498585164547
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00010317796841263771
      

      outcome:

      passed
      
  • 📄 test_utils_utils.py

    Function: test_singleton_instance

    • Test 469

      📌 Setup phase

      duration:

      0.00011730613186955452
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014642206951975822
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.750388562679291e-05
      

      outcome:

      passed
      

    Function: test_singleton_identity

    • Test 470

      📌 Setup phase

      duration:

      0.00011100294068455696
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013324106112122536
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      9.637093171477318e-05
      

      outcome:

      passed
      

    Function: test_typename

    • Test 471
      params: obj=null, expected="NoneType"

      📌 Runtime Parameters

      params:
        obj: None
        expected: NoneType
      id: None-NoneType
      

      📌 Setup phase

      duration:

      0.0003089979290962219
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014323322102427483
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015234900638461113
      

      outcome:

      passed
      
    • Test 472
      params: obj=true, expected="bool"

      📌 Runtime Parameters

      params:
        obj: True
        expected: bool
      id: True-bool
      

      📌 Setup phase

      duration:

      0.0002439417876303196
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013561127707362175
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001468001864850521
      

      outcome:

      passed
      
    • Test 473
      params: obj=42, expected="int"

      📌 Runtime Parameters

      params:
        obj: 42
        expected: int
      id: 42-int
      

      📌 Setup phase

      duration:

      0.00022626202553510666
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013753259554505348
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013759220018982887
      

      outcome:

      passed
      
    • Test 474
      params: obj=3.14, expected="float"

      📌 Runtime Parameters

      params:
        obj: 3.14
        expected: float
      id: 3.14-float
      

      📌 Setup phase

      duration:

      0.000209675170481205
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014776410534977913
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014118803665041924
      

      outcome:

      passed
      
    • Test 475
      params: obj="text", expected="str"

      📌 Runtime Parameters

      params:
        obj: text
        expected: str
      id: text-str
      

      📌 Setup phase

      duration:

      0.00022819498553872108
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001347181387245655
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014006812125444412
      

      outcome:

      passed
      
    • Test 476
      params: obj="{1, 2, 3}", expected="set"

      📌 Runtime Parameters

      params:
        obj: {1, 2, 3}
        expected: set
      id: obj5-set
      

      📌 Setup phase

      duration:

      0.0002299230545759201
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013565970584750175
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013375701382756233
      

      outcome:

      passed
      
    • Test 477
      params: obj=1], [2, 3, expected="list"

      📌 Runtime Parameters

      params:
        obj:
          -       - 1
          -       - 2
            - 3
        expected: list
      id: obj6-list
      

      📌 Setup phase

      duration:

      0.00022337911650538445
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013556098565459251
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014853104948997498
      

      outcome:

      passed
      
    • Test 478
      params: obj=[{"a": [1, 2]}, {"b": [3, 4]}], expected="list"

      📌 Runtime Parameters

      params:
        obj:
          -       a:
              - 1
              - 2
          -       b:
              - 3
              - 4
        expected: list
      id: obj7-list
      

      📌 Setup phase

      duration:

      0.0002194000408053398
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000138135626912117
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.000140428077429533
      

      outcome:

      passed
      
    • Test 479
      params: obj={"key": [{"nested": 1}, [2, 3]]}, expected="dict"

      📌 Runtime Parameters

      params:
        obj:
          key:
            -         nested: 1
            -         - 2
              - 3
        expected: dict
      id: obj8-dict
      

      📌 Setup phase

      duration:

      0.00021678907796740532
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013688113540410995
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001479601487517357
      

      outcome:

      passed
      
    • Test 480
      params: obj=" at 0x7f2b33018d30>", expected="function"

      📌 Runtime Parameters

      params:
        obj: <function <lambda> at 0x7f2b33018d30>
        expected: function
      id: <lambda>-function
      

      📌 Setup phase

      duration:

      0.0009141569025814533
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015333807095885277
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014609890058636665
      

      outcome:

      passed
      
    • Test 481
      params: obj="", expected="function"

      📌 Runtime Parameters

      params:
        obj: <function sample_function at 0x7f2b33018ca0>
        expected: function
      id: sample_function-function
      

      📌 Setup phase

      duration:

      0.0002509825862944126
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014004483819007874
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001385691575706005
      

      outcome:

      passed
      
    • Test 482
      params: obj=".nested at 0x7f2b33018dc0>", expected="function"

      📌 Runtime Parameters

      params:
        obj: <function sample_function.<locals>.nested at 0x7f2b33018dc0>
        expected: function
      id: nested-function
      

      📌 Setup phase

      duration:

      0.00021768128499388695
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013708090409636497
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015316996723413467
      

      outcome:

      passed
      
    • Test 483
      params: obj="", expected="builtin_function_or_method"

      📌 Runtime Parameters

      params:
        obj: <built-in function len>
        expected: builtin_function_or_method
      id: len-builtin_function_or_method
      

      📌 Setup phase

      duration:

      0.000221962109208107
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001347837969660759
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001351390965282917
      

      outcome:

      passed
      
    • Test 484
      params: obj="", expected="builtin_function_or_method"

      📌 Runtime Parameters

      params:
        obj: <built-in function sum>
        expected: builtin_function_or_method
      id: sum-builtin_function_or_method
      

      📌 Setup phase

      duration:

      0.00022132601588964462
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013856776058673859
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001450730487704277
      

      outcome:

      passed
      
    • Test 485
      params: obj="", expected="module"

      📌 Runtime Parameters

      params:
        obj: <module 'math' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/lib-dynload/math.cpython-38-x86_64-linux-gnu.so'>
        expected: module
      id: math-module
      

      📌 Setup phase

      duration:

      0.00023432308807969093
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013215001672506332
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001638270914554596
      

      outcome:

      passed
      
    • Test 486
      params: obj="", expected="module"

      📌 Runtime Parameters

      params:
        obj: <module 'sys' (built-in)>
        expected: module
      id: sys-module
      

      📌 Setup phase

      duration:

      0.00022430019453167915
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013469718396663666
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015548383817076683
      

      outcome:

      passed
      
    • Test 487
      params: obj="", expected="type"

      📌 Runtime Parameters

      params:
        obj: <class 'function'>
        expected: type
      id: function-type
      

      📌 Setup phase

      duration:

      0.00023452704772353172
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013905297964811325
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00013838522136211395
      

      outcome:

      passed
      
    • Test 488
      params: obj=" at 0x7f2b32ce3d60>", expected="generator"

      📌 Runtime Parameters

      params:
        obj: <generator object <genexpr> at 0x7f2b32ce3d60>
        expected: generator
      id: <genexpr>-generator
      

      📌 Setup phase

      duration:

      0.00021272897720336914
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014388887211680412
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014392612501978874
      

      outcome:

      passed
      
    • Test 489
      params: obj="", expected="list_iterator"

      📌 Runtime Parameters

      params:
        obj: <list_iterator object at 0x7f2b33047e50>
        expected: list_iterator
      id: obj18-list_iterator
      

      📌 Setup phase

      duration:

      0.0002328958362340927
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001393333077430725
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001436709426343441
      

      outcome:

      passed
      

    Function: test_next_int

    • Test 490
      params: nums=[1, 2, 3], expected=4

      📌 Runtime Parameters

      params:
        nums:
          - 1
          - 2
          - 3
        expected: 4
      id: nums0-4
      

      📌 Setup phase

      duration:

      0.00024102488532662392
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001440262421965599
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001532677561044693
      

      outcome:

      passed
      
    • Test 491
      params: nums=[10, 20], expected=21

      📌 Runtime Parameters

      params:
        nums:
          - 10
          - 20
        expected: 21
      id: nums1-21
      

      📌 Setup phase

      duration:

      0.00021971482783555984
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014076195657253265
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001406809315085411
      

      outcome:

      passed
      
    • Test 492
      params: nums=[], expected=0

      📌 Runtime Parameters

      params:
        nums:
      []
        expected: 0
      id: nums2-0
      

      📌 Setup phase

      duration:

      0.00021926499903202057
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001417943276464939
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001334422267973423
      

      outcome:

      passed
      

    Function: test_zero_pad

    • Test 493
      params: i=7, n=3, expected="007"

      📌 Runtime Parameters

      params:
        i: 7
        n: 3
        expected: 007
      id: 7-3-007
      

      📌 Setup phase

      duration:

      0.00027437927201390266
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014400016516447067
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001585562713444233
      

      outcome:

      passed
      
    • Test 494
      params: i=123, n=5, expected="00123"

      📌 Runtime Parameters

      params:
        i: 123
        n: 5
        expected: 00123
      id: 123-5-00123
      

      📌 Setup phase

      duration:

      0.00026806630194187164
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001396690495312214
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001652720384299755
      

      outcome:

      passed
      
    • Test 495
      params: i=0, n=2, expected="00"

      📌 Runtime Parameters

      params:
        i: 0
        n: 2
        expected: 00
      id: 0-2-00
      

      📌 Setup phase

      duration:

      0.00025565410032868385
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001422869972884655
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001531951129436493
      

      outcome:

      passed
      

    Function: test_iround

    • Test 496
      params: val=3.6, expected=4

      📌 Runtime Parameters

      params:
        val: 3.6
        expected: 4
      id: 3.6-4
      

      📌 Setup phase

      duration:

      0.00022694282233715057
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014553312212228775
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001348443329334259
      

      outcome:

      passed
      
    • Test 497
      params: val=2.1, expected=2

      📌 Runtime Parameters

      params:
        val: 2.1
        expected: 2
      id: 2.1-2
      

      📌 Setup phase

      duration:

      0.00023885443806648254
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013970816507935524
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014410028234124184
      

      outcome:

      passed
      
    • Test 498
      params: val=-1.5, expected=-2

      📌 Runtime Parameters

      params:
        val: -1.5
        expected: -2
      id: -1.5--2
      

      📌 Setup phase

      duration:

      0.0002433760091662407
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00013465574011206627
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001508370041847229
      

      outcome:

      passed
      
    • Test 499
      params: val=-1.4, expected=-1

      📌 Runtime Parameters

      params:
        val: -1.4
        expected: -1
      id: -1.4--1
      

      📌 Setup phase

      duration:

      0.00022481707856059074
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00014866003766655922
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014409422874450684
      

      outcome:

      passed
      

    Function: test_sorted_naturally

    • Test 500
      params: items=["file1", "file10", "file2"], expected=["file1", "file2", "file10"]

      📌 Runtime Parameters

      params:
        items:
          - file1
          - file10
          - file2
        expected:
          - file1
          - file2
          - file10
      id: items0-expected0
      

      📌 Setup phase

      duration:

      0.00022541405633091927
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0002582501620054245
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014272332191467285
      

      outcome:

      passed
      
    • Test 501
      params: items=["z9", "z10", "z2", "z1"], expected=["z1", "z2", "z9", "z10"]

      📌 Runtime Parameters

      params:
        items:
          - z9
          - z10
          - z2
          - z1
        expected:
          - z1
          - z2
          - z9
          - z10
      id: items1-expected1
      

      📌 Setup phase

      duration:

      0.00024460162967443466
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016607297584414482
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001515108160674572
      

      outcome:

      passed
      

    Function: test_sorted_naturally_reverse

    • Test 502
      params: items=["file1", "file10", "file2"], expected=["file10", "file2", "file1"]

      📌 Runtime Parameters

      params:
        items:
          - file1
          - file10
          - file2
        expected:
          - file10
          - file2
          - file1
      id: items0-expected0
      

      📌 Setup phase

      duration:

      0.0002268063835799694
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00017089629545807838
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00014321785420179367
      

      outcome:

      passed
      
  • 📄 test_utils_xrange.py

    Function: test_xrange_finite

    • Test 503
      params: args=[10], kwargs={}, expected=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

      📌 Runtime Parameters

      params:
        args:
          - 10
        kwargs:
      {}
        expected:
          - (vide)
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
      id: args0-kwargs0-expected0
      

      📌 Setup phase

      duration:

      0.0003108019009232521
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015518208965659142
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001608068123459816
      

      outcome:

      passed
      
    • Test 504
      params: args=[0, 10], kwargs={}, expected=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

      📌 Runtime Parameters

      params:
        args:
          - (vide)
          - 10
        kwargs:
      {}
        expected:
          - (vide)
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
      id: args1-kwargs1-expected1
      

      📌 Setup phase

      duration:

      0.0003036279231309891
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000150355976074934
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016281288117170334
      

      outcome:

      passed
      
    • Test 505
      params: args=[0, 10, 2], kwargs={}, expected=[0, 2, 4, 6, 8]

      📌 Runtime Parameters

      params:
        args:
          - (vide)
          - 10
          - 2
        kwargs:
      {}
        expected:
          - (vide)
          - 2
          - 4
          - 6
          - 8
      id: args2-kwargs2-expected2
      

      📌 Setup phase

      duration:

      0.00026683229953050613
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00021109217777848244
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00016634678468108177
      

      outcome:

      passed
      
    • Test 506
      params: args=[10], kwargs={"step": 2}, expected=[0, 2, 4, 6, 8]

      📌 Runtime Parameters

      params:
        args:
          - 10
        kwargs:
          step: 2
        expected:
          - (vide)
          - 2
          - 4
          - 6
          - 8
      id: args3-kwargs3-expected3
      

      📌 Setup phase

      duration:

      0.0002863360568881035
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00015316205099225044
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015659816563129425
      

      outcome:

      passed
      

    Function: test_xrange_infinite

    • Test 507
      params: args=[], kwargs={}, expected_repr="count(0)"

      📌 Runtime Parameters

      params:
        args:
      []
        kwargs:
      {}
        expected_repr: count(0)
      id: args0-kwargs0-count(0)
      

      📌 Setup phase

      duration:

      0.0003566928207874298
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00016120029613375664
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0001619439572095871
      

      outcome:

      passed
      
    • Test 508
      params: args=[], kwargs={"step": 2}, expected_repr="count(0, 2)"

      📌 Runtime Parameters

      params:
        args:
      []
        kwargs:
          step: 2
        expected_repr: count(0, 2)
      id: args1-kwargs1-count(0, 2)
      

      📌 Setup phase

      duration:

      0.0002561816945672035
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0001504402607679367
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.00015771621838212013
      

      outcome:

      passed
      

    Function: test_xrange_too_many_args

    • Test 509
      params: args=[1, 2, 3, 4]

      📌 Runtime Parameters

      params:
        args:
          - 1
          - 2
          - 3
          - 4
      id: args0
      

      📌 Setup phase

      duration:

      0.0001758667640388012
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00045123882591724396
      

      outcome:

      passed
      

      📌 Teardown phase

      duration:

      0.0006165308877825737
      

      outcome:

      passed
      
Failed (37)
  • 📄 test_utils_debug.py

    Function: test_short_repr

    • Test 134
      params: value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", cutoff=10, expected="'aaaaaaaaaa..."

      📌 Runtime Parameters

      params:
        value: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        cutoff: 10
        expected: 'aaaaaaaaaa...
      id: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-10-'aaaaaaaaaa...
      

      📌 Setup phase

      duration:

      0.0002663368359208107
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009581777267158031
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_debug.py
      lineno: 66
      message: assert "'aaaaaaaaa..." == "'aaaaaaaaaa..."
      
        - 'aaaaaaaaaa...
        ?  -
        + 'aaaaaaaaa...
      

      traceback:

      -   path: tests/test_utils_debug.py
        lineno: 66
        message: AssertionError
      

      longrepr:

      value = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
      cutoff = 10, expected = "'aaaaaaaaaa..."
      
          @pytest.mark.parametrize(
              "value, cutoff, expected",
              [
                  ("abc", 10, "'abc'"),
                  ("a" * 100, 10, "'aaaaaaaaaa..."),
                  (12345, 10, "12345"),
                  ([0]*100, 15, str(repr([0]*100))[:15] + "..."),
                  (None, 10, "None"),
                  (type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxx..."),
              ]
          )
      
          def test_short_repr(value, cutoff, expected):
      >       assert short_repr(value, cutoff) == expected
      E       assert "'aaaaaaaaa..." == "'aaaaaaaaaa..."
      E         
      E         - 'aaaaaaaaaa...
      E         ?  -
      E         + 'aaaaaaaaa...
      
      tests/test_utils_debug.py:66: AssertionError
      

      📌 Teardown phase

      duration:

      0.00027794623747467995
      

      outcome:

      passed
      
    • Test 138
      params: value="Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)", cutoff=20, expected="Obj(xxxxxxxxxxxxxxxxx..."

      📌 Runtime Parameters

      params:
        value: Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)
        cutoff: 20
        expected: Obj(xxxxxxxxxxxxxxxxx...
      id: value5-20-Obj(xxxxxxxxxxxxxxxxx...
      

      📌 Setup phase

      duration:

      0.0002708248794078827
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005571171641349792
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_debug.py
      lineno: 66
      message: AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxx...'
      
        - Obj(xxxxxxxxxxxxxxxxx...
        ?                     -
        + Obj(xxxxxxxxxxxxxxxx...
      

      traceback:

      -   path: tests/test_utils_debug.py
        lineno: 66
        message: AssertionError
      

      longrepr:

      value = Obj(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), cutoff = 20
      expected = 'Obj(xxxxxxxxxxxxxxxxx...'
      
          @pytest.mark.parametrize(
              "value, cutoff, expected",
              [
                  ("abc", 10, "'abc'"),
                  ("a" * 100, 10, "'aaaaaaaaaa..."),
                  (12345, 10, "12345"),
                  ([0]*100, 15, str(repr([0]*100))[:15] + "..."),
                  (None, 10, "None"),
                  (type("Obj", (), {"__repr__": lambda self: "Obj(" + "x"*50 + ")"})(), 20, "Obj(xxxxxxxxxxxxxxxxx..."),
              ]
          )
      
          def test_short_repr(value, cutoff, expected):
      >       assert short_repr(value, cutoff) == expected
      E       AssertionError: assert 'Obj(xxxxxxxxxxxxxxxx...' == 'Obj(xxxxxxxxxxxxxxxxx...'
      E         
      E         - Obj(xxxxxxxxxxxxxxxxx...
      E         ?                     -
      E         + Obj(xxxxxxxxxxxxxxxx...
      
      tests/test_utils_debug.py:66: AssertionError
      

      📌 Teardown phase

      duration:

      0.00021468987688422203
      

      outcome:

      passed
      
  • 📄 test_utils_elog.py

    Function: test_get_default_elog_instance_with_direct_password_and_real_check

    • Test 159

      📌 Setup phase

      duration:

      0.00013331091031432152
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.003384256735444069
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_elog.py
      lineno: 13
      message: NameError: name 'getuser' is not defined
      

      traceback:

      -   path: tests/test_utils_elog.py
        lineno: 42
        message: None
      -   path: tests/test_utils_elog.py
        lineno: 13
        message: NameError
      

      longrepr:

      def test_get_default_elog_instance_with_direct_password_and_real_check():
              url = "http://localhost:8080/demo"
              user = "robot"
              password = "testpassword"
      
              elog_instance, returned_user = get_default_elog_instance(url, user=user, password=password)
      
              assert returned_user == user
              assert hasattr(elog_instance, "post")
      
      >       pw = get_default_elog_password(url, user=user, password=password)
      
      tests/test_utils_elog.py:42: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      url = 'http://localhost:8080/demo'
      kwargs = {'password': 'testpassword', 'user': 'robot'}
      
          def get_default_elog_password(url, **kwargs):
      >       kwargs.setdefault("user", getuser())
      E       NameError: name 'getuser' is not defined
      
      tests/test_utils_elog.py:13: NameError
      

      📌 Teardown phase

      duration:

      0.0001372992992401123
      

      outcome:

      passed
      

    Function: test_get_default_elog_instance_asks_password_and_opens

    • Test 160

      📌 Setup phase

      duration:

      0.00013539986684918404
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.003947518765926361
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_elog.py
      lineno: 13
      message: NameError: name 'getuser' is not defined
      

      traceback:

      -   path: tests/test_utils_elog.py
        lineno: 63
        message: None
      -   path: tests/test_utils_elog.py
        lineno: 13
        message: NameError
      

      longrepr:

      mock_home = <MagicMock name='home' id='139823512633408'>
      mock_getpass = <MagicMock name='getpass' id='139823511341232'>
      
          @patch("slic.utils.elog.getpass")
          @patch("slic.utils.elog.Path.home")
          def test_get_default_elog_instance_asks_password_and_opens(mock_home, mock_getpass):
      
              mock_home.return_value = Path("/does/not/exist")
              mock_getpass.return_value = "testpassword"
              password = mock_getpass.return_value
      
              url = "http://localhost:8080/demo"
              user = "robot"
      
              elog_instance, returned_user = get_default_elog_instance(url, user=user)
      
              assert returned_user == user
              assert hasattr(elog_instance, "post")
      
      >       pw = get_default_elog_password(url, user=user)
      
      tests/test_utils_elog.py:63: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      url = 'http://localhost:8080/demo', kwargs = {'user': 'robot'}
      
          def get_default_elog_password(url, **kwargs):
      >       kwargs.setdefault("user", getuser())
      E       NameError: name 'getuser' is not defined
      
      tests/test_utils_elog.py:13: NameError
      

      📌 Teardown phase

      duration:

      0.0001373840495944023
      

      outcome:

      passed
      

    Function: test_get_default_elog_with_path_home

    • Test 161

      📌 Setup phase

      duration:

      0.00011733686551451683
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0040336898528039455
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_elog.py
      lineno: 13
      message: NameError: name 'getuser' is not defined
      

      traceback:

      -   path: tests/test_utils_elog.py
        lineno: 93
        message: None
      -   path: tests/test_utils_elog.py
        lineno: 13
        message: NameError
      

      longrepr:

      mock_home = <MagicMock name='home' id='139823511553072'>
      mock_getuser = <MagicMock name='getuser' id='139823511577840'>
      
          @patch("slic.utils.elog.getuser")
          @patch("slic.utils.elog.Path.home")
          def test_get_default_elog_with_path_home(mock_home, mock_getuser):
              # Setup
              fake_user = "robot"
              fake_pw = "testpassword"
              mock_getuser.return_value = fake_user
      
              # Create fake home dir with .elog_psi
              tmp_home = Path("/tmp/fake_home_for_robot")
              tmp_home.mkdir(parents=True, exist_ok=True)
              pw_file = tmp_home / ".elog_psi"
              pw_file.write_text(fake_pw)
      
              mock_home.return_value = tmp_home
      
              # Call function
              url = "http://localhost:8080/demo"
              elog_instance, returned_user = get_default_elog_instance(url)
      
              # Assert user and password used correctly
              assert returned_user == fake_user
              assert hasattr(elog_instance, "post")
      
      >       pw = get_default_elog_password(url)
      
      tests/test_utils_elog.py:93: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      url = 'http://localhost:8080/demo', kwargs = {}
      
          def get_default_elog_password(url, **kwargs):
      >       kwargs.setdefault("user", getuser())
      E       NameError: name 'getuser' is not defined
      
      tests/test_utils_elog.py:13: NameError
      

      📌 Teardown phase

      duration:

      0.0001453319564461708
      

      outcome:

      passed
      

    Function: test_post

    • Test 162

      📌 Setup phase

      duration:

      0.00012075481936335564
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.009260891936719418
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/elog/logbook.py
      lineno: 315
      message: elog.logbook_exceptions.LogbookInvalidMessageID: Invalid message ID: None returned
      

      traceback:

      -   path: tests/test_utils_elog.py
        lineno: 110
        message: None
      -   path: slic/utils/elog.py
        lineno: 16
        message: in post
      -   path: .pixi/envs/default/lib/python3.8/site-packages/elog/logbook.py
        lineno: 315
        message: LogbookInvalidMessageID
      

      longrepr:

      def test_post():
              elog = get_test_elog()
      
              title = "AUTHOR_OVERRIDE_TEST"
              message = "This is a message"
              author = "robot"
      
      >       resp = elog.post(message, Title=title, Author=author, Category="General", Type="Test")
      
      tests/test_utils_elog.py:110: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/elog.py:16: in post
          return self._log.post(*args, **kwargs)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <elog.logbook.Logbook object at 0x7f2b32bd6520>
      message = 'This is a message', msg_id = None, reply = False
      attributes = {'Author': 'robot', 'Category': 'General', 'Title': 'AUTHOR_OVERRIDE_TEST', 'Type': 'Test', ...}
      attachments = [], suppress_email_notification = False, encoding = None
      timeout = None
      kwargs = {'Author': 'robot', 'Category': 'General', 'Title': 'AUTHOR_OVERRIDE_TEST', 'Type': 'Test'}
      new_attachment_list = [('Text', ('', b'This is a message'))]
      objects_to_close = []
      attributes_to_edit = {'Author': b'robot', 'Category': b'General', 'Title': b'AUTHOR_OVERRIDE_TEST', 'Type': b'Test', ...}
      
          def post(self, message, msg_id=None, reply=False, attributes=None, attachments=None,
                   suppress_email_notification=False, encoding=None, timeout=None, **kwargs):
              """
              Posts message to the logbook. If msg_id is not specified new message will be created, otherwise existing
              message will be edited, or a reply (if reply=True) to it will be created. This method returns the msg_id
              of the newly created message.
      
              :param message: string with message text
              :param msg_id: ID number of message to edit or reply. If not specified new message is created.
              :param reply: If 'True' reply to existing message is created instead of editing it
              :param attributes: Dictionary of attributes. Following attributes are used internally by the elog and will be
                                 ignored: Text, Date, Encoding, Reply to, In reply to, Locked by, Attachment
              :param attachments: list of:
                                        - file like objects which read() will return bytes (if file_like_object.name is not
                                          defined, default name "attachment<i>" will be used.
                                        - paths to the files
                                  All items will be appended as attachment to the elog entry. In case of unknown
                                  attachment an exception LogbookInvalidAttachment will be raised.
              :param suppress_email_notification: If set to True or 1, E-Mail notification will be suppressed, defaults to False.
              :param encoding: Defines encoding of the message. Can be: 'plain' -> plain text, 'html'->html-text,
                               'ELCode' --> elog formatting syntax
              :param timeout: Define the timeout to be used by the post request. Its value is directly passed to the requests
                              post. Use None to disable the request timeout.
              :param kwargs: Anything in the kwargs will be interpreted as attribute. e.g.: logbook.post('Test text',
                             Author='Rok Vintar), "Author" will be sent as an attribute. If named same as one of the
                             attributes defined in "attributes", kwargs will have priority.
      
              :return: msg_id
              """
      
              attributes = attributes or {}
              attributes = {**attributes, **kwargs}  # kwargs as attributes with higher priority
      
              attachments = attachments or []
      
              if encoding is not None:
                  if encoding not in ['plain', 'HTML', 'ELCode']:
                      raise LogbookMessageRejected('Invalid message encoding. Valid options: plain, HTML, ELCode.')
                  attributes['Encoding'] = encoding
      
              if suppress_email_notification:
                  attributes["suppress"] = 1
      
              # THE ATTACHMENT STRATEGY WHEN DEALING WITH POST MODIFICATION
              #
              # 1. Does the message on the server have already attachments?
              #    1.1 - We read the message getting the existing attachment list.
              #    1.2 - Add to the attributes dictionary one line for each attachment like this:
              #       attributes['attachmentN'] = timestamped_filename_name
              #
              # 2. Do we have new attachments?
              #    2.1 - Those are in the new_attachment_list. This is a list of this type:
              #       [ ('attfileN', ('filename', fileobject)) ]
              #    2.2 - We need to loop over all the new attachments:
              #       2.2.1 - Does a file already on the server with the same name exist?
              #         2.2.1.1 - No: OK. Then we go ahead with the next attachment.
              #         2.2.1.2 - Yes:
              #           2.2.1.2.1 - Are the two files identical?
              #               2.2.1.2.1.1 - Yes: then we remove this current entry from the new_attachment_list and we leave the one
              #                      already on server.
              #               2.2.1.2.1.2 - No:
              #                  2.2.1.2.1.2.1 - Then the file has been update.
              #                  2.2.1.2.1.2.2 - We need to remove the file on server first (using special post)
              #                  2.2.1.2.1.2.3 - We have to remove the old attachment from the attributes dictionary.
              #
      
              if attachments:
                  # here we accomplish point 2.1.
                  # new_attachment_list is something like [ ('attfileN', ('filename', fileobject)) ]
                  new_attachment_list, objects_to_close = self._prepare_attachments(attachments)
              else:
                  objects_to_close = list()
                  new_attachment_list = list()
      
              attributes_to_edit = dict()
              if msg_id:
                  # Message exists, we can continue
                  if reply:
                      # Verify that there is a message on the server, otherwise do not reply to it!
                      self._check_if_message_on_server(msg_id)  # raises exception in case of none existing message
                      attributes['reply_to'] = str(msg_id)
                  else:  # Edit existing
                      attributes['edit_id'] = str(msg_id)
                      attributes['skiplock'] = '1'
      
                      # here we accomplish point 1.1.
                      # existing_attachments_list is something like:
                      # [ 'https://elog.url.com/logbook/timestamped_filename' ]
                      msg_to_edit, attributes_to_edit, existing_attachments_list = self.read(msg_id)
      
                      for attribute, data in attributes.items():
                          new_data = attributes.get(attribute)
                          if new_data is not None:
                              attributes_to_edit[attribute] = new_data
      
                      i = 0
                      existing_attachments_filename_list = list()
                      for attachment in existing_attachments_list:
                          # here we accomplish point 1.2. We strip the timestamped_filename from the whole URL.
                          attributes_to_edit[f'attachment{i}'] = os.path.basename(attachment)
                          existing_attachments_filename_list.append(os.path.basename(attachment)[14:])
                          i += 1
      
                      # let's accomplish 2.2. Loop over all new attachment
                      duplicate_attachment_list = list()
                      for new_attachment in new_attachment_list:
                          # the new_attachment_list is something like:
                          # [ ('attfileN', ('filename', fileobject)) ]
                          new_attachment_filename = new_attachment[1][0]
                          if new_attachment_filename in existing_attachments_filename_list:
                              # a file with the same name existing already on the server.
                              # we need to check if the two files are the same.
                              # read the content of the new file
                              new_attachment_content = new_attachment[1][1].read()
                              # don't forget to reset the fileobj to the beginning of the file
                              new_attachment[1][1].seek(0)
                              # get the existing attachment content
                              attachment_index = existing_attachments_filename_list.index(new_attachment_filename)
                              existing_attachment_content = self.download_attachment(
                                  url=existing_attachments_list[attachment_index],
                                  timeout=timeout
                              )
                              # check if the two contents are the same
                              if new_attachment_content == existing_attachment_content:
                                  # yes. then we don't upload a second copy. we remove the current entry from the list
                                  duplicate_attachment_list.append(new_attachment)
                              else:
                                  # no. they are not the same file. we will replace the existing file with the new one
                                  # first: we need to remove the attachment from the server using the dedicated method
                                  self.delete_attachment(msg_id, attributes=attributes_to_edit,
                                                         attachment_id=attachment_index,
                                                         timeout=timeout, text=msg_to_edit)
                                  # now we can remove this attachment from the auxiliary lists.
                                  existing_attachments_filename_list.pop(attachment_index)
                                  existing_attachments_list.pop(attachment_index)
                                  # now we need to rebuild the attributes dictionary for the part concerning the attachments.
                                  # we remove all of them first
                                  keys_to_be_removed = list()
                                  for key in attributes_to_edit.keys():
                                      if key.startswith('attachment'):
                                          keys_to_be_removed.append(key)
                                      if key.startswith('delatt'):
                                          keys_to_be_removed.append(key)
                                  for key in keys_to_be_removed:
                                      del attributes_to_edit[key]
      
                                  # now we rebuild it
                                  for i, attachment in enumerate(existing_attachments_list):
                                      attributes_to_edit[f'attachment{i}'] = os.path.basename(attachment)
      
                      # remove all duplicate attachments from the new_attachment_list
                      for attach in duplicate_attachment_list:
                          new_attachment_list.remove(attach)
      
              else:
                  # As we create a new message, specify creation time if not already specified in attributes
                  if 'When' not in attributes:
                      attributes['When'] = int(datetime.now().timestamp())
      
              if not attributes_to_edit:
                  attributes_to_edit = attributes
      
              # Remove any attributes that should not be sent
              _remove_reserved_attributes(attributes_to_edit)
      
              # Make requests module think that Text is a "file". This is the only way to force requests to send data as
              # multipart/form-data even if there are no attachments. Elog understands only multipart/form-data
              new_attachment_list.append(('Text', ('', message.encode('iso-8859-1'))))
      
              # Base attributes are common to all messages
              self._add_base_msg_attributes(attributes_to_edit)
      
              # Keys in attributes cannot have certain characters like whitespaces or dashes for the http request
              attributes_to_edit = _replace_special_characters_in_attribute_keys(attributes_to_edit)
      
              # All string values in the attributes must be encoded in latin1
              attributes_to_edit = _encode_values(attributes_to_edit)
      
              try:
                  response = requests.post(self._url, data=attributes_to_edit, files=new_attachment_list,
                                           allow_redirects=False, verify=False, timeout=timeout)
      
                  # Validate response. Any problems will raise an Exception.
                  resp_message, resp_headers, resp_msg_id = _validate_response(response)
      
                  # Close file like objects that were opened by the elog (if  path
                  for file_like_object in objects_to_close:
                      if hasattr(file_like_object, 'close'):
                          file_like_object.close()
      
              except requests.Timeout as e:
                  # Catch here a timeout o the post request.
                  # Raise the logbook excetion and let the user handle it
                  raise LogbookServerTimeout('{0} method cannot be completed because of a network timeout:\n' +
                                             '{1}'.format(sys._getframe().f_code.co_name, e))
      
              except requests.RequestException as e:
                  # Check if message on server.
                  self._check_if_message_on_server(msg_id)  # raises exceptions if no message or no response from server
      
                  # If here: message is on server but cannot be downloaded (should never happen)
                  raise LogbookServerProblem('Cannot access logbook server to post a message, ' + 'because of:\n' +
                                             '{0}'.format(e))
      
              # Any error before here should raise an exception, but check again for nay case.
              if not resp_msg_id or resp_msg_id < 1:
      >           raise LogbookInvalidMessageID('Invalid message ID: ' + str(resp_msg_id) + ' returned')
      E           elog.logbook_exceptions.LogbookInvalidMessageID: Invalid message ID: None returned
      
      .pixi/envs/default/lib/python3.8/site-packages/elog/logbook.py:315: LogbookInvalidMessageID
      

      📌 Teardown phase

      duration:

      0.0001459391787648201
      

      outcome:

      passed
      

    Function: test_screenshot

    • Test 163

      📌 Setup phase

      duration:

      0.00012030592188239098
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.007067451253533363
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/elog/logbook.py
      lineno: 315
      message: elog.logbook_exceptions.LogbookInvalidMessageID: Invalid message ID: None returned
      

      traceback:

      -   path: tests/test_utils_elog.py
        lineno: 136
        message: None
      -   path: slic/utils/elog.py
        lineno: 21
        message: in screenshot
      -   path: slic/utils/elog.py
        lineno: 16
        message: in post
      -   path: .pixi/envs/default/lib/python3.8/site-packages/elog/logbook.py
        lineno: 315
        message: LogbookInvalidMessageID
      

      longrepr:

      mock_screenshot_class = <MagicMock name='Screenshot' id='139823512816128'>
      
          @patch("slic.utils.elog.Screenshot")
          def test_screenshot(mock_screenshot_class):
              # Create fake screenshot file
              with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as tmp:
                  fake_path = tmp.name
                  tmp.write(b"fake image data")
      
              # Configure mock to return our fake file
              mock_instance = mock_screenshot_class.return_value
              mock_instance.shoot.return_value = [fake_path]
      
              elog = get_test_elog()
      
              # Use a fixed message and run screenshot()
              test_msg = "SCREENSHOT_INTEGRATION_TEST_MSG_456"
      >       entry_id = elog.screenshot(message=test_msg)
      
      tests/test_utils_elog.py:136: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      slic/utils/elog.py:21: in screenshot
          self.post(message, **kwargs)
      slic/utils/elog.py:16: in post
          return self._log.post(*args, **kwargs)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <elog.logbook.Logbook object at 0x7f2b32c75850>
      message = 'SCREENSHOT_INTEGRATION_TEST_MSG_456', msg_id = None, reply = False
      attributes = {'Author': 'robot', 'When': 1754509515, 'cmd': 'Submit', 'exp': 'demo', ...}
      attachments = ['/tmp/tmp5h8w4ejl.png'], suppress_email_notification = False
      encoding = None, timeout = None, kwargs = {'Author': 'robot'}
      new_attachment_list = [('attfile0', ('tmp5h8w4ejl.png', <_io.BufferedReader name='/tmp/tmp5h8w4ejl.png'>)), ('Text', ('', b'SCREENSHOT_INTEGRATION_TEST_MSG_456'))]
      objects_to_close = [<_io.BufferedReader name='/tmp/tmp5h8w4ejl.png'>]
      attributes_to_edit = {'Author': b'robot', 'When': 1754509515, 'cmd': b'Submit', 'exp': b'demo', ...}
      
          def post(self, message, msg_id=None, reply=False, attributes=None, attachments=None,
                   suppress_email_notification=False, encoding=None, timeout=None, **kwargs):
              """
              Posts message to the logbook. If msg_id is not specified new message will be created, otherwise existing
              message will be edited, or a reply (if reply=True) to it will be created. This method returns the msg_id
              of the newly created message.
      
              :param message: string with message text
              :param msg_id: ID number of message to edit or reply. If not specified new message is created.
              :param reply: If 'True' reply to existing message is created instead of editing it
              :param attributes: Dictionary of attributes. Following attributes are used internally by the elog and will be
                                 ignored: Text, Date, Encoding, Reply to, In reply to, Locked by, Attachment
              :param attachments: list of:
                                        - file like objects which read() will return bytes (if file_like_object.name is not
                                          defined, default name "attachment<i>" will be used.
                                        - paths to the files
                                  All items will be appended as attachment to the elog entry. In case of unknown
                                  attachment an exception LogbookInvalidAttachment will be raised.
              :param suppress_email_notification: If set to True or 1, E-Mail notification will be suppressed, defaults to False.
              :param encoding: Defines encoding of the message. Can be: 'plain' -> plain text, 'html'->html-text,
                               'ELCode' --> elog formatting syntax
              :param timeout: Define the timeout to be used by the post request. Its value is directly passed to the requests
                              post. Use None to disable the request timeout.
              :param kwargs: Anything in the kwargs will be interpreted as attribute. e.g.: logbook.post('Test text',
                             Author='Rok Vintar), "Author" will be sent as an attribute. If named same as one of the
                             attributes defined in "attributes", kwargs will have priority.
      
              :return: msg_id
              """
      
              attributes = attributes or {}
              attributes = {**attributes, **kwargs}  # kwargs as attributes with higher priority
      
              attachments = attachments or []
      
              if encoding is not None:
                  if encoding not in ['plain', 'HTML', 'ELCode']:
                      raise LogbookMessageRejected('Invalid message encoding. Valid options: plain, HTML, ELCode.')
                  attributes['Encoding'] = encoding
      
              if suppress_email_notification:
                  attributes["suppress"] = 1
      
              # THE ATTACHMENT STRATEGY WHEN DEALING WITH POST MODIFICATION
              #
              # 1. Does the message on the server have already attachments?
              #    1.1 - We read the message getting the existing attachment list.
              #    1.2 - Add to the attributes dictionary one line for each attachment like this:
              #       attributes['attachmentN'] = timestamped_filename_name
              #
              # 2. Do we have new attachments?
              #    2.1 - Those are in the new_attachment_list. This is a list of this type:
              #       [ ('attfileN', ('filename', fileobject)) ]
              #    2.2 - We need to loop over all the new attachments:
              #       2.2.1 - Does a file already on the server with the same name exist?
              #         2.2.1.1 - No: OK. Then we go ahead with the next attachment.
              #         2.2.1.2 - Yes:
              #           2.2.1.2.1 - Are the two files identical?
              #               2.2.1.2.1.1 - Yes: then we remove this current entry from the new_attachment_list and we leave the one
              #                      already on server.
              #               2.2.1.2.1.2 - No:
              #                  2.2.1.2.1.2.1 - Then the file has been update.
              #                  2.2.1.2.1.2.2 - We need to remove the file on server first (using special post)
              #                  2.2.1.2.1.2.3 - We have to remove the old attachment from the attributes dictionary.
              #
      
              if attachments:
                  # here we accomplish point 2.1.
                  # new_attachment_list is something like [ ('attfileN', ('filename', fileobject)) ]
                  new_attachment_list, objects_to_close = self._prepare_attachments(attachments)
              else:
                  objects_to_close = list()
                  new_attachment_list = list()
      
              attributes_to_edit = dict()
              if msg_id:
                  # Message exists, we can continue
                  if reply:
                      # Verify that there is a message on the server, otherwise do not reply to it!
                      self._check_if_message_on_server(msg_id)  # raises exception in case of none existing message
                      attributes['reply_to'] = str(msg_id)
                  else:  # Edit existing
                      attributes['edit_id'] = str(msg_id)
                      attributes['skiplock'] = '1'
      
                      # here we accomplish point 1.1.
                      # existing_attachments_list is something like:
                      # [ 'https://elog.url.com/logbook/timestamped_filename' ]
                      msg_to_edit, attributes_to_edit, existing_attachments_list = self.read(msg_id)
      
                      for attribute, data in attributes.items():
                          new_data = attributes.get(attribute)
                          if new_data is not None:
                              attributes_to_edit[attribute] = new_data
      
                      i = 0
                      existing_attachments_filename_list = list()
                      for attachment in existing_attachments_list:
                          # here we accomplish point 1.2. We strip the timestamped_filename from the whole URL.
                          attributes_to_edit[f'attachment{i}'] = os.path.basename(attachment)
                          existing_attachments_filename_list.append(os.path.basename(attachment)[14:])
                          i += 1
      
                      # let's accomplish 2.2. Loop over all new attachment
                      duplicate_attachment_list = list()
                      for new_attachment in new_attachment_list:
                          # the new_attachment_list is something like:
                          # [ ('attfileN', ('filename', fileobject)) ]
                          new_attachment_filename = new_attachment[1][0]
                          if new_attachment_filename in existing_attachments_filename_list:
                              # a file with the same name existing already on the server.
                              # we need to check if the two files are the same.
                              # read the content of the new file
                              new_attachment_content = new_attachment[1][1].read()
                              # don't forget to reset the fileobj to the beginning of the file
                              new_attachment[1][1].seek(0)
                              # get the existing attachment content
                              attachment_index = existing_attachments_filename_list.index(new_attachment_filename)
                              existing_attachment_content = self.download_attachment(
                                  url=existing_attachments_list[attachment_index],
                                  timeout=timeout
                              )
                              # check if the two contents are the same
                              if new_attachment_content == existing_attachment_content:
                                  # yes. then we don't upload a second copy. we remove the current entry from the list
                                  duplicate_attachment_list.append(new_attachment)
                              else:
                                  # no. they are not the same file. we will replace the existing file with the new one
                                  # first: we need to remove the attachment from the server using the dedicated method
                                  self.delete_attachment(msg_id, attributes=attributes_to_edit,
                                                         attachment_id=attachment_index,
                                                         timeout=timeout, text=msg_to_edit)
                                  # now we can remove this attachment from the auxiliary lists.
                                  existing_attachments_filename_list.pop(attachment_index)
                                  existing_attachments_list.pop(attachment_index)
                                  # now we need to rebuild the attributes dictionary for the part concerning the attachments.
                                  # we remove all of them first
                                  keys_to_be_removed = list()
                                  for key in attributes_to_edit.keys():
                                      if key.startswith('attachment'):
                                          keys_to_be_removed.append(key)
                                      if key.startswith('delatt'):
                                          keys_to_be_removed.append(key)
                                  for key in keys_to_be_removed:
                                      del attributes_to_edit[key]
      
                                  # now we rebuild it
                                  for i, attachment in enumerate(existing_attachments_list):
                                      attributes_to_edit[f'attachment{i}'] = os.path.basename(attachment)
      
                      # remove all duplicate attachments from the new_attachment_list
                      for attach in duplicate_attachment_list:
                          new_attachment_list.remove(attach)
      
              else:
                  # As we create a new message, specify creation time if not already specified in attributes
                  if 'When' not in attributes:
                      attributes['When'] = int(datetime.now().timestamp())
      
              if not attributes_to_edit:
                  attributes_to_edit = attributes
      
              # Remove any attributes that should not be sent
              _remove_reserved_attributes(attributes_to_edit)
      
              # Make requests module think that Text is a "file". This is the only way to force requests to send data as
              # multipart/form-data even if there are no attachments. Elog understands only multipart/form-data
              new_attachment_list.append(('Text', ('', message.encode('iso-8859-1'))))
      
              # Base attributes are common to all messages
              self._add_base_msg_attributes(attributes_to_edit)
      
              # Keys in attributes cannot have certain characters like whitespaces or dashes for the http request
              attributes_to_edit = _replace_special_characters_in_attribute_keys(attributes_to_edit)
      
              # All string values in the attributes must be encoded in latin1
              attributes_to_edit = _encode_values(attributes_to_edit)
      
              try:
                  response = requests.post(self._url, data=attributes_to_edit, files=new_attachment_list,
                                           allow_redirects=False, verify=False, timeout=timeout)
      
                  # Validate response. Any problems will raise an Exception.
                  resp_message, resp_headers, resp_msg_id = _validate_response(response)
      
                  # Close file like objects that were opened by the elog (if  path
                  for file_like_object in objects_to_close:
                      if hasattr(file_like_object, 'close'):
                          file_like_object.close()
      
              except requests.Timeout as e:
                  # Catch here a timeout o the post request.
                  # Raise the logbook excetion and let the user handle it
                  raise LogbookServerTimeout('{0} method cannot be completed because of a network timeout:\n' +
                                             '{1}'.format(sys._getframe().f_code.co_name, e))
      
              except requests.RequestException as e:
                  # Check if message on server.
                  self._check_if_message_on_server(msg_id)  # raises exceptions if no message or no response from server
      
                  # If here: message is on server but cannot be downloaded (should never happen)
                  raise LogbookServerProblem('Cannot access logbook server to post a message, ' + 'because of:\n' +
                                             '{0}'.format(e))
      
              # Any error before here should raise an exception, but check again for nay case.
              if not resp_msg_id or resp_msg_id < 1:
      >           raise LogbookInvalidMessageID('Invalid message ID: ' + str(resp_msg_id) + ' returned')
      E           elog.logbook_exceptions.LogbookInvalidMessageID: Invalid message ID: None returned
      
      .pixi/envs/default/lib/python3.8/site-packages/elog/logbook.py:315: LogbookInvalidMessageID
      

      📌 Teardown phase

      duration:

      0.00014618830755352974
      

      outcome:

      passed
      
  • 📄 test_utils_get_adj.py

    Function: test_get_adjs_filter

    • Test 215

      📌 Setup phase

      duration:

      0.00011442089453339577
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0012324419803917408
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_get_adj.py
      lineno: 42
      message: AssertionError: assert {'contrast', ...mid_contrast'} == {'brightness'...mid_contrast'}
      
        Extra items in the right set:
        'brightness'
      
        Full diff:
          {
        -     'brightness',
              'contrast',
              'mid_brightness',
              'mid_contrast',
          }
      

      traceback:

      -   path: tests/test_utils_get_adj.py
        lineno: 42
        message: AssertionError
      

      longrepr:

      def test_get_adjs_filter():
              a4 = SubAdjustable("mid_brightness",         units="%", limit_low=0,   limit_high=100)
              a5 = SubAdjustable("debug_internal",   internal=True)
              public = get_adjs()
      >       assert set(public) == {'brightness', 'contrast', 'mid_contrast', 'mid_brightness'}
      E       AssertionError: assert {'contrast', ...mid_contrast'} == {'brightness'...mid_contrast'}
      E         
      E         Extra items in the right set:
      E         'brightness'
      E         
      E         Full diff:
      E           {
      E         -     'brightness',
      E               'contrast',
      E               'mid_brightness',
      E               'mid_contrast',
      E           }
      
      tests/test_utils_get_adj.py:42: AssertionError
      

      📌 Teardown phase

      duration:

      0.00013704411685466766
      

      outcome:

      passed
      
  • 📄 test_utils_hastyepics.py

    Function: test_motor_instantiation_fast_vs_epics

    • Test 216

      📌 Setup phase

      duration:

      0.0001318124122917652
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.09843695070594549
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_hastyepics.py
      lineno: 37
      message: AssertionError: Fast version (0.009357s) should be faster than EPICS (0.000289s)
      assert 0.00935708531178534 < 0.0002887680660933256
      

      traceback:

      -   path: tests/test_utils_hastyepics.py
        lineno: 37
        message: AssertionError
      

      longrepr:

      def test_motor_instantiation_fast_vs_epics():
      
              fast_times = []
              slow_times = []
      
              # Mock to simulate a real EPICS moteur
              with patch('epics.Motor.get') as mock_get:
                  mock_get.return_value = 'motor'
      
                  # Mean of 10 runs
                  for _ in range(10):
                      t0 = time.perf_counter()
                      m_fast = Motor("TEST:MOTOR_t1")
                      t1 = time.perf_counter()
      
                      t2 = time.perf_counter()
                      m_slow = epics.Motor("TEST:MOTOR_t2")
                      t3 = time.perf_counter()
      
                      fast_times.append(t1 - t0)
                      slow_times.append(t3 - t2)
      
              avg_fast = sum(fast_times) / len(fast_times)
              avg_slow = sum(slow_times) / len(slow_times)
      
      >       assert avg_fast < avg_slow, f"Fast version ({avg_fast:.6f}s) should be faster than EPICS ({avg_slow:.6f}s)"
      E       AssertionError: Fast version (0.009357s) should be faster than EPICS (0.000289s)
      E       assert 0.00935708531178534 < 0.0002887680660933256
      
      tests/test_utils_hastyepics.py:37: AssertionError
      

      📌 Teardown phase

      duration:

      0.0004202369600534439
      

      outcome:

      passed
      

    Function: test_motor_without_suffix_and_dot

    • Test 217

      📌 Setup phase

      duration:

      0.00020732590928673744
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0016972562298178673
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_hastyepics.py
      lineno: 42
      message: AssertionError: assert 'TEST:MOTOR_1.' == 'TEST:MOTOR_1'
      
        - TEST:MOTOR_1
        + TEST:MOTOR_1.
        ?             +
      

      traceback:

      -   path: tests/test_utils_hastyepics.py
        lineno: 42
        message: AssertionError
      

      longrepr:

      def test_motor_without_suffix_and_dot():
              # Suffix .VAL ... dot should be stripped from name
              m1 = Motor("TEST:MOTOR_1.VAL")
      >       assert m1._prefix == "TEST:MOTOR_1"
      E       AssertionError: assert 'TEST:MOTOR_1.' == 'TEST:MOTOR_1'
      E         
      E         - TEST:MOTOR_1
      E         + TEST:MOTOR_1.
      E         ?             +
      
      tests/test_utils_hastyepics.py:42: AssertionError
      

      📌 Teardown phase

      duration:

      0.00015921471640467644
      

      outcome:

      passed
      

    Function: test_motor_initializes_device_attrs

    • Test 220

      📌 Setup phase

      duration:

      0.0001166672445833683
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.001307095866650343
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_hastyepics.py
      lineno: 79
      message: AssertionError: VAL is not a valid PV object
      assert False
       +  where False = isinstance(None, <class 'epics.pv.PV'>)
       +    where <class 'epics.pv.PV'> = <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'>.PV
       +      where <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'> = epics.pv
      

      traceback:

      -   path: tests/test_utils_hastyepics.py
        lineno: 79
        message: AssertionError
      

      longrepr:

      def test_motor_initializes_device_attrs():
              # Check that Motor correctly initializes all Device PVs from _init_list
              m = Motor("TEST:MOTOR")
      
      
              print("_init_list contents:", m._init_list)
              print("All attributes on motor:", dir(m))
      
              for attr in m._init_list:
                  print(f"\nChecking attribute: {attr}")
                  assert hasattr(m, attr), f"Motor is missing attribute: {attr}"
                  pv = getattr(m, attr)
      
                  print(f"PV object: {pv}")
                  print("Type:", type(pv))
                  if pv is not None:
                      print(f"PV name: {pv.pvname}")
                      print(f"PV connected: {pv.connected}")
      
      >           assert isinstance(pv, epics.pv.PV), f"{attr} is not a valid PV object"
      E           AssertionError: VAL is not a valid PV object
      E           assert False
      E            +  where False = isinstance(None, <class 'epics.pv.PV'>)
      E            +    where <class 'epics.pv.PV'> = <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'>.PV
      E            +      where <module 'epics.pv' from '/workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pyepics-3.4.3-py3.9.egg/epics/pv.py'> = epics.pv
      
      tests/test_utils_hastyepics.py:79: AssertionError
      

      📌 Teardown phase

      duration:

      0.00015084492042660713
      

      outcome:

      passed
      
  • 📄 test_utils_logcfg.py

    Function: test_import_logging_once_per_module

    • Test 236

      📌 Setup phase

      duration:

      0.00013614213094115257
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      1.7201125058345497
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_logcfg.py
      lineno: 78
      message: AssertionError: Expected 1 import log for 'math', found 0
      assert 0 == 1
      

      traceback:

      -   path: tests/test_utils_logcfg.py
        lineno: 78
        message: AssertionError
      

      longrepr:

      def test_import_logging_once_per_module():
              code = textwrap.dedent("""
                  from slic.utils.logcfg import *
                  import math
                  import io
                  import random
              """)
      
              with tempfile.NamedTemporaryFile("w", suffix=".py", delete=False) as tmp:
                  tmp.write(code)
                  tmp_path = tmp.name
      
              env = os.environ.copy()
              root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
              env["PYTHONPATH"] = root_path + os.pathsep + env.get("PYTHONPATH", "")
      
              result = subprocess.run([sys.executable, tmp_path], capture_output=True, text=True, env=env)
              os.remove(tmp_path)
      
              assert result.returncode == 0, f"Script failed:\n{result.stderr}"
      
              stderr = result.stderr
              print(stderr)
              lines = stderr.splitlines()
              for mod in ["math", "io", "random"]:
                  count = sum(1 for line in lines if f"importing: {mod}" in line)
      >           assert count == 1, f"Expected 1 import log for '{mod}', found {count}"
      E           AssertionError: Expected 1 import log for 'math', found 0
      E           assert 0 == 1
      
      tests/test_utils_logcfg.py:78: AssertionError
      

      📌 Teardown phase

      duration:

      0.00034718774259090424
      

      outcome:

      passed
      
  • 📄 test_utils_npy.py

    Function: test_nice_arange

    • Test 246
      params: start=5, stop=0, step=-1, expected="[5. 4. 3. 2. 1. 0.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -1
        expected: [5. 4. 3. 2. 1. 0.]
      id: 5-0--1-expected1
      

      📌 Setup phase

      duration:

      0.0003942972980439663
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009809588082134724
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-06, atol=0
      
      Mismatched elements: 6 / 6 (100%)
      Max absolute difference: 5.
      Max relative difference: 3.
       x: array([0., 1., 2., 3., 4., 5.])
       y: array([5., 4., 3., 2., 1., 0.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 16
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -1, expected = array([5., 4., 3., 2., 1., 0.])
      
          @pytest.mark.parametrize("start, stop, step, expected", [
              (0, 5, 1, np.linspace(0, 5, 6)),                       # regular integer step
              (5, 0, -1, np.linspace(5, 0, 6)),                      # reversed with negative step
              (1, 2, 0.3, np.linspace(1, 2, 4)),                     # step doesn't divide evenly
              (-2, 2, 1.5, np.linspace(-2, 2, 3)),                   # centered range
              (2.5, 0.5, -0.4, np.linspace(2.5, 0.5, 6)),            # reversed float
          ])
          def test_nice_arange(start, stop, step, expected):
      >       np.testing.assert_allclose(nice_arange(start, stop, step), expected, rtol=1e-6)
      
      tests/test_utils_npy.py:16: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2b32da24c0>, array([0., 1., 2., 3., 4., 5.]), array([5., 4., 3., 2., 1., 0.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-06, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-06, atol=0
      E           
      E           Mismatched elements: 6 / 6 (100%)
      E           Max absolute difference: 5.
      E           Max relative difference: 3.
      E            x: array([0., 1., 2., 3., 4., 5.])
      E            y: array([5., 4., 3., 2., 1., 0.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002652588300406933
      

      outcome:

      passed
      
    • Test 248
      params: start=-2, stop=2, step=1.5, expected="[-2. 0. 2.]"

      📌 Runtime Parameters

      params:
        start: -2
        stop: 2
        step: 1.5
        expected: [-2.  0.  2.]
      id: -2-2-1.5-expected3
      

      📌 Setup phase

      duration:

      0.0003685569390654564
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000722960103303194
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-06, atol=0
      
      (shapes (4,), (3,) mismatch)
       x: array([-2.      , -0.666667,  0.666667,  2.      ])
       y: array([-2.,  0.,  2.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 16
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -2, stop = 2, step = 1.5, expected = array([-2.,  0.,  2.])
      
          @pytest.mark.parametrize("start, stop, step, expected", [
              (0, 5, 1, np.linspace(0, 5, 6)),                       # regular integer step
              (5, 0, -1, np.linspace(5, 0, 6)),                      # reversed with negative step
              (1, 2, 0.3, np.linspace(1, 2, 4)),                     # step doesn't divide evenly
              (-2, 2, 1.5, np.linspace(-2, 2, 3)),                   # centered range
              (2.5, 0.5, -0.4, np.linspace(2.5, 0.5, 6)),            # reversed float
          ])
          def test_nice_arange(start, stop, step, expected):
      >       np.testing.assert_allclose(nice_arange(start, stop, step), expected, rtol=1e-6)
      
      tests/test_utils_npy.py:16: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2adf7d5d30>, array([-2.        , -0.66666667,  0.66666667,  2.        ]), array([-2.,  0.,  2.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-06, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-06, atol=0
      E           
      E           (shapes (4,), (3,) mismatch)
      E            x: array([-2.      , -0.666667,  0.666667,  2.      ])
      E            y: array([-2.,  0.,  2.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00022595981135964394
      

      outcome:

      passed
      
    • Test 249
      params: start=2.5, stop=0.5, step=-0.4, expected="[2.5 2.1 1.7 1.3 0.9 0.5]"

      📌 Runtime Parameters

      params:
        start: 2.5
        stop: 0.5
        step: -0.4
        expected: [2.5 2.1 1.7 1.3 0.9 0.5]
      id: 2.5-0.5--0.4-expected4
      

      📌 Setup phase

      duration:

      0.0003782259300351143
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0009111897088587284
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-06, atol=0
      
      Mismatched elements: 6 / 6 (100%)
      Max absolute difference: 2.
      Max relative difference: 4.
       x: array([0.5, 0.9, 1.3, 1.7, 2.1, 2.5])
       y: array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 16
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 2.5, stop = 0.5, step = -0.4
      expected = array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5])
      
          @pytest.mark.parametrize("start, stop, step, expected", [
              (0, 5, 1, np.linspace(0, 5, 6)),                       # regular integer step
              (5, 0, -1, np.linspace(5, 0, 6)),                      # reversed with negative step
              (1, 2, 0.3, np.linspace(1, 2, 4)),                     # step doesn't divide evenly
              (-2, 2, 1.5, np.linspace(-2, 2, 3)),                   # centered range
              (2.5, 0.5, -0.4, np.linspace(2.5, 0.5, 6)),            # reversed float
          ])
          def test_nice_arange(start, stop, step, expected):
      >       np.testing.assert_allclose(nice_arange(start, stop, step), expected, rtol=1e-6)
      
      tests/test_utils_npy.py:16: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade6b6940>, array([0.5, 0.9, 1.3, 1.7, 2.1, 2.5]), array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-06, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-06, atol=0
      E           
      E           Mismatched elements: 6 / 6 (100%)
      E           Max absolute difference: 2.
      E           Max relative difference: 4.
      E            x: array([0.5, 0.9, 1.3, 1.7, 2.1, 2.5])
      E            y: array([2.5, 2.1, 1.7, 1.3, 0.9, 0.5])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00023151002824306488
      

      outcome:

      passed
      

    Function: test_nice_steps_left_aligned

    • Test 261
      params: start=0, stop=5, step=2, endpoint=true, expected="[0. 2. 4. 6.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: True
        expected: [0. 2. 4. 6.]
      id: 0-5-2-True-expected0
      

      📌 Setup phase

      duration:

      0.00037802476435899734
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004899166524410248
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([0, 2, 4])
       y: array([0., 2., 4., 6.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = True
      expected = array([0., 2., 4., 6.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2adf75aca0>, array([0, 2, 4]), array([0., 2., 4., 6.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([0, 2, 4])
      E            y: array([0., 2., 4., 6.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00024504493921995163
      

      outcome:

      passed
      
    • Test 262
      params: start=0, stop=5, step=2, endpoint=false, expected="[0. 2. 4.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: False
        expected: [0. 2. 4.]
      id: 0-5-2-False-expected1
      

      📌 Setup phase

      duration:

      0.00038055935874581337
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.00046481890603899956
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([0, 2])
       y: array([0., 2., 4.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = False, expected = array([0., 2., 4.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade6b6e50>, array([0, 2]), array([0., 2., 4.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([0, 2])
      E            y: array([0., 2., 4.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00023333821445703506
      

      outcome:

      passed
      
    • Test 265
      params: start=-2, stop=1, step=1.2, endpoint=true, expected="[-2. -0.8 0.4 1.6]"

      📌 Runtime Parameters

      params:
        start: -2
        stop: 1
        step: 1.2
        endpoint: True
        expected: [-2.  -0.8  0.4  1.6]
      id: -2-1-1.2-True-expected4
      

      📌 Setup phase

      duration:

      0.00037964479997754097
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005083819851279259
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([-2. , -0.8,  0.4])
       y: array([-2. , -0.8,  0.4,  1.6])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -2, stop = 1, step = 1.2, endpoint = True
      expected = array([-2. , -0.8,  0.4,  1.6])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade689b80>, array([-2. , -0.8,  0.4]), array([-2. , -0.8,  0.4,  1.6]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([-2. , -0.8,  0.4])
      E            y: array([-2. , -0.8,  0.4,  1.6])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00023215031251311302
      

      outcome:

      passed
      
    • Test 266
      params: start=5, stop=0, step=-2, endpoint=true, expected="[ 5. 3. 1. -1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: True
        expected: [ 5.  3.  1. -1.]
      id: 5-0--2-True-expected5
      

      📌 Setup phase

      duration:

      0.00038671912625432014
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0004797019064426422
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([0, 2, 4])
       y: array([ 5.,  3.,  1., -1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = True
      expected = array([ 5.,  3.,  1., -1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2adf75aca0>, array([0, 2, 4]), array([ 5.,  3.,  1., -1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([0, 2, 4])
      E            y: array([ 5.,  3.,  1., -1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00026776688173413277
      

      outcome:

      passed
      
    • Test 267
      params: start=5, stop=0, step=-2, endpoint=false, expected="[5. 3. 1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: False
        expected: [5. 3. 1.]
      id: 5-0--2-False-expected6
      

      📌 Setup phase

      duration:

      0.0004036668688058853
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005229697562754154
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([0, 2])
       y: array([5., 3., 1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 53
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = False, expected = array([5., 3., 1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([0., 2., 4., 6.])),               # Normal case with endpoint overshooting
              (0, 5, 2, False, np.array([0., 2., 4.])),                  # No endpoint
              (-1, 2, 1.5, True, np.array([-1., 0.5, 2.])),              # Needs fractional alignment to include stop
              (-1, 2, 1.5, False, np.array([-1., 0.5])),                 # Same range but no endpoint
              (-2, 1, 1.2, True, np.array([-2., -0.8, 0.4, 1.6])),       # Step overshoots
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Backward steps with overshoot
              (5, 0, -2, False, np.array([5., 3., 1.])),                 # No endpoint, backward
          ])
          def test_nice_steps_left_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_left_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:53: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade6893a0>, array([0, 2]), array([5., 3., 1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([0, 2])
      E            y: array([5., 3., 1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002937726676464081
      

      outcome:

      passed
      

    Function: test_nice_steps_right_aligned

    • Test 268
      params: start=0, stop=5, step=2, endpoint=true, expected="[6. 4. 2. 0.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: True
        expected: [6. 4. 2. 0.]
      id: 0-5-2-True-expected0
      

      📌 Setup phase

      duration:

      0.00042837997898459435
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005432730540633202
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([1, 3, 5])
       y: array([6., 4., 2., 0.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = True
      expected = array([6., 4., 2., 0.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade692550>, array([1, 3, 5]), array([6., 4., 2., 0.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([1, 3, 5])
      E            y: array([6., 4., 2., 0.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002773851156234741
      

      outcome:

      passed
      
    • Test 269
      params: start=0, stop=5, step=2, endpoint=false, expected="[4. 2. 0.]"

      📌 Runtime Parameters

      params:
        start: 0
        stop: 5
        step: 2
        endpoint: False
        expected: [4. 2. 0.]
      id: 0-5-2-False-expected1
      

      📌 Setup phase

      duration:

      0.0004326538182795048
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005161818116903305
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([3, 5])
       y: array([4., 2., 0.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 0, stop = 5, step = 2, endpoint = False, expected = array([4., 2., 0.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade6b6310>, array([3, 5]), array([4., 2., 0.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([3, 5])
      E            y: array([4., 2., 0.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.000274130143225193
      

      outcome:

      passed
      
    • Test 270
      params: start=-1, stop=2, step=1.5, endpoint=true, expected="[ 2. 0.5 -1. ]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: True
        expected: [ 2.   0.5 -1. ]
      id: -1-2-1.5-True-expected2
      

      📌 Setup phase

      duration:

      0.00041184201836586
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008274102583527565
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      Mismatched elements: 2 / 3 (66.7%)
      Max absolute difference: 3.
      Max relative difference: 3.
       x: array([-1. ,  0.5,  2. ])
       y: array([ 2. ,  0.5, -1. ])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -1, stop = 2, step = 1.5, endpoint = True
      expected = array([ 2. ,  0.5, -1. ])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2ade692700>, array([-1. ,  0.5,  2. ]), array([ 2. ,  0.5, -1. ]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           Mismatched elements: 2 / 3 (66.7%)
      E           Max absolute difference: 3.
      E           Max relative difference: 3.
      E            x: array([-1. ,  0.5,  2. ])
      E            y: array([ 2. ,  0.5, -1. ])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002499939873814583
      

      outcome:

      passed
      
    • Test 271
      params: start=-1, stop=2, step=1.5, endpoint=false, expected="[ 0.5 -1. ]"

      📌 Runtime Parameters

      params:
        start: -1
        stop: 2
        step: 1.5
        endpoint: False
        expected: [ 0.5 -1. ]
      id: -1-2-1.5-False-expected3
      

      📌 Setup phase

      duration:

      0.0004156469367444515
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0008257897570729256
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      Mismatched elements: 1 / 2 (50%)
      Max absolute difference: 3.
      Max relative difference: 3.
       x: array([0.5, 2. ])
       y: array([ 0.5, -1. ])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -1, stop = 2, step = 1.5, endpoint = False
      expected = array([ 0.5, -1. ])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2adf695dc0>, array([0.5, 2. ]), array([ 0.5, -1. ]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           Mismatched elements: 1 / 2 (50%)
      E           Max absolute difference: 3.
      E           Max relative difference: 3.
      E            x: array([0.5, 2. ])
      E            y: array([ 0.5, -1. ])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002929121255874634
      

      outcome:

      passed
      
    • Test 272
      params: start=5, stop=0, step=-2, endpoint=true, expected="[ 5. 3. 1. -1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: True
        expected: [ 5.  3.  1. -1.]
      id: 5-0--2-True-expected4
      

      📌 Setup phase

      duration:

      0.000419550109654665
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.000542790163308382
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (3,), (4,) mismatch)
       x: array([1, 3, 5])
       y: array([ 5.,  3.,  1., -1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = True
      expected = array([ 5.,  3.,  1., -1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2b330288b0>, array([1, 3, 5]), array([ 5.,  3.,  1., -1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (3,), (4,) mismatch)
      E            x: array([1, 3, 5])
      E            y: array([ 5.,  3.,  1., -1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00027671223506331444
      

      outcome:

      passed
      
    • Test 273
      params: start=5, stop=0, step=-2, endpoint=false, expected="[ 3. 1. -1.]"

      📌 Runtime Parameters

      params:
        start: 5
        stop: 0
        step: -2
        endpoint: False
        expected: [ 3.  1. -1.]
      id: 5-0--2-False-expected5
      

      📌 Setup phase

      duration:

      0.0004091709852218628
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005132718943059444
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (2,), (3,) mismatch)
       x: array([3, 5])
       y: array([ 3.,  1., -1.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = 5, stop = 0, step = -2, endpoint = False
      expected = array([ 3.,  1., -1.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2adf7d5d30>, array([3, 5]), array([ 3.,  1., -1.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (2,), (3,) mismatch)
      E            x: array([3, 5])
      E            y: array([ 3.,  1., -1.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.00025209924206137657
      

      outcome:

      passed
      
    • Test 274
      params: start=-3, stop=3, step=2, endpoint=true, expected="[ 5. 3. 1. -1. -3.]"

      📌 Runtime Parameters

      params:
        start: -3
        stop: 3
        step: 2
        endpoint: True
        expected: [ 5.  3.  1. -1. -3.]
      id: -3-3-2-True-expected6
      

      📌 Setup phase

      duration:

      0.0004080347716808319
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0005597141571342945
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/contextlib.py
      lineno: 75
      message: AssertionError: 
      Not equal to tolerance rtol=1e-07, atol=0
      
      (shapes (4,), (5,) mismatch)
       x: array([-3, -1,  1,  3])
       y: array([ 5.,  3.,  1., -1., -3.])
      

      traceback:

      -   path: tests/test_utils_npy.py
        lineno: 67
        message: None
      -   path: .pixi/envs/default/lib/python3.8/contextlib.py
        lineno: 75
        message: AssertionError
      

      longrepr:

      start = -3, stop = 3, step = 2, endpoint = True
      expected = array([ 5.,  3.,  1., -1., -3.])
      
          @pytest.mark.parametrize("start, stop, step, endpoint, expected", [
              (0, 5, 2, True, np.array([6., 4., 2., 0.])),               # Right-aligned, overshoots left
              (0, 5, 2, False, np.array([4., 2., 0.])),                  # Right-aligned, no endpoint
              (-1, 2, 1.5, True, np.array([2., 0.5, -1.])),              # Step doesn t divide evenly, reverse it
              (-1, 2, 1.5, False, np.array([0.5, -1.])),                 # Without endpoint
              (5, 0, -2, True, np.array([5., 3., 1., -1.])),             # Negative step, includes endpoint overshoot
              (5, 0, -2, False, np.array([3., 1., -1.])),                # No endpoint, skips last one
              (-3, 3, 2, True, np.array([5., 3., 1., -1., -3.])),        # Large symmetric range, reverse
          ])
          def test_nice_steps_right_aligned(start, stop, step, endpoint, expected):
      >       np.testing.assert_allclose(nice_steps_right_aligned(start, stop, step, endpoint), expected)
      
      tests/test_utils_npy.py:67: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      args = (<function assert_allclose.<locals>.compare at 0x7f2b33c17c10>, array([-3, -1,  1,  3]), array([ 5.,  3.,  1., -1., -3.]))
      kwds = {'equal_nan': True, 'err_msg': '', 'header': 'Not equal to tolerance rtol=1e-07, atol=0', 'verbose': True}
      
          @wraps(func)
          def inner(*args, **kwds):
              with self._recreate_cm():
      >           return func(*args, **kwds)
      E           AssertionError: 
      E           Not equal to tolerance rtol=1e-07, atol=0
      E           
      E           (shapes (4,), (5,) mismatch)
      E            x: array([-3, -1,  1,  3])
      E            y: array([ 5.,  3.,  1., -1., -3.])
      
      .pixi/envs/default/lib/python3.8/contextlib.py:75: AssertionError
      

      📌 Teardown phase

      duration:

      0.000245481263846159
      

      outcome:

      passed
      
  • 📄 test_utils_pv.py

    Function: test_put_with_progress_and_repr

    • Test 347
      params: value=0.0, expected_bar=" ", expected_color="\u001b[32m"

      📌 Runtime Parameters

      params:
        value: 0.0
        expected_bar:           
        expected_color: 
      id: 0.0-          -\x1b[32m
      

      📌 Setup phase

      duration:

      1.0022931648418307
      

      outcome:

      passed
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: START_TIME: value=2025-08-06 19:45:18.339530 alarm=NO_ALARM severity=NO_ALARM flag=True mask=7 time=1123357518.339559507
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.3396385
        msecs: 339.63847160339355
        relativeCreated: 8072.030067443848
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=4 time=1123357518.340154495
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.3401787
        msecs: 340.1787281036377
        relativeCreated: 8072.570323944092
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357518.440571333
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.4406211
        msecs: 440.62113761901855
        relativeCreated: 8173.012733459473
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357518.541118098
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.5411732
        msecs: 541.1732196807861
        relativeCreated: 8273.56481552124
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357518.641594196
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.6416438
        msecs: 641.643762588501
        relativeCreated: 8374.035358428955
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357518.742106975
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.7421608
        msecs: 742.1607971191406
        relativeCreated: 8474.552392959595
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357518.842621759
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.8426774
        msecs: 842.6773548126221
        relativeCreated: 8575.068950653076
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357518.943186937
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509518.9432428
        msecs: 943.2427883148193
        relativeCreated: 8675.634384155273
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.43732492
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.0437891
        msecs: 43.78914833068848
        relativeCreated: 8776.180744171143
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.144247307
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.1443026
        msecs: 144.3026065826416
        relativeCreated: 8876.694202423096
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.244746785
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.2447956
        msecs: 244.795560836792
        relativeCreated: 8977.187156677246
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      📌 Call phase

      duration:

      0.02124989777803421
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 81
      message: AssertionError: Expected bar '          ' not found in:
        [DEBUG] PUT start = 0.0, stop = 0.0
        [ 0 |██████████████████████████████| 0 ]   0
      
      assert []
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 81
        message: AssertionError
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.345227742
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3452885
        msecs: 345.2885150909424
        relativeCreated: 9077.680110931396
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3562999
        msecs: 356.29987716674805
        relativeCreated: 9088.691473007202
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3565888
        msecs: 356.58884048461914
        relativeCreated: 9088.980436325073
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.356854240
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3568764
        msecs: 356.8763732910156
        relativeCreated: 9089.26796913147
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.35789
        msecs: 357.88989067077637
        relativeCreated: 9090.28148651123
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3582597
        msecs: 358.2596778869629
        relativeCreated: 9090.651273727417
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.358323239
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3583364
        msecs: 358.3364486694336
        relativeCreated: 9090.728044509888
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = 0.0, expected_bar = '          ', expected_color = '\x1b[32m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
              assert pv.get() == pytest.approx(0.0)
      
              # Capture tous les prints dans une liste
              printed_lines = []
      
              def fake_print(*args, **kwargs):
                  line = " ".join(str(a) for a in args)
                  printed_lines.append(line)
      
              # Monkeypatch print uniquement dans ce contexte
              original_print = builtins.print
              builtins.print = fake_print
              try:
                  pv.put(value, show_progress=True)
              finally:
                  builtins.print = original_print
      
              # Vérifie que la bonne barre a été affichée au moins une fois
              matches = [line for line in printed_lines if f"|{expected_bar}|" in line]
      >       assert matches, f"Expected bar '{expected_bar}' not found in:\n" + "\n".join(printed_lines)
      E       AssertionError: Expected bar '          ' not found in:
      E         [DEBUG] PUT start = 0.0, stop = 0.0
      E         [ 0 |██████████████████████████████| 0 ]   0
      E         
      E       assert []
      
      tests/test_utils_pv.py:81: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002601700834929943
      

      outcome:

      passed
      
    • Test 348
      params: value=25.0, expected_bar="██▌ ", expected_color="\u001b[32m"

      📌 Runtime Parameters

      params:
        value: 25.0
        expected_bar: ██▌       
        expected_color: 
      id: 25.0-\u2588\u2588\u258c       -\x1b[32m
      

      📌 Setup phase

      duration:

      0.0003550569526851177
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0022203209809958935
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 81
      message: AssertionError: Expected bar '██▌       ' not found in:
        [DEBUG] PUT start = 0.0, stop = 25.0
        [ 0 |                              | 25 ]   0
        [DEBUG] Callback called with value = 25.0
        [ 0 |██████████████████████████████| 25 ]   25
      
      assert []
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 81
        message: AssertionError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.365465
        msecs: 365.4649257659912
        relativeCreated: 9097.856521606445
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3658128
        msecs: 365.8127784729004
        relativeCreated: 9098.204374313354
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.365885508
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.365906
        msecs: 365.9060001373291
        relativeCreated: 9098.297595977783
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3663375
        msecs: 366.33753776550293
        relativeCreated: 9098.729133605957
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=25.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3665953
        msecs: 366.5952682495117
        relativeCreated: 9098.986864089966
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=25.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.366651504
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3666635
        msecs: 366.66345596313477
        relativeCreated: 9099.055051803589
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = 25.0, expected_bar = '██▌       ', expected_color = '\x1b[32m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
              assert pv.get() == pytest.approx(0.0)
      
              # Capture tous les prints dans une liste
              printed_lines = []
      
              def fake_print(*args, **kwargs):
                  line = " ".join(str(a) for a in args)
                  printed_lines.append(line)
      
              # Monkeypatch print uniquement dans ce contexte
              original_print = builtins.print
              builtins.print = fake_print
              try:
                  pv.put(value, show_progress=True)
              finally:
                  builtins.print = original_print
      
              # Vérifie que la bonne barre a été affichée au moins une fois
              matches = [line for line in printed_lines if f"|{expected_bar}|" in line]
      >       assert matches, f"Expected bar '{expected_bar}' not found in:\n" + "\n".join(printed_lines)
      E       AssertionError: Expected bar '██▌       ' not found in:
      E         [DEBUG] PUT start = 0.0, stop = 25.0
      E         [ 0 |                              | 25 ]   0
      E         [DEBUG] Callback called with value = 25.0
      E         [ 0 |██████████████████████████████| 25 ]   25
      E         
      E       assert []
      
      tests/test_utils_pv.py:81: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002116430550813675
      

      outcome:

      passed
      
    • Test 349
      params: value=50.0, expected_bar="█████ ", expected_color="\u001b[32m"

      📌 Runtime Parameters

      params:
        value: 50.0
        expected_bar: █████     
        expected_color: 
      id: 50.0-\u2588\u2588\u2588\u2588\u2588     -\x1b[32m
      

      📌 Setup phase

      duration:

      0.00031990697607398033
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0021531060338020325
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 62
      message: assert 25.0 == 0.0 ± 1.0e-12
      
        comparison failed
        Obtained: 25.0
        Expected: 0.0 ± 1.0e-12
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 62
        message: AssertionError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 25.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3733053
        msecs: 373.3053207397461
        relativeCreated: 9105.6969165802
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=25.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3737142
        msecs: 373.7142086029053
        relativeCreated: 9106.10580444336
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.373790333
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3738058
        msecs: 373.8057613372803
        relativeCreated: 9106.197357177734
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.374585
        msecs: 374.5849132537842
        relativeCreated: 9106.976509094238
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = 50.0, expected_bar = '█████     ', expected_color = '\x1b[32m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
      >       assert pv.get() == pytest.approx(0.0)
      E       assert 25.0 == 0.0 ± 1.0e-12
      E         
      E         comparison failed
      E         Obtained: 25.0
      E         Expected: 0.0 ± 1.0e-12
      
      tests/test_utils_pv.py:62: AssertionError
      

      📌 Teardown phase

      duration:

      0.00019865203648805618
      

      outcome:

      passed
      
    • Test 350
      params: value=75.0, expected_bar="███████▌ ", expected_color="\u001b[32m"

      📌 Runtime Parameters

      params:
        value: 75.0
        expected_bar: ███████▌  
        expected_color: 
      id: 75.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  -\x1b[32m
      

      📌 Setup phase

      duration:

      0.00031088897958397865
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.002025818917900324
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 81
      message: AssertionError: Expected bar '███████▌  ' not found in:
        [DEBUG] PUT start = 0.0, stop = 75.0
        [ 0 |                              | 75 ]   0
      
      assert []
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 81
        message: AssertionError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3802397
        msecs: 380.23972511291504
        relativeCreated: 9112.63132095337
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3804698
        msecs: 380.46979904174805
        relativeCreated: 9112.861394882202
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.380539183
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.380553
        msecs: 380.5530071258545
        relativeCreated: 9112.944602966309
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.38105
        msecs: 381.05010986328125
        relativeCreated: 9113.441705703735
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=75.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.381308
        msecs: 381.30807876586914
        relativeCreated: 9113.699674606323
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=75.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.381364785
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.381377
        msecs: 381.3769817352295
        relativeCreated: 9113.768577575684
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = 75.0, expected_bar = '███████▌  ', expected_color = '\x1b[32m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
              assert pv.get() == pytest.approx(0.0)
      
              # Capture tous les prints dans une liste
              printed_lines = []
      
              def fake_print(*args, **kwargs):
                  line = " ".join(str(a) for a in args)
                  printed_lines.append(line)
      
              # Monkeypatch print uniquement dans ce contexte
              original_print = builtins.print
              builtins.print = fake_print
              try:
                  pv.put(value, show_progress=True)
              finally:
                  builtins.print = original_print
      
              # Vérifie que la bonne barre a été affichée au moins une fois
              matches = [line for line in printed_lines if f"|{expected_bar}|" in line]
      >       assert matches, f"Expected bar '{expected_bar}' not found in:\n" + "\n".join(printed_lines)
      E       AssertionError: Expected bar '███████▌  ' not found in:
      E         [DEBUG] PUT start = 0.0, stop = 75.0
      E         [ 0 |                              | 75 ]   0
      E         
      E       assert []
      
      tests/test_utils_pv.py:81: AssertionError
      

      📌 Teardown phase

      duration:

      0.00020321179181337357
      

      outcome:

      passed
      
    • Test 351
      params: value=100.0, expected_bar="██████████", expected_color="\u001b[32m"

      📌 Runtime Parameters

      params:
        value: 100.0
        expected_bar: ██████████
        expected_color: 
      id: 100.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588-\x1b[32m
      

      📌 Setup phase

      duration:

      0.0003067697398364544
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0023210481740534306
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 81
      message: AssertionError: Expected bar '██████████' not found in:
        [DEBUG] PUT start = 0.0, stop = 100.0
        [ 0 |                              | 100 ]   0
        [DEBUG] Callback called with value = 100.0
        [ 0 |██████████████████████████████| 100 ]   100
      
      assert []
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 81
        message: AssertionError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 75.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3882034
        msecs: 388.20338249206543
        relativeCreated: 9120.59497833252
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=75.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3884406
        msecs: 388.4406089782715
        relativeCreated: 9120.832204818726
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.388510984
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.388524
        msecs: 388.52405548095703
        relativeCreated: 9120.915651321411
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3892062
        msecs: 389.2061710357666
        relativeCreated: 9121.59776687622
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=100.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3894708
        msecs: 389.47081565856934
        relativeCreated: 9121.862411499023
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=100.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.389529138
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3895414
        msecs: 389.5413875579834
        relativeCreated: 9121.932983398438
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = 100.0, expected_bar = '██████████', expected_color = '\x1b[32m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
              assert pv.get() == pytest.approx(0.0)
      
              # Capture tous les prints dans une liste
              printed_lines = []
      
              def fake_print(*args, **kwargs):
                  line = " ".join(str(a) for a in args)
                  printed_lines.append(line)
      
              # Monkeypatch print uniquement dans ce contexte
              original_print = builtins.print
              builtins.print = fake_print
              try:
                  pv.put(value, show_progress=True)
              finally:
                  builtins.print = original_print
      
              # Vérifie que la bonne barre a été affichée au moins une fois
              matches = [line for line in printed_lines if f"|{expected_bar}|" in line]
      >       assert matches, f"Expected bar '{expected_bar}' not found in:\n" + "\n".join(printed_lines)
      E       AssertionError: Expected bar '██████████' not found in:
      E         [DEBUG] PUT start = 0.0, stop = 100.0
      E         [ 0 |                              | 100 ]   0
      E         [DEBUG] Callback called with value = 100.0
      E         [ 0 |██████████████████████████████| 100 ]   100
      E         
      E       assert []
      
      tests/test_utils_pv.py:81: AssertionError
      

      📌 Teardown phase

      duration:

      0.00019752606749534607
      

      outcome:

      passed
      
    • Test 352
      params: value=150.0, expected_bar=">>>>>>>>>>", expected_color="\u001b[31m"

      📌 Runtime Parameters

      params:
        value: 150.0
        expected_bar: >>>>>>>>>>
        expected_color: 
      id: 150.0->>>>>>>>>>-\x1b[31m
      

      📌 Setup phase

      duration:

      0.00029832031577825546
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0019782320596277714
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 62
      message: assert 100.0 == 0.0 ± 1.0e-12
      
        comparison failed
        Obtained: 100.0
        Expected: 0.0 ± 1.0e-12
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 62
        message: AssertionError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 100.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.395748
        msecs: 395.7479000091553
        relativeCreated: 9128.13949584961
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=100.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.3960602
        msecs: 396.0602283477783
        relativeCreated: 9128.451824188232
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.396117563
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.3961298
        msecs: 396.129846572876
        relativeCreated: 9128.52144241333
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.3969352
        msecs: 396.93522453308105
        relativeCreated: 9129.326820373535
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = 150.0, expected_bar = '>>>>>>>>>>', expected_color = '\x1b[31m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
      >       assert pv.get() == pytest.approx(0.0)
      E       assert 100.0 == 0.0 ± 1.0e-12
      E         
      E         comparison failed
      E         Obtained: 100.0
      E         Expected: 0.0 ± 1.0e-12
      
      tests/test_utils_pv.py:62: AssertionError
      

      📌 Teardown phase

      duration:

      0.00019571837037801743
      

      outcome:

      passed
      
    • Test 353
      params: value=-50.0, expected_bar="<<<<<<<<<<", expected_color="\u001b[31m"

      📌 Runtime Parameters

      params:
        value: -50.0
        expected_bar: <<<<<<<<<<
        expected_color: 
      id: -50.0-<<<<<<<<<<-\x1b[31m
      

      📌 Setup phase

      duration:

      0.0003408323973417282
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.002228120807558298
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 81
      message: AssertionError: Expected bar '<<<<<<<<<<' not found in:
        [DEBUG] PUT start = 0.0, stop = -50.0
        [ 0 |                              | -50 ]   0
        [DEBUG] Callback called with value = -50.0
        [ 0 |██████████████████████████████| -50 ]   -50
      
      assert []
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 81
        message: AssertionError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.4024804
        msecs: 402.4803638458252
        relativeCreated: 9134.87195968628
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.402819
        msecs: 402.8189182281494
        relativeCreated: 9135.210514068604
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.402875328
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.4028869
        msecs: 402.88686752319336
        relativeCreated: 9135.278463363647
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value 0.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.4032843
        msecs: 403.28431129455566
        relativeCreated: 9135.67590713501
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=0.0 new=-50.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.4035654
        msecs: 403.5654067993164
        relativeCreated: 9135.95700263977
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=-50.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.403619981
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.4036322
        msecs: 403.63216400146484
        relativeCreated: 9136.023759841919
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      value = -50.0, expected_bar = '<<<<<<<<<<', expected_color = '\x1b[31m'
      
          @pytest.mark.parametrize("value, expected_bar, expected_color", [
              (0.0, "          ", colorama.Fore.GREEN),
              (25.0, "██▌       ", colorama.Fore.GREEN),
              (50.0, "█████     ", colorama.Fore.GREEN),
              (75.0, "███████▌  ", colorama.Fore.GREEN),
              (100.0, "██████████", colorama.Fore.GREEN),
              (150.0, ">>>>>>>>>>", colorama.Fore.RED),
              (-50.0, "<<<<<<<<<<", colorama.Fore.RED)
          ])
          def test_put_with_progress_and_repr(value, expected_bar, expected_color):
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
      
              pv.put(0.0, wait=True)
              assert pv.get() == pytest.approx(0.0)
      
              # Capture tous les prints dans une liste
              printed_lines = []
      
              def fake_print(*args, **kwargs):
                  line = " ".join(str(a) for a in args)
                  printed_lines.append(line)
      
              # Monkeypatch print uniquement dans ce contexte
              original_print = builtins.print
              builtins.print = fake_print
              try:
                  pv.put(value, show_progress=True)
              finally:
                  builtins.print = original_print
      
              # Vérifie que la bonne barre a été affichée au moins une fois
              matches = [line for line in printed_lines if f"|{expected_bar}|" in line]
      >       assert matches, f"Expected bar '{expected_bar}' not found in:\n" + "\n".join(printed_lines)
      E       AssertionError: Expected bar '<<<<<<<<<<' not found in:
      E         [DEBUG] PUT start = 0.0, stop = -50.0
      E         [ 0 |                              | -50 ]   0
      E         [DEBUG] Callback called with value = -50.0
      E         [ 0 |██████████████████████████████| -50 ]   -50
      E         
      E       assert []
      
      tests/test_utils_pv.py:81: AssertionError
      

      📌 Teardown phase

      duration:

      0.0002051210030913353
      

      outcome:

      passed
      

    Function: test_use_callback_context_manager

    • Test 354

      📌 Setup phase

      duration:

      0.0001392671838402748
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.001149697694927454
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_pv.py
      lineno: 105
      message: AttributeError: 'PV' object has no attribute '_callbacks'
      

      traceback:

      -   path: tests/test_utils_pv.py
        lineno: 105
        message: AttributeError
      

      log:

      -   name: pcaspy.SimplePV.getValue
        msg: VAL: Read value -50.0
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 649
        funcName: getValue
        created: 1754509519.4096782
        msecs: 409.67822074890137
        relativeCreated: 9142.069816589355
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.SimplePV.writeValue
        msg: VAL: 40c4a0a7284f root  old=-50.0 new=0.0
        args: None
        levelname: INFO
        levelno: 20
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 549
        funcName: writeValue
        created: 1754509519.409956
        msecs: 409.9559783935547
        relativeCreated: 9142.347574234009
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=True mask=3 time=1123357519.410022572
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.4100344
        msecs: 410.0344181060791
        relativeCreated: 9142.426013946533
        thread: 139822077191872
        threadName: Thread-4
        processName: MainProcess
        process: 1848
      

      longrepr:

      def test_use_callback_context_manager():
              pv = PV("TEST:VAL", connection_timeout=2.0)
              assert pv.wait_for_connection(timeout=2.0), "PV not connected"
              pv.put(0.0, wait=True)
      
              seen_values = []
      
              def callback(value=None, **kwargs):
                  seen_values.append(value)
      
      >       initial_count = len(pv._callbacks)
      E       AttributeError: 'PV' object has no attribute '_callbacks'
      
      tests/test_utils_pv.py:105: AttributeError
      

      📌 Teardown phase

      duration:

      0.00019169924780726433
      

      outcome:

      passed
      
  • 📄 test_utils_richcfg.py

    Function: test_rich_inspector_outputs_more_than_builtin

    • Test 404

      📌 Setup phase

      duration:

      0.0001833760179579258
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.09647426009178162
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_richcfg.py
      lineno: 100
      message: assert '30' not in 'Type:      ...lf.name}!"\n'
      
        '30' is contained here:
           0x7f2b33030070>
        ?           ++
          File:        /workspace/tligui_y/slic/tests/test_utils_richcfg.py
          Source:     
          class User:
              """Represents a user in the system."""
      
              role = "admin"
      
              def __init__(self, name: str, age: int):
                  self.name = name
                  self.age = age
      
              def greet(self):
                  """Returns a welcome message."""
                  return f"Welcome, {self.name}!"
      

      traceback:

      -   path: tests/test_utils_richcfg.py
        lineno: 100
        message: AssertionError
      

      log:

      -   name: pcaspy.Driver.setParam
        msg: VAL: value=0.0 alarm=NO_ALARM severity=NO_ALARM flag=False mask=0 time=1123357519.552002925
        args: None
        levelname: DEBUG
        levelno: 10
        pathname: /workspace/tligui_y/slic/.pixi/envs/default/lib/python3.8/site-packages/pcaspy/driver.py
        filename: driver.py
        module: driver
        exc_info: None
        exc_text: None
        stack_info: None
        lineno: 175
        funcName: setParam
        created: 1754509519.5520546
        msecs: 552.0546436309814
        relativeCreated: 9284.446239471436
        thread: 139822068799168
        threadName: Thread-3
        processName: MainProcess
        process: 1848
      

      longrepr:

      monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f2b33bf2dc0>
      
          def test_rich_inspector_outputs_more_than_builtin(monkeypatch):
              # Simulate a fake IPython shell
              class FakeInspector:
                  def __init__(self):
                      self.pinfo = None
      
              class FakeIPython:
                  def __init__(self):
                      self.inspector = FakeInspector()
      
              fake_ipy = FakeIPython()
              monkeypatch.setattr("slic.utils.richcfg.get_ipython", lambda: fake_ipy)
      
              # Apply your Rich-based inspector patch
              replace_ipython_inspect()
              assert isinstance(fake_ipy.inspector.pinfo, types.FunctionType)
      
              # Capture Rich inspector output
              rich_buf = io.StringIO()
              monkeypatch.setattr("sys.stdout", rich_buf)
      
              user = User("Alice", 30)
              fake_ipy.inspector.pinfo(user, oname="user", detail_level=1)
              rich_text = rich_buf.getvalue()
      
              # Capture original IPython inspector output
              builtin_buf = io.StringIO()
              user = User("Alice", 30)
              original_stdout = sys.stdout
              sys.stdout = builtin_buf
              inspector = Inspector()
      
              info_dict = inspector.info(user)
              info = dict_to_oinfo(info_dict)
      
              inspector.pinfo(user, oname="user", info=info, detail_level=1)
              sys.stdout = original_stdout
              builtin_text = builtin_buf.getvalue()
              builtin_text = strip_ansi(builtin_text)
      
      
              print(rich_text, file=sys.__stdout__)
              print('\n\n\n', file=sys.__stdout__)
              print(builtin_text, file=sys.__stdout__)
      
              # Rich output: shows actual instance content
              # Rich shows live instance attribute values like:
              #   age = 30
              #   name = 'Alice'
              #   role = 'admin'
              assert "age = 30" in rich_text
              assert "name = 'Alice'" in rich_text
      
              # Built-in inspector does NOT show instance values
      >       assert "30" not in builtin_text
      E       assert '30' not in 'Type:      ...lf.name}!"\n'
      E         
      E         '30' is contained here:
      E            0x7f2b33030070>
      E         ?           ++
      E           File:        /workspace/tligui_y/slic/tests/test_utils_richcfg.py
      E           Source:     
      E           class User:
      E               """Represents a user in the system."""
      E           
      E               role = "admin"
      E           
      E               def __init__(self, name: str, age: int):
      E                   self.name = name
      E                   self.age = age
      E           
      E               def greet(self):
      E                   """Returns a welcome message."""
      E                   return f"Welcome, {self.name}!"
      
      tests/test_utils_richcfg.py:100: AssertionError
      

      📌 Teardown phase

      duration:

      0.00027586380019783974
      

      outcome:

      passed
      
  • 📄 test_utils_tqdm_mod.py

    Function: test_float_alignment_in_bar

    • Test 453

      📌 Setup phase

      duration:

      0.00012753205373883247
      

      outcome:

      passed
      

      📌 Call phase

      duration:

      0.0014814678579568863
      

      outcome:

      failed
      

      crash:

      path: /workspace/tligui_y/slic/tests/test_utils_tqdm_mod.py
      lineno: 130
      message: assert 3 == 1
       +  where 3 = len({50, 64, 65})
       +    where {50, 64, 65} = set([50, 64, 64, 65, 65])
      

      traceback:

      -   path: tests/test_utils_tqdm_mod.py
        lineno: 130
        message: AssertionError
      

      longrepr:

      def test_float_alignment_in_bar():
              # Capture the tqdm output into a string buffer
              f = io.StringIO()
              with redirect_stdout(f):
                  bar = tqdm_mod(total=100.12, desc="AlignBar", file=f, miniters=1, mininterval=0)
                  bar.set(1.3333)
                  bar.set(12.5)
                  bar.set(99.89)
                  bar.set(100.12)
                  bar.close()
      
              # Extract lines containing the label
              lines = extract_lines(f.getvalue(), "AlignBar")
      
              # Expected formatted values using format_sizeof
              expected_values = [
                  "1.3/100.1",
                  "12.5/100.1",
                  "99.9/100.1",
                  "100.1/100.1",
              ]
      
              # Extract the actual padded float/total strings from the full lines
              values = []
              for line in lines:
                  match = re.search(r"(\d{1,3}\.\d)/100\.1", line)
                  if match:
                      values.append(match.group(0))
      
              # Ensure raw 100.12 never appears : format_sizeof must have truncated it
              assert all("100.12" not in line for line in lines), "Unrounded value '100.12' found in output!"
      
              # Check all expected values appear rounded as expected by format_sizeof
              for expected in expected_values:
                  assert expected in values, f"Missing expected value: {expected}"
      
              # Check that all values are visually aligned, output with same length, to ensure that format_sizeof add the good number avec spaces
              print("\n")
              bar_segments = []
              for line in lines:
                  match = re.search(r".*?\]", line)
                  if match:
                      bar_segments.append(match.group(0))
                      print(match.group(0))
      
              lengths = [len(seg) for seg in bar_segments]
      >       assert len(set(lengths)) == 1
      E       assert 3 == 1
      E        +  where 3 = len({50, 64, 65})
      E        +    where {50, 64, 65} = set([50, 64, 64, 65, 65])
      
      tests/test_utils_tqdm_mod.py:130: AssertionError
      

      📌 Teardown phase

      duration:

      0.00014964910224080086
      

      outcome:

      passed
      

📚 Collected files

(1 tests)
    • Outcome: passed
    • result:
    -   nodeid: .
      type: Dir
    
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
      
    • ci-reports/allure/data
      • Outcome: passed
      • result:
      -   nodeid: ci-reports/allure/data/test-cases
        type: Dir
      
    • ci-reports/allure/data/test-cases
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/export
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/history
      • Outcome: passed
      • result:
      []
      
    • 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
      
    • ci-reports/allure/plugin/behaviors
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin/packages
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/plugin/screen-diff
      • Outcome: passed
      • result:
      []
      
    • ci-reports/allure/widgets
      • Outcome: passed
      • result:
      []
      
    • ci-reports/junit
      • Outcome: passed
      • result:
      []
      
    • ci-reports/markdown
      • Outcome: passed
      • result:
      []
      
elog-2.7.1 (16 tests)
  • elog-2.7.1
    • Outcome: passed
    • result:
    -   nodeid: elog-2.7.1/contrib
      type: Dir
    -   nodeid: elog-2.7.1/doc
      type: Dir
    -   nodeid: elog-2.7.1/logbooks
      type: Dir
    -   nodeid: elog-2.7.1/man
      type: Dir
    -   nodeid: elog-2.7.1/resources
      type: Dir
    -   nodeid: elog-2.7.1/scripts
      type: Dir
    -   nodeid: elog-2.7.1/src
      type: Dir
    -   nodeid: elog-2.7.1/themes
      type: Dir
    
    • elog-2.7.1/contrib
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/doc
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/logbooks
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/logbooks/demo
        type: Dir
      
    • elog-2.7.1/logbooks/demo
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/man
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/resources
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/scripts
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/scripts/fckeditor
        type: Dir
      
    • elog-2.7.1/scripts/fckeditor
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/scripts/fckeditor/editor
        type: Dir
      
    • elog-2.7.1/scripts/fckeditor/editor
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/scripts/fckeditor/editor/plugins
        type: Dir
      
    • elog-2.7.1/scripts/fckeditor/editor/plugins
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/scripts/fckeditor/editor/plugins/elog
        type: Dir
      
    • elog-2.7.1/scripts/fckeditor/editor/plugins/elog
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/src
      • Outcome: passed
      • result:
      []
      
    • elog-2.7.1/themes
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/themes/default
        type: Dir
      
    • elog-2.7.1/themes/default
      • Outcome: passed
      • result:
      -   nodeid: elog-2.7.1/themes/default/icons
        type: Dir
      
    • elog-2.7.1/themes/default/icons
      • Outcome: passed
      • result:
      []
      
elog_instance (2 tests)
  • elog_instance
    • Outcome: passed
    • result:
    -   nodeid: elog_instance/logbooks
      type: Dir
    
    • elog_instance/logbooks
      • Outcome: passed
      • result:
      []
      
morbidissimo (6 tests)
  • morbidissimo
    • Outcome: passed
    • result:
    -   nodeid: morbidissimo/morbidissimo
      type: Package
    
    • morbidissimo/morbidissimo
      • Outcome: passed
      • result:
      -   nodeid: morbidissimo/morbidissimo/modman
        type: Package
      -   nodeid: morbidissimo/morbidissimo/morioc
        type: Package
      
    • morbidissimo/morbidissimo/modman
      • Outcome: passed
      • result:
      -   nodeid: morbidissimo/morbidissimo/modman/scripts
        type: Dir
      
    • morbidissimo/morbidissimo/modman/scripts
      • Outcome: passed
      • result:
      []
      
    • morbidissimo/morbidissimo/morioc
      • Outcome: passed
      • result:
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py
        type: Module
      
    • morbidissimo/morbidissimo/morioc/test_infer_type.py
      • Outcome: passed
      • result:
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_type_str
        type: Function
        lineno: 14
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_type_float
        type: Function
        lineno: 17
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_type_int
        type: Function
        lineno: 20
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_value_str
        type: Function
        lineno: 24
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_value_long_str
        type: Function
        lineno: 27
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_value_float
        type: Function
        lineno: 32
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_value_int
        type: Function
        lineno: 35
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_empty_value_str
        type: Function
        lineno: 39
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_empty_value_float
        type: Function
        lineno: 42
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_empty_value_int
        type: Function
        lineno: 45
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_pstrue_str
        type: Function
        lineno: 49
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_pstrue_float
        type: Function
        lineno: 52
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_pstrue_int
        type: Function
        lineno: 55
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_psfalse_str
        type: Function
        lineno: 59
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_psfalse_float
        type: Function
        lineno: 62
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_psfalse_int
        type: Function
        lineno: 65
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_None
        type: Function
        lineno: 69
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_True
        type: Function
        lineno: 72
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_False
        type: Function
        lineno: 75
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_nan
        type: Function
        lineno: 78
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np_nan
        type: Function
        lineno: 81
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np1D_int
        type: Function
        lineno: 85
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np2D_int
        type: Function
        lineno: 91
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np1D_float
        type: Function
        lineno: 99
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np2D_float
        type: Function
        lineno: 105
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np1D_bool
        type: Function
        lineno: 114
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np1D_object
        type: Function
        lineno: 119
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np_scalar_int
        type: Function
        lineno: 126
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np_scalar_float
        type: Function
        lineno: 131
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_np_scalar_bool
        type: Function
        lineno: 136
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_list
        type: Function
        lineno: 145
      -   nodeid: morbidissimo/morbidissimo/morioc/test_infer_type.py::test_it_tuple
        type: Function
        lineno: 150
      
mxml (1 tests)
  • mxml
    • Outcome: passed
    • result:
    []
    
outputs (1 tests)
  • outputs
    • Outcome: passed
    • result:
    []
    
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
      
    • slic/core/acquisition
      • Outcome: passed
      • result:
      -   nodeid: slic/core/acquisition/broker
        type: Package
      
    • slic/core/acquisition/broker
      • Outcome: passed
      • result:
      []
      
    • slic/core/adjustable
      • Outcome: passed
      • result:
      []
      
    • slic/core/condition
      • Outcome: passed
      • result:
      []
      
    • slic/core/device
      • Outcome: passed
      • result:
      []
      
    • slic/core/scanner
      • Outcome: passed
      • result:
      []
      
    • slic/core/sensor
      • Outcome: passed
      • result:
      []
      
    • slic/core/task
      • Outcome: passed
      • result:
      []
      
    • 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
      
    • slic/devices/cameras
      • Outcome: passed
      • result:
      []
      
    • slic/devices/endstations
      • Outcome: passed
      • result:
      []
      
    • slic/devices/general
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/general/detectors
        type: Package
      -   nodeid: slic/devices/general/unused
        type: Dir
      
    • slic/devices/general/detectors
      • Outcome: passed
      • result:
      []
      
    • slic/devices/general/unused
      • Outcome: passed
      • result:
      []
      
    • slic/devices/loptics
      • Outcome: passed
      • result:
      []
      
    • slic/devices/timing
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/timing/events
        type: Package
      
    • slic/devices/timing/events
      • Outcome: passed
      • result:
      []
      
    • slic/devices/xdiagnostics
      • Outcome: passed
      • result:
      []
      
    • slic/devices/xoptics
      • Outcome: passed
      • result:
      -   nodeid: slic/devices/xoptics/slits
        type: Package
      -   nodeid: slic/devices/xoptics/unused
        type: Dir
      
    • slic/devices/xoptics/slits
      • Outcome: passed
      • result:
      []
      
    • slic/devices/xoptics/unused
      • Outcome: passed
      • result:
      []
      
    • slic/gui
      • Outcome: passed
      • result:
      -   nodeid: slic/gui/daqpanels
        type: Package
      -   nodeid: slic/gui/widgets
        type: Package
      
    • slic/gui/daqpanels
      • Outcome: passed
      • result:
      []
      
    • slic/gui/widgets
      • Outcome: passed
      • result:
      []
      
    • slic/utils
      • Outcome: passed
      • result:
      -   nodeid: slic/utils/ioc
        type: Package
      -   nodeid: slic/utils/unused
        type: Dir
      
    • slic/utils/ioc
      • Outcome: passed
      • result:
      []
      
    • slic/utils/unused
      • Outcome: passed
      • result:
      -   nodeid: slic/utils/unused/xsim
        type: Package
      
    • slic/utils/unused/xsim
      • Outcome: passed
      • result:
      []
      
temp-ci (1 tests)
  • temp-ci
    • Outcome: passed
    • result:
    []
    
tests (43 tests)
  • tests
    • Outcome: passed
    • result:
    -   nodeid: tests/test_utils_argfwd.py
      type: Module
    -   nodeid: tests/test_utils_ask_yes_no.py
      type: Module
    -   nodeid: tests/test_utils_channels.py
      type: Module
    -   nodeid: tests/test_utils_config.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
    -   nodeid: tests/test_utils_dotdir.py
      type: Module
    -   nodeid: tests/test_utils_elog.py
      type: Module
    -   nodeid: tests/test_utils_eval.py
      type: Module
    -   nodeid: tests/test_utils_exceptions.py
      type: Module
    -   nodeid: tests/test_utils_get_adj.py
      type: Module
    -   nodeid: tests/test_utils_hastyepics.py
      type: Module
    -   nodeid: tests/test_utils_ipy.py
      type: Module
    -   nodeid: tests/test_utils_jsonext.py
      type: Module
    -   nodeid: tests/test_utils_lazypv.py
      type: Module
    -   nodeid: tests/test_utils_logcfg.py
      type: Module
    -   nodeid: tests/test_utils_logign.py
      type: Module
    -   nodeid: tests/test_utils_metaclasses.py
      type: Module
    -   nodeid: tests/test_utils_namespace.py
      type: Module
    -   nodeid: tests/test_utils_npy.py
      type: Module
    -   nodeid: tests/test_utils_path.py
      type: Module
    -   nodeid: tests/test_utils_picklio.py
      type: Module
    -   nodeid: tests/test_utils_printing.py
      type: Module
    -   nodeid: tests/test_utils_pv.py
      type: Module
    -   nodeid: tests/test_utils_rangebar.py
      type: Module
    -   nodeid: tests/test_utils_readable.py
      type: Module
    -   nodeid: tests/test_utils_registry.py
      type: Module
    -   nodeid: tests/test_utils_richcfg.py
      type: Module
    -   nodeid: tests/test_utils_run_later.py
      type: Module
    -   nodeid: tests/test_utils_sendmail.py
      type: Module
    -   nodeid: tests/test_utils_shortcut.py
      type: Module
    -   nodeid: tests/test_utils_snapshot.py
      type: Module
    -   nodeid: tests/test_utils_termtitle.py
      type: Module
    -   nodeid: tests/test_utils_tqdm_mod.py
      type: Module
    -   nodeid: tests/test_utils_trinary.py
      type: Module
    -   nodeid: tests/test_utils_typecast.py
      type: Module
    -   nodeid: tests/test_utils_utils.py
      type: Module
    -   nodeid: tests/test_utils_xrange.py
      type: Module
    
    • tests/test_utils_argfwd.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_argfwd.py::test_split_at[lst0-2-expected0]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_argfwd.py::test_split_at[lst1-1-expected1]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_argfwd.py::test_split_at[lst2-0-expected2]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_argfwd.py::test_merge_lists_unique[a0-b0-expected0]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_argfwd.py::test_merge_lists_unique[a1-b1-expected1]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_argfwd.py::test_merge_lists_unique[a2-b2-expected2]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_argfwd.py::test_merge_dicts_unique[a0-b0-expected0]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_argfwd.py::test_merge_dicts_unique[a1-b1-expected1]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_argfwd.py::test_merge_dicts_unique[a2-b2-expected2]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_pos_basic[pos0-expected_names0]
        type: Function
        lineno: 35
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_pos_basic[pos1-expected_names1]
        type: Function
        lineno: 35
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_pos_basic[pos2-expected_names2]
        type: Function
        lineno: 35
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_kw_basic[kw0-expected_keys0-expected_defaults0]
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_kw_basic[kw1-expected_keys1-expected_defaults1]
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_argfwd.py::test_make_params_kw_basic[kw2-expected_keys2-expected_defaults2]
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_argfwd.py::test_make_signature_parametrized[pos0-kw0-(x, y, z=3)]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_argfwd.py::test_make_signature_parametrized[pos1-kw1-(a, b=1, c=2)]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_argfwd.py::test_make_signature_parametrized[pos2-kw2-(flag=False)]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_argfwd.py::test_get_args_parametrized[<lambda>-expected_pos0-expected_kw0]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_argfwd.py::test_get_args_parametrized[<lambda>-expected_pos1-expected_kw1]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_argfwd.py::test_get_args_parametrized[<lambda>-expected_pos2-expected_kw2]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_argfwd.py::test_signature_visible[wrap_all-(a, b, d=30, c=10)]
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_argfwd.py::test_signature_visible[wrap_skip-(a, b, c=10, d=20)]
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_argfwd.py::test_signature_visible[wrap_ignore_all-(x, y, c=10, d=20)]
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_all-args0-kwargs0-36]
        type: Function
        lineno: 112
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_all-args1-kwargs1-11]
        type: Function
        lineno: 112
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_skip-args2-kwargs2-10]
        type: Function
        lineno: 112
      -   nodeid: tests/test_utils_argfwd.py::test_wrapper_behavior[wrap_ignore_all-args3-kwargs3-10]
        type: Function
        lineno: 112
      
    • 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
      
    • 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
      
    • tests/test_utils_config.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_config.py::test_config_with_nested_and_list_data
        type: Function
        lineno: 15
      -   nodeid: tests/test_utils_config.py::test_config_with_strange_and_edge_keys
        type: Function
        lineno: 73
      
    • 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
      
    • 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-'aaaaaaaaaa...]
        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(xxxxxxxxxxxxxxxxx...]
        type: Function
        lineno: 52
      
    • 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_setattr[initial0-nouveau-123]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_setattr[initial1-b-valeur]
        type: Function
        lineno: 26
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_delattr[initial0-a-expected_keys0]
        type: Function
        lineno: 40
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_delattr[initial1-k-expected_keys1]
        type: Function
        lineno: 40
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_dir[data0-expected_keys0]
        type: Function
        lineno: 55
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_dir[data1-expected_keys1]
        type: Function
        lineno: 55
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data0-x-1-None]
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_dictext.py::test_attrdict_getattr_and_missing[data1-missing-None-'MyDict' object has no attribute 'missing']
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs0-None-kwargs0-expected0]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs1-other1-kwargs1-expected1]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs2-other2-kwargs2-expected2]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs3-None-kwargs3-expected3]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs4-other4-kwargs4-expected4]
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_dictext.py::test_dictupdatemixin_init_and_update[init_kwargs5-other5-kwargs5-expected5]
        type: Function
        lineno: 90
      
    • tests/test_utils_dotdir.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_dotdir.py::test_dotdir_creation_and_base_exists
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_dotdir.py::test_dotdir_repr_returns_path_str
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_dotdir.py::test_dotdir_call
        type: Function
        lineno: 35
      
    • tests/test_utils_elog.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_elog.py::test_get_default_elog_instance_with_direct_password_and_real_check
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_elog.py::test_get_default_elog_instance_asks_password_and_opens
        type: Function
        lineno: 46
      -   nodeid: tests/test_utils_elog.py::test_get_default_elog_with_path_home
        type: Function
        lineno: 68
      -   nodeid: tests/test_utils_elog.py::test_post
        type: Function
        lineno: 102
      -   nodeid: tests/test_utils_elog.py::test_screenshot
        type: Function
        lineno: 120
      
    • tests/test_utils_eval.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[1 + 2-3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[4 - 2-2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[3 * 5-15]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[10 / 2-5.0]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[10 % 3-1]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-5--5]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[+7-7]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[1 + 2 * 3-7]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[(1 + 2) * 3-9]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-(-3)-3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-2 + 4 * 2-6]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[(4 + 5) * (6 - 1)-45]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[(((3)))-3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[-(-(-2))--2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[3 + +4-7]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[3 + -4--1]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[True + 1-2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid['string'-string]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid[1e1000 * 1e1000-inf]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_valid['a' + 'b'-ab]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[2 ** 3-Unsupported BinOp Pow]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[3 << 1-Unsupported BinOp LShift]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[1 < 2-Unsupported node type Compare]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[abs(3)-Unsupported node type Call]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[a + 2-Unsupported node type Name]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[string-Unsupported node type Name]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[[1, 2] + [3]-Unsupported node type List]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_raises_with_message[{1: 2}-Unsupported node type Dict]
        type: Function
        lineno: 33
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_runtime_errors[1 / 0-ZeroDivisionError]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_eval.py::test_arithmetic_eval_runtime_errors[10 % 0-ZeroDivisionError]
        type: Function
        lineno: 52
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[1 + 2-3]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[bad + 2-bad + 2]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[1 / 0-1 / 0]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_forgiving_eval[2 ** 10-2 ** 10]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[3 * 4-0-12]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[invalid + 1-99-99]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[1 / 0--1--1]
        type: Function
        lineno: 71
      -   nodeid: tests/test_utils_eval.py::test_defaulting_eval[2 ** 10-42-42]
        type: Function
        lineno: 71
      
    • tests/test_utils_exceptions.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_key_error-High-level task failed\ncaused by KeyError: 'missing']
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_index_error-High-level task failed\ncaused by IndexError: list index out of range]
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_zero_division-High-level task failed\ncaused by ZeroDivisionError: division by zero]
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_value_error-High-level task failed\ncaused by ValueError: invalid literal for int() with base 10: 'not_a_number']
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_chained_exception_various[cause_type_error-High-level task failed\ncaused by TypeError: can only concatenate str (not "int") to str]
        type: Function
        lineno: 28
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_key_error-KeyError: 'missing']
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_index_error-IndexError: list index out of range]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_zero_division-ZeroDivisionError: division by zero]
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_value_error-ValueError: invalid literal for int() with base 10: 'not_a_number']
        type: Function
        lineno: 60
      -   nodeid: tests/test_utils_exceptions.py::test_printed_exception[cause_type_error-TypeError: can only concatenate str (not "int") to str]
        type: Function
        lineno: 60
      
    • tests/test_utils_get_adj.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_get_adj.py::test_get_adj_success
        type: Function
        lineno: 23
      -   nodeid: tests/test_utils_get_adj.py::test_get_adj_not_found
        type: Function
        lineno: 27
      -   nodeid: tests/test_utils_get_adj.py::test_ensure_adjs_mixed
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_get_adj.py::test_get_adjs_filter
        type: Function
        lineno: 37
      
    • tests/test_utils_hastyepics.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_instantiation_fast_vs_epics
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_without_suffix_and_dot
        type: Function
        lineno: 38
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_invalid_name_raises
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_init_list_has_no_disabled
        type: Function
        lineno: 55
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_initializes_device_attrs
        type: Function
        lineno: 59
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_pv_connection_skipped_by_default
        type: Function
        lineno: 82
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_adds_all_extras_pvs
        type: Function
        lineno: 90
      -   nodeid: tests/test_utils_hastyepics.py::test_motor_PV_method_exists_and_works
        type: Function
        lineno: 109
      
    • tests/test_utils_ipy.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_ipy.py::test_devices_repr_fallback_and_ignore
        type: Function
        lineno: 19
      
    • tests/test_utils_jsonext.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj0-expected0]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj1-42]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[(1-1j)-expected2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj3-/tmp/file.txt]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj4-expected4]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj5-expected5]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj6-expected6]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_jsonext.py::test_json_validate_save_load[input_obj7-expected7]
        type: Function
        lineno: 7
      
    • tests/test_utils_lazypv.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_lazypv.py::test_getattr
        type: Function
        lineno: 7
      
    • tests/test_utils_logcfg.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_logcfg.py::test_custom_log_outputs[LONG-<lambda>-This is a LONG message]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_logcfg.py::test_custom_log_outputs[ENLARGE-<lambda>-Please ENLARGE this!]
        type: Function
        lineno: 21
      -   nodeid: tests/test_utils_logcfg.py::test_import_logging_once_per_module
        type: Function
        lineno: 51
      
    • tests/test_utils_logign.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_logign.py::test_ignore_log_msg_behavior[WARNING-This should be ignored-This should appear]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_logign.py::test_ignore_log_msg_behavior[ENLARGE-ENLARGE this-Keep this ENLARGE]
        type: Function
        lineno: 9
      -   nodeid: tests/test_utils_logign.py::test_ignore_only_by_level
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_logign.py::test_ignore_only_by_msg
        type: Function
        lineno: 64
      -   nodeid: tests/test_utils_logign.py::test_filter_removed_after_context
        type: Function
        lineno: 86
      
    • tests/test_utils_metaclasses.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_metaclasses.py::test_combine_classes_combines_methods
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_metaclasses.py::test_registryabc_combines_registrymeta_and_abcmeta
        type: Function
        lineno: 25
      
    • tests/test_utils_namespace.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_namespace.py::test_namespace_pretty_repr_mixed_and_nested
        type: Function
        lineno: 4
      
    • tests/test_utils_npy.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[0-5-1-expected0]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[5-0--1-expected1]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[1-2-0.3-expected2]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[-2-2-1.5-expected3]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_arange[2.5-0.5--0.4-expected4]
        type: Function
        lineno: 7
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[0-10-4-expected0]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[5-15-2-expected1]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[-5-5-4-expected2]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[0-1-3-expected3]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[2-2-3-expected4]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[3-0-3-expected5]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_linspace[0-1-0-expected6]
        type: Function
        lineno: 18
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[-2-2-2-True-expected0]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[0-5-2-True-expected1]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[0-5-2-False-expected2]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_centered[-1-2-1.5-True-expected3]
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[0-5-2-True-expected0]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[0-5-2-False-expected1]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[-1-2-1.5-True-expected2]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[-1-2-1.5-False-expected3]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[-2-1-1.2-True-expected4]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[5-0--2-True-expected5]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_left_aligned[5-0--2-False-expected6]
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[0-5-2-True-expected0]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[0-5-2-False-expected1]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[-1-2-1.5-True-expected2]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[-1-2-1.5-False-expected3]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[5-0--2-True-expected4]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[5-0--2-False-expected5]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_nice_steps_right_aligned[-3-3-2-True-expected6]
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-0-10-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-6-10-False]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-None-10-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-0-None-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_scalar[5-None-None-True]
        type: Function
        lineno: 70
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data0-2-5-0.6]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data1-5-25-0.6666666666666666]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data2-None-2-0.3333333333333333]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_within_fraction[data3-0-1-0]
        type: Function
        lineno: 81
      -   nodeid: tests/test_utils_npy.py::test_fraction_to_percentage[0.456-1-45.6]
        type: Function
        lineno: 92
      -   nodeid: tests/test_utils_npy.py::test_fraction_to_percentage[0.12345-2-12.35]
        type: Function
        lineno: 92
      -   nodeid: tests/test_utils_npy.py::test_fraction_to_percentage[0.9999-0-100.0]
        type: Function
        lineno: 92
      -   nodeid: tests/test_utils_npy.py::test_get_dtype[val0-ndarray]
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_npy.py::test_get_dtype[val1-list]
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_npy.py::test_get_dtype[3.14-float]
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_npy.py::test_get_shape[val0-expected0]
        type: Function
        lineno: 114
      -   nodeid: tests/test_utils_npy.py::test_get_shape[val1-expected1]
        type: Function
        lineno: 114
      -   nodeid: tests/test_utils_npy.py::test_get_shape[42-expected2]
        type: Function
        lineno: 114
      -   nodeid: tests/test_utils_npy.py::test_is_array[val0-True]
        type: Function
        lineno: 123
      -   nodeid: tests/test_utils_npy.py::test_is_array[val1-False]
        type: Function
        lineno: 123
      -   nodeid: tests/test_utils_npy.py::test_is_array[42-False]
        type: Function
        lineno: 123
      
    • tests/test_utils_path.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_path.py::test_can_create_all_files_user_says_yes
        type: Function
        lineno: 10
      -   nodeid: tests/test_utils_path.py::test_can_create_all_files_user_says_no
        type: Function
        lineno: 36
      -   nodeid: tests/test_utils_path.py::test_make_missing_dir_creates_folder
        type: Function
        lineno: 54
      -   nodeid: tests/test_utils_path.py::test_glob_files_returns_matching_files_only
        type: Function
        lineno: 66
      -   nodeid: tests/test_utils_path.py::test_filter_files_excludes_directories
        type: Function
        lineno: 83
      
    • tests/test_utils_picklio.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj0]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj1]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[simple string]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[42]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[3.14159]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj5]
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_picklio.py::test_pickle_and_unpickle[test_obj6]
        type: Function
        lineno: 6
      
    • tests/test_utils_printing.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq0-3]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq1-0]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq2-3]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_maxlen_valid[seq3-2]
        type: Function
        lineno: 8
      -   nodeid: tests/test_utils_printing.py::test_strlen[42-2]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[hello-5]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[False-5]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[None-4]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[value4-9]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[value5-8]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[value6-6]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[-0]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_strlen[this is a phrase-16]
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq0-6]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq1-3]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq2-9]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq3-16]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_maxstrlen[seq4-5]
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_printing.py::test_transpose_matrix[data0-expected0]
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_printing.py::test_transpose_matrix[data1-expected1]
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_printing.py::test_transpose_matrix[data2-expected2]
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial0-1-expected0]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial1-a-expected1]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial2-prepend2-expected2]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_prepend[initial3-prepend3-expected3]
        type: Function
        lineno: 50
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries0-widths0-  a   bbb]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries1-widths1- 1  2]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries2-widths2-  long  val]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries3-widths3- True  False]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries4-widths4-  123  4567]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries5-widths5- text with space   end]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries6-widths6-  {'a': 1}   {'b': 2}]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_table_line[entries7-widths7-    [1, 2]     [3, 4]]
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_printing.py::test_fmt_label_sep[widths0------ ----]
        type: Function
        lineno: 74
      -   nodeid: tests/test_utils_printing.py::test_fmt_label_sep[widths1-=-== ===]
        type: Function
        lineno: 74
      -   nodeid: tests/test_utils_printing.py::test_fmt_label_sep[widths2-*-***** **]
        type: Function
        lineno: 74
      -   nodeid: tests/test_utils_printing.py::test_printable_dict_with_header[d0-HeaderTest-expected_lines0]
        type: Function
        lineno: 82
      -   nodeid: tests/test_utils_printing.py::test_printable_dict_of_dicts
        type: Function
        lineno: 101
      -   nodeid: tests/test_utils_printing.py::test_printable_table[data0-labels0-A: ID\nB: \u2713 Success?\nC: SuperPrecisionValue\nD: Result Metadata\n\n#             A     B          C                            D\n- ------------- ----- ---------- ----------------------------\n0            X1  True     0.1234               {'meta': 'ok'}\n1 AnotherSample False 98765.4321          {'meta': [1, 2, 3]}\n2             Z  None        0.0 {'meta': {'nested_key': 42}}]
        type: Function
        lineno: 128
      
    • tests/test_utils_pv.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[0.0-          -\x1b[32m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[25.0-\u2588\u2588\u258c       -\x1b[32m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[50.0-\u2588\u2588\u2588\u2588\u2588     -\x1b[32m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[75.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  -\x1b[32m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[100.0-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588-\x1b[32m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[150.0->>>>>>>>>>-\x1b[31m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_put_with_progress_and_repr[-50.0-<<<<<<<<<<-\x1b[31m]
        type: Function
        lineno: 47
      -   nodeid: tests/test_utils_pv.py::test_use_callback_context_manager
        type: Function
        lineno: 94
      
    • tests/test_utils_rangebar.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_rangebar.py::test_full_progress_bar
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_rangebar.py::test_half_progress_bar
        type: Function
        lineno: 27
      -   nodeid: tests/test_utils_rangebar.py::test_zero_progress_bar
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_rangebar.py::test_overflow_bar
        type: Function
        lineno: 56
      -   nodeid: tests/test_utils_rangebar.py::test_underflow_bar
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_rangebar.py::test_repr
        type: Function
        lineno: 82
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[0-          ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[10-\u2588         ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[25-\u2588\u2588\u258c       ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[27-\u2588\u2588\u258a       ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[49-\u2588\u2588\u2588\u2588\u2589     ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[50-\u2588\u2588\u2588\u2588\u2588     ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[51-\u2588\u2588\u2588\u2588\u2588\u258f    ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[73-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258e  ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[75-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c  ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[90-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ]
        type: Function
        lineno: 89
      -   nodeid: tests/test_utils_rangebar.py::test_each_value_separately[100-\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588]
        type: Function
        lineno: 89
      
    • tests/test_utils_readable.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[59.4-59 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[59.9-60 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[119.9-120 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[120.1-2 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3599.9-60 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3600.1-60 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[7199.9-120 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[7200.1-2 hours]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[90.4-90 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[90.6-91 seconds]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[121.9-2 minutes]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[1296000.0-2 weeks]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[2592000.0-4 weeks]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[2800000.0-5 weeks]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[3888000.0-6 weeks]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5097600.0-8 weeks]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5184000.0-9 weeks]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[5270400.0-2 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[23328000.0-9 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[31104000.0-12 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[33696000.0-13 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[59616000.0-23 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[62208000.0-24 months]
        type: Function
        lineno: 3
      -   nodeid: tests/test_utils_readable.py::test_readable_seconds[64208000.0-2 years]
        type: Function
        lineno: 3
      
    • tests/test_utils_registry.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_registry.py::test_metaclass_creates_weakset
        type: Function
        lineno: 13
      -   nodeid: tests/test_utils_registry.py::test_metaclass_tracks_instances
        type: Function
        lineno: 22
      -   nodeid: tests/test_utils_registry.py::test_registry_inheritance
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_registry.py::test_instance_tracking
        type: Function
        lineno: 39
      -   nodeid: tests/test_utils_registry.py::test_collect_instances_recursive
        type: Function
        lineno: 53
      -   nodeid: tests/test_utils_registry.py::test_instances_function
        type: Function
        lineno: 69
      -   nodeid: tests/test_utils_registry.py::test_non_registry_class_error
        type: Function
        lineno: 93
      -   nodeid: tests/test_utils_registry.py::test_signature_preservation
        type: Function
        lineno: 102
      
    • tests/test_utils_richcfg.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_richcfg.py::test_rich_inspector_outputs_more_than_builtin
        type: Function
        lineno: 45
      
    • tests/test_utils_run_later.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_run_later.py::test_init_and_repr
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_run_later.py::test_call
        type: Function
        lineno: 22
      -   nodeid: tests/test_utils_run_later.py::test_matmul_with_string
        type: Function
        lineno: 27
      -   nodeid: tests/test_utils_run_later.py::test_matmul_with_list
        type: Function
        lineno: 32
      -   nodeid: tests/test_utils_run_later.py::test_matmul_with_single_int
        type: Function
        lineno: 37
      -   nodeid: tests/test_utils_run_later.py::test_run_at_future_triggered_and_logs
        type: Function
        lineno: 49
      -   nodeid: tests/test_utils_run_later.py::test_run_at_already_past
        type: Function
        lineno: 61
      -   nodeid: tests/test_utils_run_later.py::test_run_in_future_triggered_and_logs
        type: Function
        lineno: 72
      -   nodeid: tests/test_utils_run_later.py::test_run_in_past
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_run_later.py::test_run_later_with_seconds
        type: Function
        lineno: 95
      -   nodeid: tests/test_utils_run_later.py::test_run_later_with_past_datetime
        type: Function
        lineno: 105
      -   nodeid: tests/test_utils_run_later.py::test_run_at_tqdm_multiple_updates
        type: Function
        lineno: 115
      -   nodeid: tests/test_utils_run_later.py::test_today_basic
        type: Function
        lineno: 137
      -   nodeid: tests/test_utils_run_later.py::test_tomorrow_basic
        type: Function
        lineno: 143
      -   nodeid: tests/test_utils_run_later.py::test_yesterday_basic
        type: Function
        lineno: 149
      -   nodeid: tests/test_utils_run_later.py::test_today_matmul_string
        type: Function
        lineno: 155
      -   nodeid: tests/test_utils_run_later.py::test_tomorrow_matmul_list
        type: Function
        lineno: 161
      -   nodeid: tests/test_utils_run_later.py::test_yesterday_matmul_single
        type: Function
        lineno: 167
      
    • tests/test_utils_sendmail.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_sendmail.py::test_sendmail_real_local_verbose
        type: Function
        lineno: 70
      
    • tests/test_utils_shortcut.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutInitialization
        type: Class
      -   nodeid: tests/test_utils_shortcut.py::test_run_method
        type: Function
        lineno: 31
      -   nodeid: tests/test_utils_shortcut.py::test_repr_output
        type: Function
        lineno: 54
      -   nodeid: tests/test_utils_shortcut.py::test_source_with_regular_function
        type: Function
        lineno: 62
      -   nodeid: tests/test_utils_shortcut.py::test_source_error_handling
        type: Function
        lineno: 76
      -   nodeid: tests/test_utils_shortcut.py::test_as_shortcut_basic
        type: Function
        lineno: 86
      -   nodeid: tests/test_utils_shortcut.py::test_as_shortcut_with_name
        type: Function
        lineno: 96
      -   nodeid: tests/test_utils_shortcut.py::test_as_shortcut_factory_pattern
        type: Function
        lineno: 104
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutsSingleton
        type: Class
      -   nodeid: tests/test_utils_shortcut.py::TestFullIntegration
        type: Class
      -   nodeid: tests/test_utils_shortcut.py::test_registry_inheritance
        type: Function
        lineno: 204
      
    • tests/test_utils_shortcut.py::TestFullIntegration
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_shortcut.py::TestFullIntegration::test_workflow
        type: Function
        lineno: 170
      -   nodeid: tests/test_utils_shortcut.py::TestFullIntegration::test_multiple_shortcuts
        type: Function
        lineno: 190
      
    • tests/test_utils_shortcut.py::TestShortcutInitialization
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutInitialization::test_init_with_custom_name
        type: Function
        lineno: 16
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutInitialization::test_init_without_name
        type: Function
        lineno: 23
      
    • tests/test_utils_shortcut.py::TestShortcutsSingleton
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutsSingleton::test_singleton_behavior
        type: Function
        lineno: 121
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutsSingleton::test_registration
        type: Function
        lineno: 127
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutsSingleton::test_getitem_access
        type: Function
        lineno: 141
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutsSingleton::test_missing_key
        type: Function
        lineno: 149
      -   nodeid: tests/test_utils_shortcut.py::TestShortcutsSingleton::test_repr_output
        type: Function
        lineno: 154
      
    • tests/test_utils_snapshot.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[exclude_internals]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[include_internals]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[empty_case]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_str]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_id]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_case_insensitive]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_length]
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_snapshot.py::test_snapshot[sort_reverse]
        type: Function
        lineno: 83
      
    • tests/test_utils_termtitle.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_termtitle.py::test_terminal_title_with_tmux
        type: Function
        lineno: 9
      
    • tests/test_utils_tqdm_mod.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_tqdm_mod.py::test_complete_progress_bar
        type: Function
        lineno: 25
      -   nodeid: tests/test_utils_tqdm_mod.py::test_set_progress_multiple_points
        type: Function
        lineno: 42
      -   nodeid: tests/test_utils_tqdm_mod.py::test_format_sizeof_alignment
        type: Function
        lineno: 65
      -   nodeid: tests/test_utils_tqdm_mod.py::test_float_alignment_in_bar
        type: Function
        lineno: 83
      -   nodeid: tests/test_utils_tqdm_mod.py::test_custom_unit
        type: Function
        lineno: 132
      -   nodeid: tests/test_utils_tqdm_mod.py::test_clamp_above_total
        type: Function
        lineno: 146
      -   nodeid: tests/test_utils_tqdm_mod.py::test_clamp_below_zero
        type: Function
        lineno: 163
      
    • tests/test_utils_trinary.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_trinary.py::test_check_trinary_valid_values
        type: Function
        lineno: 6
      -   nodeid: tests/test_utils_trinary.py::test_check_trinary_invalid_value
        type: Function
        lineno: 14
      -   nodeid: tests/test_utils_trinary.py::test_check_trinary_with_custom_allowed_values
        type: Function
        lineno: 22
      
    • tests/test_utils_typecast.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_typecast.py::test_downcast_success
        type: Function
        lineno: 24
      -   nodeid: tests/test_utils_typecast.py::test_upcast_success
        type: Function
        lineno: 30
      -   nodeid: tests/test_utils_typecast.py::test_downcast_invalid
        type: Function
        lineno: 41
      -   nodeid: tests/test_utils_typecast.py::test_upcast_invalid
        type: Function
        lineno: 48
      -   nodeid: tests/test_utils_typecast.py::test_object_identity_preserved
        type: Function
        lineno: 53
      -   nodeid: tests/test_utils_typecast.py::test_ensure_subclass_valid
        type: Function
        lineno: 64
      -   nodeid: tests/test_utils_typecast.py::test_ensure_subclass_invalid
        type: Function
        lineno: 67
      -   nodeid: tests/test_utils_typecast.py::test_cast_changes_class
        type: Function
        lineno: 79
      -   nodeid: tests/test_utils_typecast.py::test_cast_preserves_identity
        type: Function
        lineno: 86
      
    • tests/test_utils_utils.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_utils.py::test_singleton_instance
        type: Function
        lineno: 17
      -   nodeid: tests/test_utils_utils.py::test_singleton_identity
        type: Function
        lineno: 25
      -   nodeid: tests/test_utils_utils.py::test_typename[None-NoneType]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[True-bool]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[42-int]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[3.14-float]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[text-str]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj5-set]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj6-list]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj7-list]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj8-dict]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[<lambda>-function]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[sample_function-function]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[nested-function]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[len-builtin_function_or_method]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[sum-builtin_function_or_method]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[math-module]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[sys-module]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[function-type]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[<genexpr>-generator]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_typename[obj18-list_iterator]
        type: Function
        lineno: 44
      -   nodeid: tests/test_utils_utils.py::test_next_int[nums0-4]
        type: Function
        lineno: 77
      -   nodeid: tests/test_utils_utils.py::test_next_int[nums1-21]
        type: Function
        lineno: 77
      -   nodeid: tests/test_utils_utils.py::test_next_int[nums2-0]
        type: Function
        lineno: 77
      -   nodeid: tests/test_utils_utils.py::test_zero_pad[7-3-007]
        type: Function
        lineno: 87
      -   nodeid: tests/test_utils_utils.py::test_zero_pad[123-5-00123]
        type: Function
        lineno: 87
      -   nodeid: tests/test_utils_utils.py::test_zero_pad[0-2-00]
        type: Function
        lineno: 87
      -   nodeid: tests/test_utils_utils.py::test_iround[3.6-4]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_iround[2.1-2]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_iround[-1.5--2]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_iround[-1.4--1]
        type: Function
        lineno: 97
      -   nodeid: tests/test_utils_utils.py::test_sorted_naturally[items0-expected0]
        type: Function
        lineno: 108
      -   nodeid: tests/test_utils_utils.py::test_sorted_naturally[items1-expected1]
        type: Function
        lineno: 108
      -   nodeid: tests/test_utils_utils.py::test_sorted_naturally_reverse[items0-expected0]
        type: Function
        lineno: 115
      
    • tests/test_utils_xrange.py
      • Outcome: passed
      • result:
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args0-kwargs0-expected0]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args1-kwargs1-expected1]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args2-kwargs2-expected2]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_finite[args3-kwargs3-expected3]
        type: Function
        lineno: 11
      -   nodeid: tests/test_utils_xrange.py::test_xrange_infinite[args0-kwargs0-count(0)]
        type: Function
        lineno: 20
      -   nodeid: tests/test_utils_xrange.py::test_xrange_infinite[args1-kwargs1-count(0, 2)]
        type: Function
        lineno: 20
      -   nodeid: tests/test_utils_xrange.py::test_xrange_too_many_args[args0]
        type: Function
        lineno: 31
      
. (1 tests)
  • .
    • Outcome: passed
    • result:
    -   nodeid: ci-reports
      type: Dir
    -   nodeid: elog-2.7.1
      type: Dir
    -   nodeid: elog_instance
      type: Dir
    -   nodeid: morbidissimo
      type: Dir
    -   nodeid: mxml
      type: Dir
    -   nodeid: outputs
      type: Dir
    -   nodeid: slic
      type: Package
    -   nodeid: temp-ci
      type: Dir
    -   nodeid: tests
      type: Dir
    

⚠️ 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: 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 nº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 nº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