diff --git a/markdown/TEST-REPORT.md b/markdown/TEST-REPORT.md index b10f33988..d739996f9 100644 --- a/markdown/TEST-REPORT.md +++ b/markdown/TEST-REPORT.md @@ -1,44 +1,34 @@ # ๐Ÿงช Test Report -*Generated on 2025-08-12 19:32:53 CEST* +*Generated on 2025-08-12 19:52:23 CEST* ## ๐Ÿงพ General Info -- **duration**: 44.845924377441406 +- **duration**: 9.931466102600098 - **root**: /workspace/tligui_y/slic - **environment**: {} ## ๐Ÿ“‹ Summary -- **Passed**: 21 -- **Failed**: 4 -- **Total**: 25 -- **Collected**: 25 +- **Failed**: 1 +- **Total**: 1 +- **Collected**: 1 ## ๐Ÿ”Ž Tests
-โœ… Passed (21) +โŒ Failed (1) -
- ๐Ÿ“„ test_utils_reprate.py + ๐Ÿ“„ test_utils_sendmail.py - โ†ณ Function: test_get_beamline + โ†ณ Function: test_sendmail_local_delivery -
- โœ… Test 1
params: instrument="alvra", expected_beamline="aramis"
+ โŒ Test 1 - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: alvra - expected_beamline: aramis - id: alvra-aramis - ``` - **_*๐Ÿ“Œ Setup phase*_** **duration:** ```python - 0.0005788891576230526 + 0.00037442194297909737 ``` **outcome:** @@ -52,1142 +42,7 @@ **duration:** ```python - 0.00016874773427844048 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.0002710050903260708 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 2
params: instrument="bernina", expected_beamline="aramis"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: bernina - expected_beamline: aramis - id: bernina-aramis - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00023358268663287163 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013712001964449883 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00013442011550068855 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 3
params: instrument="cristallina", expected_beamline="aramis"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: cristallina - expected_beamline: aramis - id: cristallina-aramis - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00020313169807195663 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013508601114153862 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.0001256079412996769 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 4
params: instrument="diavolezza", expected_beamline="athos"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: diavolezza - expected_beamline: athos - id: diavolezza-athos - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00019631627947092056 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0001267809420824051 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00012459373101592064 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 5
params: instrument="maloja", expected_beamline="athos"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: maloja - expected_beamline: athos - id: maloja-athos - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00020320992916822433 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013838708400726318 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00012201862409710884 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 6
params: instrument="furka", expected_beamline="athos"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: furka - expected_beamline: athos - id: furka-athos - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00019458821043372154 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013788696378469467 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00012258486822247505 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_infer_beamline_from_ip - -
- โœ… Test 8
params: ip="129.129.242", expected_instrument="alvra"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - ip: 129.129.242 - expected_instrument: alvra - id: 129.129.242-alvra - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0003235619515180588 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0009674280881881714 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00015263911336660385 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 9
params: ip="129.129.243", expected_instrument="bernina"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - ip: 129.129.243 - expected_instrument: bernina - id: 129.129.243-bernina - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00024035293608903885 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.000902222003787756 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014961697161197662 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 10
params: ip="129.129.244", expected_instrument="cristallina"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - ip: 129.129.244 - expected_instrument: cristallina - id: 129.129.244-cristallina - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00022047711536288261 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0007843486964702606 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00015273923054337502 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 11
params: ip="129.129.245", expected_instrument="diavolezza"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - ip: 129.129.245 - expected_instrument: diavolezza - id: 129.129.245-diavolezza - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00023065321147441864 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0008371700532734394 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014894502237439156 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 12
params: ip="129.129.246", expected_instrument="maloja"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - ip: 129.129.246 - expected_instrument: maloja - id: 129.129.246-maloja - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0002244659699499607 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0007544751279056072 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00015819305554032326 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 13
params: ip="129.129.247", expected_instrument="furka"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - ip: 129.129.247 - expected_instrument: furka - id: 129.129.247-furka - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.000219808891415596 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0008365381509065628 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014425208792090416 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_get_pvname_reprate_with_instrument_and_beamline - -
- โœ… Test 14
params: instrument="alvra", beamline="aramis", pvname="SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: alvra - beamline: aramis - pvname: SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB - id: alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00026769936084747314 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013915589079260826 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.0001358548179268837 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 15
params: instrument="bernina", beamline="aramis", pvname="SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: bernina - beamline: aramis - pvname: SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB - id: bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00023475196212530136 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00012672971934080124 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014697108417749405 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 16
params: instrument="cristallina", beamline="aramis", pvname="SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: cristallina - beamline: aramis - pvname: SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB - id: cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00024154968559741974 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013650069013237953 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014085881412029266 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 17
params: instrument="diavolezza", beamline="athos", pvname="SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: diavolezza - beamline: athos - pvname: SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB - id: diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00023910077288746834 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0001278468407690525 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014201831072568893 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 18
params: instrument="maloja", beamline="athos", pvname="SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: maloja - beamline: athos - pvname: SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB - id: maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0002307537943124771 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00012977886945009232 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014158198609948158 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 19
params: instrument="furka", beamline="athos", pvname="SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - instrument: furka - beamline: athos - pvname: SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB - id: furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0002401820383965969 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00013034511357545853 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014566583558917046 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_invalid_instrument_or_beamline - -
- โœ… Test 20 - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0001040380448102951 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00028761476278305054 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00013072602450847626 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_invalid_target_handling - -
- โœ… Test 23
params: invalid_target="invalid_instrument"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - invalid_target: invalid_instrument - id: invalid_instrument - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0003800690174102783 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0003368188627064228 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00015965290367603302 - ``` - - **outcome:** - - ```python - passed - ``` -
- -
- โœ… Test 24
params: invalid_target="non_existing_beamline"
- - **_*๐Ÿ“Œ Runtime Parameters*_** - - ```python - params: - invalid_target: non_existing_beamline - id: non_existing_beamline - ``` - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.0001860843040049076 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0002081659622490406 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00012544402852654457 - ``` - - **outcome:** - - ```python - passed - ``` -
-
- -
- -
-โŒ Failed (4) - - -
- ๐Ÿ“„ test_utils_reprate.py - - โ†ณ Function: test_get_pvname_reprate_for_inferred_beamline - -
- โŒ Test 7 - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00010153697803616524 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0015485454350709915 + 5.0816574287600815 ``` **outcome:** @@ -1199,205 +54,53 @@ **crash:** ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 28 - message: AssertionError: Expected SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB, but got None - assert None == 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB' + path: /workspace/tligui_y/slic/tests/test_utils_sendmail.py + lineno: 36 + message: AssertionError: No email was delivered to /root/Maildir/new + assert [] ``` **traceback:** ```python - - path: tests/test_utils_reprate.py - lineno: 28 + - path: tests/test_utils_sendmail.py + lineno: 36 message: AssertionError ``` **longrepr:** ```python - def test_get_pvname_reprate_for_inferred_beamline(): - """Test the PV name retrieval when using inferred beamline based on IP address.""" - with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value="129.129.242"): - beamline = infer_beamline() # This will return "alvra" based on the IP - pvname = get_pvname_reprate(instrument=None, beamline=beamline) # This should return the PV name associated with 'aramis' - expected_pvname = "SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - > assert pvname == expected_pvname, f"Expected {expected_pvname}, but got {pvname}" - E AssertionError: Expected SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB, but got None - E assert None == 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB' - - tests/test_utils_reprate.py:28: AssertionError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00025820499286055565 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_monitor_value_update - -
- โŒ Test 21 - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00010786205530166626 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 20.107356469146907 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 73 - message: AssertionError: Expected 20.0, but got None - assert None == 20.0 - + where None = Aramis Rep. Rate: None None.value - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 73 - message: AssertionError - ``` - - **longrepr:** - - ```python - def test_monitor_value_update(): - #Test that the RepRateMonitor correctly updates its value and units - monitor = RepRateMonitor("alvra") # Example instrument - # Check that the initial value is 20.0 and the units are correct - > assert monitor.value == 20.0, f"Expected 20.0, but got {monitor.value}" - E AssertionError: Expected 20.0, but got None - E assert None == 20.0 - E + where None = Aramis Rep. Rate: None None.value - - tests/test_utils_reprate.py:73: AssertionError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00044173188507556915 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_repr_method_with_initial_values - -
- โŒ Test 22 - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00021803611889481544 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 20.001739728730172 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 100 - message: AssertionError: Expected 'Aramis Rep. Rate: 20.0 Hz', but got 'Aramis Rep. Rate: None None' - assert 'Aramis Rep. Rate: None None' == 'Aramis Rep. Rate: 20.0 Hz' - - - Aramis Rep. Rate: 20.0 Hz - + Aramis Rep. Rate: None None - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 100 - message: AssertionError - ``` - - **longrepr:** - - ```python - def test_repr_method_with_initial_values(): - # Test __repr__ - monitor = RepRateMonitor("alvra") + def test_sendmail_local_delivery(): - # Expected initial values - expected_name = "Aramis Rep. Rate" - expected_value = 20.0 - expected_units = "Hz" + # Get the current system user (will be the local mailbox owner) + user = getpass.getuser() - # Expected representation - expected_repr = f"{expected_name}: {expected_value} {expected_units}" + # Define the recipient and email content + to_addr = f"{user}@localhost" + subject = "Local sendmail test" + body = "Hello from pytest/local!" - # Check that the __repr__ method returns the expected string - > assert repr(monitor) == expected_repr, f"Expected '{expected_repr}', but got '{repr(monitor)}'" - E AssertionError: Expected 'Aramis Rep. Rate: 20.0 Hz', but got 'Aramis Rep. Rate: None None' - E assert 'Aramis Rep. Rate: None None' == 'Aramis Rep. Rate: 20.0 Hz' - E - E - Aramis Rep. Rate: 20.0 Hz - E + Aramis Rep. Rate: None None + # Send the email using the function under test + sendmail(to_addr, from_addr=f"{user}@localhost", subject=subject, body=body) + + # Path to the Maildir 'new' folder for this user + maildir_new = os.path.expanduser("~/Maildir/new") + + # Wait a short time for delivery (Postfix is fast, but we ensure robustness) + files = [] + for _ in range(50): # Try for ~5 seconds + time.sleep(0.1) + files = sorted(glob.glob(os.path.join(maildir_new, "*"))) + if files: + break + + # Assert that at least one mail file was delivered + > assert files, f"No email was delivered to {maildir_new}" + E AssertionError: No email was delivered to /root/Maildir/new + E assert [] - tests/test_utils_reprate.py:100: AssertionError + tests/test_utils_sendmail.py:36: AssertionError ``` **_*๐Ÿ“Œ Teardown phase*_** @@ -1405,85 +108,7 @@ **duration:** ```python - 0.00020480994135141373 - ``` - - **outcome:** - - ```python - passed - ``` -
- โ†ณ Function: test_retrieve_pvname_for_none_instrument_and_beamline - -
- โŒ Test 25 - - **_*๐Ÿ“Œ Setup phase*_** - - **duration:** - - ```python - 0.00010816380381584167 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00033916207030415535 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 117 - message: AssertionError: Name should not be None. - assert None is not None - + where None = None: None None.name - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 117 - message: AssertionError - ``` - - **longrepr:** - - ```python - def test_retrieve_pvname_for_none_instrument_and_beamline(): - # Test that if both instrument and beamline are None, the method works correctly.""" - monitor = RepRateMonitor(target=None) - > assert monitor.name is not None, "Name should not be None." - E AssertionError: Name should not be None. - E assert None is not None - E + where None = None: None None.name - - tests/test_utils_reprate.py:117: AssertionError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00014306511729955673 + 0.00040509412065148354 ``` **outcome:** @@ -1508,7 +133,7 @@ - **result:** ```python - - nodeid: tests/test_utils_reprate.py + - nodeid: tests/test_utils_sendmail.py type: Module ```
@@ -1518,87 +143,15 @@ โœ… tests (1 tests) -
- โœ… tests/test_utils_reprate.py + โœ… tests/test_utils_sendmail.py - **Outcome:** `passed` - **result:** ```python - - nodeid: tests/test_utils_reprate.py::test_get_beamline[alvra-aramis] + - nodeid: tests/test_utils_sendmail.py::test_sendmail_local_delivery type: Function - lineno: 8 - - nodeid: tests/test_utils_reprate.py::test_get_beamline[bernina-aramis] - type: Function - lineno: 8 - - nodeid: tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis] - type: Function - lineno: 8 - - nodeid: tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos] - type: Function - lineno: 8 - - nodeid: tests/test_utils_reprate.py::test_get_beamline[maloja-athos] - type: Function - lineno: 8 - - nodeid: tests/test_utils_reprate.py::test_get_beamline[furka-athos] - type: Function - lineno: 8 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline - type: Function - lineno: 21 - - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra] - type: Function - lineno: 30 - - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina] - type: Function - lineno: 30 - - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina] - type: Function - lineno: 30 - - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza] - type: Function - lineno: 30 - - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja] - type: Function - lineno: 30 - - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka] - type: Function - lineno: 30 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB] - type: Function - lineno: 45 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB] - type: Function - lineno: 45 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB] - type: Function - lineno: 45 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB] - type: Function - lineno: 45 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB] - type: Function - lineno: 45 - - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB] - type: Function - lineno: 45 - - nodeid: tests/test_utils_reprate.py::test_invalid_instrument_or_beamline - type: Function - lineno: 58 - - nodeid: tests/test_utils_reprate.py::test_monitor_value_update - type: Function - lineno: 68 - - nodeid: tests/test_utils_reprate.py::test_repr_method_with_initial_values - type: Function - lineno: 86 - - nodeid: tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument] - type: Function - lineno: 102 - - nodeid: tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline] - type: Function - lineno: 102 - - nodeid: tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline - type: Function - lineno: 113 + lineno: 10 ```
diff --git a/markdown/coverage-summary.md b/markdown/coverage-summary.md index 80483c502..a8b1020a6 100644 --- a/markdown/coverage-summary.md +++ b/markdown/coverage-summary.md @@ -14205,3 +14205,228 @@ | slic/utils/utils.py | 17 | 8 | 53% | | slic/utils/xrange.py | 33 | 30 | 9% | | **TOTAL** | **9529** | **6954** | **27%** | +| Name | Stmts | Miss | Cover | +|----------------------------------------------- | -------: | -------: | ------: | +| slic/\_\_init\_\_.py | 20 | 2 | 90% | +| slic/core/\_\_init\_\_.py | 5 | 0 | 100% | +| slic/core/acquisition/\_\_init\_\_.py | 7 | 0 | 100% | +| slic/core/acquisition/acquisition.py | 56 | 42 | 25% | +| slic/core/acquisition/baseacquisition.py | 5 | 1 | 80% | +| slic/core/acquisition/broker/\_\_init\_\_.py | 2 | 0 | 100% | +| slic/core/acquisition/broker/brokerclient.py | 104 | 80 | 23% | +| slic/core/acquisition/broker/brokerconfig.py | 102 | 87 | 15% | +| slic/core/acquisition/broker/pedestal.py | 66 | 57 | 14% | +| slic/core/acquisition/broker/pids.py | 17 | 12 | 29% | +| slic/core/acquisition/broker/post\_retrieve.py | 120 | 120 | 0% | +| slic/core/acquisition/broker/requeststatus.py | 77 | 73 | 5% | +| slic/core/acquisition/broker/restapi.py | 147 | 107 | 27% | +| slic/core/acquisition/broker/tools.py | 52 | 18 | 65% | +| slic/core/acquisition/bsacquisition.py | 10 | 3 | 70% | +| slic/core/acquisition/bschannels.py | 30 | 19 | 37% | +| slic/core/acquisition/channels.py | 51 | 30 | 41% | +| slic/core/acquisition/dbacquisition.py | 19 | 12 | 37% | +| slic/core/acquisition/detcfg.py | 82 | 35 | 57% | +| slic/core/acquisition/diaacquisition.py | 111 | 111 | 0% | +| slic/core/acquisition/diaconfig.py | 36 | 36 | 0% | +| slic/core/acquisition/dummyacquisition.py | 12 | 12 | 0% | +| slic/core/acquisition/fakeacquisition.py | 76 | 53 | 30% | +| slic/core/acquisition/pedestals.py | 69 | 69 | 0% | +| slic/core/acquisition/pvacquisition.py | 60 | 47 | 22% | +| slic/core/acquisition/pvchannels.py | 13 | 7 | 46% | +| slic/core/acquisition/sfacquisition.py | 159 | 129 | 19% | +| slic/core/acquisition/sfpaths.py | 23 | 19 | 17% | +| slic/core/acquisition/spreadsheet.py | 45 | 45 | 0% | +| slic/core/adjustable/\_\_init\_\_.py | 11 | 0 | 100% | +| slic/core/adjustable/adjustable.py | 50 | 30 | 40% | +| slic/core/adjustable/baseadjustable.py | 28 | 18 | 36% | +| slic/core/adjustable/collection.py | 22 | 14 | 36% | +| slic/core/adjustable/combined.py | 15 | 8 | 47% | +| slic/core/adjustable/convenience.py | 35 | 20 | 43% | +| slic/core/adjustable/converted.py | 16 | 10 | 38% | +| slic/core/adjustable/dummyadjustable.py | 41 | 30 | 27% | +| slic/core/adjustable/error.py | 2 | 0 | 100% | +| slic/core/adjustable/genericadjustable.py | 32 | 24 | 25% | +| slic/core/adjustable/limited.py | 29 | 18 | 38% | +| slic/core/adjustable/linked.py | 22 | 15 | 32% | +| slic/core/adjustable/pvadjustable.py | 119 | 91 | 24% | +| slic/core/adjustable/pvchangemon.py | 77 | 56 | 27% | +| slic/core/adjustable/pvenumadjustable.py | 38 | 22 | 42% | +| slic/core/adjustable/scaler.py | 22 | 16 | 27% | +| slic/core/condition/\_\_init\_\_.py | 2 | 0 | 100% | +| slic/core/condition/basecondition.py | 8 | 2 | 75% | +| slic/core/condition/condition.py | 107 | 79 | 26% | +| slic/core/condition/pvcondition.py | 21 | 12 | 43% | +| slic/core/condition/valuecondition.py | 22 | 15 | 32% | +| slic/core/device/\_\_init\_\_.py | 2 | 0 | 100% | +| slic/core/device/auto.py | 12 | 12 | 0% | +| slic/core/device/basedevice.py | 2 | 0 | 100% | +| slic/core/device/device.py | 46 | 35 | 24% | +| slic/core/device/filtered.py | 23 | 23 | 0% | +| slic/core/device/simpledevice.py | 6 | 2 | 67% | +| slic/core/scanner/\_\_init\_\_.py | 1 | 0 | 100% | +| slic/core/scanner/runname.py | 36 | 23 | 36% | +| slic/core/scanner/scanbackend.py | 232 | 197 | 15% | +| slic/core/scanner/scaninfo.py | 45 | 35 | 22% | +| slic/core/scanner/scanner.py | 136 | 89 | 35% | +| slic/core/sensor/\_\_init\_\_.py | 8 | 0 | 100% | +| slic/core/sensor/basesensor.py | 12 | 3 | 75% | +| slic/core/sensor/bscombined.py | 9 | 5 | 44% | +| slic/core/sensor/bsmonitor.py | 102 | 73 | 28% | +| slic/core/sensor/bsnorm.py | 12 | 7 | 42% | +| slic/core/sensor/bssensor.py | 6 | 2 | 67% | +| slic/core/sensor/combined.py | 31 | 20 | 35% | +| slic/core/sensor/monitor.py | 62 | 51 | 18% | +| slic/core/sensor/norm.py | 9 | 5 | 44% | +| slic/core/sensor/pvsensor.py | 32 | 20 | 38% | +| slic/core/sensor/remoteplot.py | 15 | 10 | 33% | +| slic/core/sensor/sensor.py | 60 | 42 | 30% | +| slic/core/task/\_\_init\_\_.py | 4 | 0 | 100% | +| slic/core/task/basetask.py | 11 | 3 | 73% | +| slic/core/task/daqtask.py | 23 | 16 | 30% | +| slic/core/task/loop.py | 57 | 40 | 30% | +| slic/core/task/producer.py | 25 | 18 | 28% | +| slic/core/task/task.py | 62 | 46 | 26% | +| slic/devices/\_\_init\_\_.py | 7 | 0 | 100% | +| slic/devices/cameras/\_\_init\_\_.py | 4 | 0 | 100% | +| slic/devices/cameras/basler.py | 8 | 4 | 50% | +| slic/devices/cameras/camera\_bs.py | 13 | 8 | 38% | +| slic/devices/cameras/camera\_ca.py | 34 | 19 | 44% | +| slic/devices/cameras/camerabase.py | 17 | 12 | 29% | +| slic/devices/cameras/screenpanel.py | 31 | 21 | 32% | +| slic/devices/endstations/\_\_init\_\_.py | 3 | 0 | 100% | +| slic/devices/endstations/alvra\_flex.py | 10 | 5 | 50% | +| slic/devices/endstations/alvra\_huber.py | 8 | 4 | 50% | +| slic/devices/endstations/alvra\_prime.py | 48 | 34 | 29% | +| slic/devices/endstations/alvra\_xtg.py | 8 | 8 | 0% | +| slic/devices/endstations/bernina\_cameras.py | 33 | 33 | 0% | +| slic/devices/endstations/bernina\_platform.py | 46 | 46 | 0% | +| slic/devices/general/\_\_init\_\_.py | 4 | 0 | 100% | +| slic/devices/general/delay\_compensation.py | 13 | 13 | 0% | +| slic/devices/general/delay\_stage.py | 57 | 30 | 47% | +| slic/devices/general/detectors/\_\_init\_\_.py | 2 | 0 | 100% | +| slic/devices/general/detectors/buffer.py | 66 | 35 | 47% | +| slic/devices/general/detectors/digitizer.py | 13 | 7 | 46% | +| slic/devices/general/detectors/pvdatastream.py | 33 | 24 | 27% | +| slic/devices/general/detectors/timer.py | 15 | 9 | 40% | +| slic/devices/general/micosstage.py | 7 | 7 | 0% | +| slic/devices/general/motor.py | 128 | 88 | 31% | +| slic/devices/general/shutter.py | 22 | 12 | 45% | +| slic/devices/general/shutterctx.py | 18 | 7 | 61% | +| slic/devices/general/smaract.py | 169 | 125 | 26% | +| slic/devices/loptics/\_\_init\_\_.py | 2 | 0 | 100% | +| slic/devices/loptics/alvra\_explaser.py | 29 | 21 | 28% | +| slic/devices/loptics/bernina\_explaser.py | 28 | 28 | 0% | +| slic/devices/loptics/lasershutter.py | 22 | 14 | 36% | +| slic/devices/timing/\_\_init\_\_.py | 0 | 0 | 100% | +| slic/devices/timing/events/\_\_init\_\_.py | 3 | 3 | 0% | +| slic/devices/timing/events/codes.py | 5 | 5 | 0% | +| slic/devices/timing/events/ctaseq.py | 190 | 190 | 0% | +| slic/devices/timing/events/evr.py | 37 | 37 | 0% | +| slic/devices/timing/events/tma.py | 40 | 40 | 0% | +| slic/devices/timing/lasertiming.py | 253 | 184 | 27% | +| slic/devices/xdiagnostics/\_\_init\_\_.py | 2 | 0 | 100% | +| slic/devices/xdiagnostics/intensitymonitor.py | 124 | 92 | 26% | +| slic/devices/xdiagnostics/profilemonitor.py | 19 | 9 | 53% | +| slic/devices/xdiagnostics/timetools.py | 48 | 48 | 0% | +| slic/devices/xoptics/\_\_init\_\_.py | 7 | 0 | 100% | +| slic/devices/xoptics/aramis\_attenuator.py | 96 | 66 | 31% | +| slic/devices/xoptics/aramis\_reflaser.py | 23 | 15 | 35% | +| slic/devices/xoptics/dcm.py | 211 | 162 | 23% | +| slic/devices/xoptics/kb.py | 30 | 18 | 40% | +| slic/devices/xoptics/offsetmirrors.py | 9 | 5 | 44% | +| slic/devices/xoptics/pulsepicker.py | 56 | 34 | 39% | +| slic/devices/xoptics/slits/\_\_init\_\_.py | 5 | 0 | 100% | +| slic/devices/xoptics/slits/slitblades.py | 66 | 48 | 27% | +| slic/devices/xoptics/slits/slittwinunit.py | 12 | 6 | 50% | +| slic/devices/xoptics/slits/slitunit.py | 14 | 8 | 43% | +| slic/devices/xoptics/slits/slitunitcw.py | 7 | 3 | 57% | +| slic/devices/xoptics/slits/slitunitjj.py | 8 | 5 | 38% | +| slic/gui/\_\_init\_\_.py | 1 | 0 | 100% | +| slic/gui/daqframe.py | 75 | 54 | 28% | +| slic/gui/daqpanels/\_\_init\_\_.py | 6 | 0 | 100% | +| slic/gui/daqpanels/config.py | 98 | 80 | 18% | +| slic/gui/daqpanels/goto.py | 92 | 76 | 17% | +| slic/gui/daqpanels/run.py | 56 | 46 | 18% | +| slic/gui/daqpanels/scan2d.py | 77 | 66 | 14% | +| slic/gui/daqpanels/scan.py | 63 | 54 | 14% | +| slic/gui/daqpanels/sfx.py | 77 | 60 | 22% | +| slic/gui/daqpanels/special.py | 63 | 54 | 14% | +| slic/gui/daqpanels/static.py | 46 | 37 | 20% | +| slic/gui/daqpanels/tools.py | 140 | 114 | 19% | +| slic/gui/daqpanels/tweak.py | 149 | 127 | 15% | +| slic/gui/gui.py | 16 | 10 | 38% | +| slic/gui/icon.py | 8 | 4 | 50% | +| slic/gui/persist.py | 68 | 48 | 29% | +| slic/gui/widgets/\_\_init\_\_.py | 11 | 0 | 100% | +| slic/gui/widgets/alarm.py | 21 | 9 | 57% | +| slic/gui/widgets/alternative.py | 51 | 40 | 22% | +| slic/gui/widgets/boxes.py | 33 | 26 | 21% | +| slic/gui/widgets/checkbox.py | 8 | 4 | 50% | +| slic/gui/widgets/completers.py | 27 | 19 | 30% | +| slic/gui/widgets/dyncombo.py | 49 | 49 | 0% | +| slic/gui/widgets/entries.py | 253 | 195 | 23% | +| slic/gui/widgets/exc2warn.py | 15 | 13 | 13% | +| slic/gui/widgets/fname.py | 60 | 47 | 22% | +| slic/gui/widgets/jfcfg.py | 290 | 230 | 21% | +| slic/gui/widgets/jfmodcoords.py | 88 | 70 | 20% | +| slic/gui/widgets/labeled.py | 19 | 7 | 63% | +| slic/gui/widgets/lists.py | 96 | 73 | 24% | +| slic/gui/widgets/mods.py | 25 | 17 | 32% | +| slic/gui/widgets/nope.py | 26 | 19 | 27% | +| slic/gui/widgets/plotting.py | 68 | 47 | 31% | +| slic/gui/widgets/tools.py | 11 | 7 | 36% | +| slic/gui/widgets/twobuttons.py | 43 | 30 | 30% | +| slic/gui/wxdebug.py | 15 | 7 | 53% | +| slic/utils/\_\_init\_\_.py | 24 | 0 | 100% | +| slic/utils/argfwd.py | 53 | 14 | 74% | +| slic/utils/ask\_yes\_no.py | 27 | 20 | 26% | +| slic/utils/channels.py | 17 | 12 | 29% | +| slic/utils/config.py | 5 | 2 | 60% | +| slic/utils/cprint.py | 41 | 16 | 61% | +| slic/utils/dbusnotify.py | 40 | 25 | 38% | +| slic/utils/debug.py | 16 | 12 | 25% | +| slic/utils/dictext.py | 30 | 19 | 37% | +| slic/utils/dotdir.py | 10 | 1 | 90% | +| slic/utils/duo.py | 77 | 45 | 42% | +| slic/utils/elog.py | 31 | 21 | 32% | +| slic/utils/eval.py | 49 | 37 | 24% | +| slic/utils/exceptions.py | 22 | 14 | 36% | +| slic/utils/get\_adj.py | 17 | 11 | 35% | +| slic/utils/hastyepics.py | 37 | 25 | 32% | +| slic/utils/ioc/\_\_init\_\_.py | 1 | 1 | 0% | +| slic/utils/ioc/adjdrv.py | 31 | 31 | 0% | +| slic/utils/ioc/ioc.py | 63 | 63 | 0% | +| slic/utils/ipy.py | 22 | 15 | 32% | +| slic/utils/jsonext.py | 24 | 16 | 33% | +| slic/utils/lazypv.py | 12 | 12 | 0% | +| slic/utils/logcfg.py | 52 | 2 | 96% | +| slic/utils/logign.py | 22 | 14 | 36% | +| slic/utils/marker.py | 48 | 31 | 35% | +| slic/utils/metaclasses.py | 8 | 0 | 100% | +| slic/utils/namespace.py | 5 | 1 | 80% | +| slic/utils/npy.py | 71 | 56 | 21% | +| slic/utils/opmsg.py | 122 | 122 | 0% | +| slic/utils/path.py | 32 | 24 | 25% | +| slic/utils/picklio.py | 7 | 3 | 57% | +| slic/utils/printing.py | 77 | 61 | 21% | +| slic/utils/pv.py | 30 | 20 | 33% | +| slic/utils/pvpreload.py | 50 | 19 | 62% | +| slic/utils/pyepics.py | 64 | 39 | 39% | +| slic/utils/rangebar.py | 92 | 61 | 34% | +| slic/utils/readable.py | 12 | 9 | 25% | +| slic/utils/registry.py | 33 | 19 | 42% | +| slic/utils/reprate.py | 55 | 42 | 24% | +| slic/utils/richcfg.py | 21 | 11 | 48% | +| slic/utils/run\_later.py | 64 | 64 | 0% | +| slic/utils/screenshot.py | 30 | 21 | 30% | +| slic/utils/sendmail.py | 49 | 11 | 78% | +| slic/utils/sendsms.py | 5 | 5 | 0% | +| slic/utils/shortcut.py | 38 | 20 | 47% | +| slic/utils/snapshot.py | 6 | 3 | 50% | +| slic/utils/termtitle.py | 3 | 0 | 100% | +| slic/utils/tqdm\_mod.py | 28 | 18 | 36% | +| slic/utils/trinary.py | 4 | 2 | 50% | +| slic/utils/typecast.py | 19 | 19 | 0% | +| slic/utils/utils.py | 17 | 8 | 53% | +| slic/utils/xrange.py | 33 | 30 | 9% | +| **TOTAL** | **9529** | **6961** | **27%** | diff --git a/markdown/pytest-report.json b/markdown/pytest-report.json index f3c4eca7a..202592d5b 100644 --- a/markdown/pytest-report.json +++ b/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1755019971.7561808, "duration": 44.845924377441406, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 21, "failed": 4, "total": 25, "collected": 25}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_reprate.py", "type": "Module"}]}, {"nodeid": "tests/test_utils_reprate.py", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_reprate.py::test_get_beamline[alvra-aramis]", "type": "Function", "lineno": 8}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", "type": "Function", "lineno": 8}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", "type": "Function", "lineno": 8}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", "type": "Function", "lineno": 8}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", "type": "Function", "lineno": 8}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", "type": "Function", "lineno": 8}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", "type": "Function", "lineno": 21}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", "type": "Function", "lineno": 30}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "type": "Function", "lineno": 45}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", "type": "Function", "lineno": 58}, {"nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", "type": "Function", "lineno": 68}, {"nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", "type": "Function", "lineno": 86}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", "type": "Function", "lineno": 102}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", "type": "Function", "lineno": 102}, {"nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", "type": "Function", "lineno": 113}]}], "tests": [{"nodeid": "tests/test_utils_reprate.py::test_get_beamline[alvra-aramis]", "lineno": 8, "outcome": "passed", "keywords": ["test_get_beamline[alvra-aramis]", "parametrize", "pytestmark", "alvra-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0005788891576230526, "outcome": "passed"}, "call": {"duration": 0.00016874773427844048, "outcome": "passed"}, "teardown": {"duration": 0.0002710050903260708, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", "lineno": 8, "outcome": "passed", "keywords": ["test_get_beamline[bernina-aramis]", "parametrize", "pytestmark", "bernina-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00023358268663287163, "outcome": "passed"}, "call": {"duration": 0.00013712001964449883, "outcome": "passed"}, "teardown": {"duration": 0.00013442011550068855, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", "lineno": 8, "outcome": "passed", "keywords": ["test_get_beamline[cristallina-aramis]", "parametrize", "pytestmark", "cristallina-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00020313169807195663, "outcome": "passed"}, "call": {"duration": 0.00013508601114153862, "outcome": "passed"}, "teardown": {"duration": 0.0001256079412996769, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", "lineno": 8, "outcome": "passed", "keywords": ["test_get_beamline[diavolezza-athos]", "parametrize", "pytestmark", "diavolezza-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00019631627947092056, "outcome": "passed"}, "call": {"duration": 0.0001267809420824051, "outcome": "passed"}, "teardown": {"duration": 0.00012459373101592064, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", "lineno": 8, "outcome": "passed", "keywords": ["test_get_beamline[maloja-athos]", "parametrize", "pytestmark", "maloja-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00020320992916822433, "outcome": "passed"}, "call": {"duration": 0.00013838708400726318, "outcome": "passed"}, "teardown": {"duration": 0.00012201862409710884, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", "lineno": 8, "outcome": "passed", "keywords": ["test_get_beamline[furka-athos]", "parametrize", "pytestmark", "furka-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00019458821043372154, "outcome": "passed"}, "call": {"duration": 0.00013788696378469467, "outcome": "passed"}, "teardown": {"duration": 0.00012258486822247505, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", "lineno": 21, "outcome": "failed", "keywords": ["test_get_pvname_reprate_for_inferred_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010153697803616524, "outcome": "passed"}, "call": {"duration": 0.0015485454350709915, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 28, "message": "AssertionError: Expected SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB, but got None\nassert None == 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 28, "message": "AssertionError"}], "longrepr": "def test_get_pvname_reprate_for_inferred_beamline():\n \"\"\"Test the PV name retrieval when using inferred beamline based on IP address.\"\"\"\n with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=\"129.129.242\"):\n beamline = infer_beamline() # This will return \"alvra\" based on the IP\n pvname = get_pvname_reprate(instrument=None, beamline=beamline) # This should return the PV name associated with 'aramis'\n expected_pvname = \"SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB\"\n> assert pvname == expected_pvname, f\"Expected {expected_pvname}, but got {pvname}\"\nE AssertionError: Expected SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB, but got None\nE assert None == 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB'\n\ntests/test_utils_reprate.py:28: AssertionError"}, "teardown": {"duration": 0.00025820499286055565, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", "lineno": 30, "outcome": "passed", "keywords": ["test_infer_beamline_from_ip[129.129.242-alvra]", "parametrize", "pytestmark", "129.129.242-alvra", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0003235619515180588, "outcome": "passed"}, "call": {"duration": 0.0009674280881881714, "outcome": "passed"}, "teardown": {"duration": 0.00015263911336660385, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", "lineno": 30, "outcome": "passed", "keywords": ["test_infer_beamline_from_ip[129.129.243-bernina]", "parametrize", "pytestmark", "129.129.243-bernina", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00024035293608903885, "outcome": "passed"}, "call": {"duration": 0.000902222003787756, "outcome": "passed"}, "teardown": {"duration": 0.00014961697161197662, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", "lineno": 30, "outcome": "passed", "keywords": ["test_infer_beamline_from_ip[129.129.244-cristallina]", "parametrize", "pytestmark", "129.129.244-cristallina", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00022047711536288261, "outcome": "passed"}, "call": {"duration": 0.0007843486964702606, "outcome": "passed"}, "teardown": {"duration": 0.00015273923054337502, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", "lineno": 30, "outcome": "passed", "keywords": ["test_infer_beamline_from_ip[129.129.245-diavolezza]", "parametrize", "pytestmark", "129.129.245-diavolezza", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00023065321147441864, "outcome": "passed"}, "call": {"duration": 0.0008371700532734394, "outcome": "passed"}, "teardown": {"duration": 0.00014894502237439156, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", "lineno": 30, "outcome": "passed", "keywords": ["test_infer_beamline_from_ip[129.129.246-maloja]", "parametrize", "pytestmark", "129.129.246-maloja", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002244659699499607, "outcome": "passed"}, "call": {"duration": 0.0007544751279056072, "outcome": "passed"}, "teardown": {"duration": 0.00015819305554032326, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", "lineno": 30, "outcome": "passed", "keywords": ["test_infer_beamline_from_ip[129.129.247-furka]", "parametrize", "pytestmark", "129.129.247-furka", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.000219808891415596, "outcome": "passed"}, "call": {"duration": 0.0008365381509065628, "outcome": "passed"}, "teardown": {"duration": 0.00014425208792090416, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "lineno": 45, "outcome": "passed", "keywords": ["test_get_pvname_reprate_with_instrument_and_beamline[alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "parametrize", "pytestmark", "alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00026769936084747314, "outcome": "passed"}, "call": {"duration": 0.00013915589079260826, "outcome": "passed"}, "teardown": {"duration": 0.0001358548179268837, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "lineno": 45, "outcome": "passed", "keywords": ["test_get_pvname_reprate_with_instrument_and_beamline[bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "parametrize", "pytestmark", "bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00023475196212530136, "outcome": "passed"}, "call": {"duration": 0.00012672971934080124, "outcome": "passed"}, "teardown": {"duration": 0.00014697108417749405, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "lineno": 45, "outcome": "passed", "keywords": ["test_get_pvname_reprate_with_instrument_and_beamline[cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", "parametrize", "pytestmark", "cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00024154968559741974, "outcome": "passed"}, "call": {"duration": 0.00013650069013237953, "outcome": "passed"}, "teardown": {"duration": 0.00014085881412029266, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "lineno": 45, "outcome": "passed", "keywords": ["test_get_pvname_reprate_with_instrument_and_beamline[diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "parametrize", "pytestmark", "diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00023910077288746834, "outcome": "passed"}, "call": {"duration": 0.0001278468407690525, "outcome": "passed"}, "teardown": {"duration": 0.00014201831072568893, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "lineno": 45, "outcome": "passed", "keywords": ["test_get_pvname_reprate_with_instrument_and_beamline[maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "parametrize", "pytestmark", "maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002307537943124771, "outcome": "passed"}, "call": {"duration": 0.00012977886945009232, "outcome": "passed"}, "teardown": {"duration": 0.00014158198609948158, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "lineno": 45, "outcome": "passed", "keywords": ["test_get_pvname_reprate_with_instrument_and_beamline[furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", "parametrize", "pytestmark", "furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002401820383965969, "outcome": "passed"}, "call": {"duration": 0.00013034511357545853, "outcome": "passed"}, "teardown": {"duration": 0.00014566583558917046, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", "lineno": 58, "outcome": "passed", "keywords": ["test_invalid_instrument_or_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0001040380448102951, "outcome": "passed"}, "call": {"duration": 0.00028761476278305054, "outcome": "passed"}, "teardown": {"duration": 0.00013072602450847626, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", "lineno": 68, "outcome": "failed", "keywords": ["test_monitor_value_update", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010786205530166626, "outcome": "passed"}, "call": {"duration": 20.107356469146907, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 73, "message": "AssertionError: Expected 20.0, but got None\nassert None == 20.0\n + where None = Aramis Rep. Rate: None None.value"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 73, "message": "AssertionError"}], "longrepr": "def test_monitor_value_update():\n #Test that the RepRateMonitor correctly updates its value and units\n monitor = RepRateMonitor(\"alvra\") # Example instrument\n # Check that the initial value is 20.0 and the units are correct\n> assert monitor.value == 20.0, f\"Expected 20.0, but got {monitor.value}\"\nE AssertionError: Expected 20.0, but got None\nE assert None == 20.0\nE + where None = Aramis Rep. Rate: None None.value\n\ntests/test_utils_reprate.py:73: AssertionError"}, "teardown": {"duration": 0.00044173188507556915, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", "lineno": 86, "outcome": "failed", "keywords": ["test_repr_method_with_initial_values", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00021803611889481544, "outcome": "passed"}, "call": {"duration": 20.001739728730172, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 100, "message": "AssertionError: Expected 'Aramis Rep. Rate: 20.0 Hz', but got 'Aramis Rep. Rate: None None'\nassert 'Aramis Rep. Rate: None None' == 'Aramis Rep. Rate: 20.0 Hz'\n \n - Aramis Rep. Rate: 20.0 Hz\n + Aramis Rep. Rate: None None"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 100, "message": "AssertionError"}], "longrepr": "def test_repr_method_with_initial_values():\n # Test __repr__\n monitor = RepRateMonitor(\"alvra\")\n \n # Expected initial values\n expected_name = \"Aramis Rep. Rate\"\n expected_value = 20.0\n expected_units = \"Hz\"\n \n # Expected representation\n expected_repr = f\"{expected_name}: {expected_value} {expected_units}\"\n \n # Check that the __repr__ method returns the expected string\n> assert repr(monitor) == expected_repr, f\"Expected '{expected_repr}', but got '{repr(monitor)}'\"\nE AssertionError: Expected 'Aramis Rep. Rate: 20.0 Hz', but got 'Aramis Rep. Rate: None None'\nE assert 'Aramis Rep. Rate: None None' == 'Aramis Rep. Rate: 20.0 Hz'\nE \nE - Aramis Rep. Rate: 20.0 Hz\nE + Aramis Rep. Rate: None None\n\ntests/test_utils_reprate.py:100: AssertionError"}, "teardown": {"duration": 0.00020480994135141373, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", "lineno": 102, "outcome": "passed", "keywords": ["test_invalid_target_handling[invalid_instrument]", "parametrize", "pytestmark", "invalid_instrument", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0003800690174102783, "outcome": "passed"}, "call": {"duration": 0.0003368188627064228, "outcome": "passed"}, "teardown": {"duration": 0.00015965290367603302, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", "lineno": 102, "outcome": "passed", "keywords": ["test_invalid_target_handling[non_existing_beamline]", "parametrize", "pytestmark", "non_existing_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0001860843040049076, "outcome": "passed"}, "call": {"duration": 0.0002081659622490406, "outcome": "passed"}, "teardown": {"duration": 0.00012544402852654457, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", "lineno": 113, "outcome": "failed", "keywords": ["test_retrieve_pvname_for_none_instrument_and_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010816380381584167, "outcome": "passed"}, "call": {"duration": 0.00033916207030415535, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 117, "message": "AssertionError: Name should not be None.\nassert None is not None\n + where None = None: None None.name"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 117, "message": "AssertionError"}], "longrepr": "def test_retrieve_pvname_for_none_instrument_and_beamline():\n # Test that if both instrument and beamline are None, the method works correctly.\"\"\"\n monitor = RepRateMonitor(target=None)\n> assert monitor.name is not None, \"Name should not be None.\"\nE AssertionError: Name should not be None.\nE assert None is not None\nE + where None = None: None None.name\n\ntests/test_utils_reprate.py:117: AssertionError"}, "teardown": {"duration": 0.00014306511729955673, "outcome": "passed"}}], "warnings": [{"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}, {"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}]} \ No newline at end of file +{"created": 1755021141.3616393, "duration": 9.931466102600098, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"failed": 1, "total": 1, "collected": 1}, "collectors": [{"nodeid": "", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_sendmail.py", "type": "Module"}]}, {"nodeid": "tests/test_utils_sendmail.py", "outcome": "passed", "result": [{"nodeid": "tests/test_utils_sendmail.py::test_sendmail_local_delivery", "type": "Function", "lineno": 10}]}], "tests": [{"nodeid": "tests/test_utils_sendmail.py::test_sendmail_local_delivery", "lineno": 10, "outcome": "failed", "keywords": ["test_sendmail_local_delivery", "test_utils_sendmail.py", "tests", "slic", ""], "setup": {"duration": 0.00037442194297909737, "outcome": "passed"}, "call": {"duration": 5.0816574287600815, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_sendmail.py", "lineno": 36, "message": "AssertionError: No email was delivered to /root/Maildir/new\nassert []"}, "traceback": [{"path": "tests/test_utils_sendmail.py", "lineno": 36, "message": "AssertionError"}], "longrepr": "def test_sendmail_local_delivery():\n \n # Get the current system user (will be the local mailbox owner)\n user = getpass.getuser()\n \n # Define the recipient and email content\n to_addr = f\"{user}@localhost\"\n subject = \"Local sendmail test\"\n body = \"Hello from pytest/local!\"\n \n # Send the email using the function under test\n sendmail(to_addr, from_addr=f\"{user}@localhost\", subject=subject, body=body)\n \n # Path to the Maildir 'new' folder for this user\n maildir_new = os.path.expanduser(\"~/Maildir/new\")\n \n # Wait a short time for delivery (Postfix is fast, but we ensure robustness)\n files = []\n for _ in range(50): # Try for ~5 seconds\n time.sleep(0.1)\n files = sorted(glob.glob(os.path.join(maildir_new, \"*\")))\n if files:\n break\n \n # Assert that at least one mail file was delivered\n> assert files, f\"No email was delivered to {maildir_new}\"\nE AssertionError: No email was delivered to /root/Maildir/new\nE assert []\n\ntests/test_utils_sendmail.py:36: AssertionError"}, "teardown": {"duration": 0.00040509412065148354, "outcome": "passed"}}], "warnings": [{"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}, {"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}]} \ No newline at end of file diff --git a/markdown/runtime_params.json b/markdown/runtime_params.json index ad2851f51..f14a0a423 100644 --- a/markdown/runtime_params.json +++ b/markdown/runtime_params.json @@ -1,226 +1,6 @@ [ { - "nodeid": "tests/test_utils_reprate.py::test_get_beamline[alvra-aramis]", - "callspec": { - "params": { - "instrument": "alvra", - "expected_beamline": "aramis" - }, - "id": "alvra-aramis" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", - "callspec": { - "params": { - "instrument": "bernina", - "expected_beamline": "aramis" - }, - "id": "bernina-aramis" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", - "callspec": { - "params": { - "instrument": "cristallina", - "expected_beamline": "aramis" - }, - "id": "cristallina-aramis" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", - "callspec": { - "params": { - "instrument": "diavolezza", - "expected_beamline": "athos" - }, - "id": "diavolezza-athos" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", - "callspec": { - "params": { - "instrument": "maloja", - "expected_beamline": "athos" - }, - "id": "maloja-athos" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", - "callspec": { - "params": { - "instrument": "furka", - "expected_beamline": "athos" - }, - "id": "furka-athos" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", - "callspec": null - }, - { - "nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", - "callspec": { - "params": { - "ip": "129.129.242", - "expected_instrument": "alvra" - }, - "id": "129.129.242-alvra" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", - "callspec": { - "params": { - "ip": "129.129.243", - "expected_instrument": "bernina" - }, - "id": "129.129.243-bernina" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", - "callspec": { - "params": { - "ip": "129.129.244", - "expected_instrument": "cristallina" - }, - "id": "129.129.244-cristallina" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", - "callspec": { - "params": { - "ip": "129.129.245", - "expected_instrument": "diavolezza" - }, - "id": "129.129.245-diavolezza" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", - "callspec": { - "params": { - "ip": "129.129.246", - "expected_instrument": "maloja" - }, - "id": "129.129.246-maloja" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", - "callspec": { - "params": { - "ip": "129.129.247", - "expected_instrument": "furka" - }, - "id": "129.129.247-furka" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", - "callspec": { - "params": { - "instrument": "alvra", - "beamline": "aramis", - "pvname": "SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - }, - "id": "alvra-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", - "callspec": { - "params": { - "instrument": "bernina", - "beamline": "aramis", - "pvname": "SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - }, - "id": "bernina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB]", - "callspec": { - "params": { - "instrument": "cristallina", - "beamline": "aramis", - "pvname": "SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - }, - "id": "cristallina-aramis-SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", - "callspec": { - "params": { - "instrument": "diavolezza", - "beamline": "athos", - "pvname": "SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB" - }, - "id": "diavolezza-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", - "callspec": { - "params": { - "instrument": "maloja", - "beamline": "athos", - "pvname": "SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB" - }, - "id": "maloja-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_with_instrument_and_beamline[furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB]", - "callspec": { - "params": { - "instrument": "furka", - "beamline": "athos", - "pvname": "SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB" - }, - "id": "furka-athos-SIN-TIMAST-TMA:Bunch-2-Exp-Freq-RB" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", - "callspec": null - }, - { - "nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", - "callspec": null - }, - { - "nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", - "callspec": null - }, - { - "nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", - "callspec": { - "params": { - "invalid_target": "invalid_instrument" - }, - "id": "invalid_instrument" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", - "callspec": { - "params": { - "invalid_target": "non_existing_beamline" - }, - "id": "non_existing_beamline" - } - }, - { - "nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", + "nodeid": "tests/test_utils_sendmail.py::test_sendmail_local_delivery", "callspec": null } ] \ No newline at end of file