diff --git a/markdown/TEST-REPORT.md b/markdown/TEST-REPORT.md index 99db1f121..29f7c0a9c 100644 --- a/markdown/TEST-REPORT.md +++ b/markdown/TEST-REPORT.md @@ -1,21 +1,21 @@ # ๐Ÿงช Test Report -*Generated on 2025-08-12 16:49:35 CEST* +*Generated on 2025-08-12 16:57:44 CEST* ## ๐Ÿงพ General Info -- **duration**: 44.90700602531433 +- **duration**: 45.25055265426636 - **root**: /workspace/tligui_y/slic - **environment**: {} ## ๐Ÿ“‹ Summary -- **Passed**: 12 -- **Failed**: 13 +- **Passed**: 18 +- **Failed**: 7 - **Total**: 25 - **Collected**: 25 ## ๐Ÿ”Ž Tests
-โœ… Passed (12) +โœ… Passed (18) -
๐Ÿ“„ test_utils_reprate.py @@ -38,7 +38,7 @@ **duration:** ```python - 0.0005506710149347782 + 0.0006991219706833363 ``` **outcome:** @@ -52,7 +52,7 @@ **duration:** ```python - 0.0001874193549156189 + 0.00017074402421712875 ``` **outcome:** @@ -66,7 +66,7 @@ **duration:** ```python - 0.00023650797083973885 + 0.0002378537319600582 ``` **outcome:** @@ -92,7 +92,7 @@ **duration:** ```python - 0.0002413308247923851 + 0.00022435327991843224 ``` **outcome:** @@ -106,7 +106,7 @@ **duration:** ```python - 0.0001497962512075901 + 0.00014078104868531227 ``` **outcome:** @@ -120,7 +120,7 @@ **duration:** ```python - 0.00013364525511860847 + 0.0001293560490012169 ``` **outcome:** @@ -146,7 +146,7 @@ **duration:** ```python - 0.0002227150835096836 + 0.00020011886954307556 ``` **outcome:** @@ -160,7 +160,7 @@ **duration:** ```python - 0.0001298137940466404 + 0.00013721222057938576 ``` **outcome:** @@ -174,7 +174,7 @@ **duration:** ```python - 0.00012382213026285172 + 0.00012502819299697876 ``` **outcome:** @@ -200,7 +200,7 @@ **duration:** ```python - 0.0002170111984014511 + 0.0002075466327369213 ``` **outcome:** @@ -214,7 +214,7 @@ **duration:** ```python - 0.00013055000454187393 + 0.00013267016038298607 ``` **outcome:** @@ -228,7 +228,7 @@ **duration:** ```python - 0.00012308312579989433 + 0.00012606242671608925 ``` **outcome:** @@ -254,7 +254,7 @@ **duration:** ```python - 0.00020765699446201324 + 0.00019579939544200897 ``` **outcome:** @@ -268,7 +268,7 @@ **duration:** ```python - 0.00013535097241401672 + 0.00013789022341370583 ``` **outcome:** @@ -282,7 +282,7 @@ **duration:** ```python - 0.00012227706611156464 + 0.00012844009324908257 ``` **outcome:** @@ -308,7 +308,7 @@ **duration:** ```python - 0.00021307123824954033 + 0.00020122993737459183 ``` **outcome:** @@ -322,7 +322,7 @@ **duration:** ```python - 0.00013368623331189156 + 0.000144170131534338 ``` **outcome:** @@ -336,7 +336,332 @@ **duration:** ```python - 0.00012292899191379547 + 0.00012356415390968323 + ``` + + **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.00029164645820856094 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0009256270714104176 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001930580474436283 + ``` + + **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.00023877806961536407 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0009349137544631958 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.0001784786581993103 + ``` + + **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.0002294713631272316 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0008003110997378826 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00015252316370606422 + ``` + + **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.00022909976541996002 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0008713477291166782 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00015792623162269592 + ``` + + **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.0002543278969824314 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0008785240352153778 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00023095495998859406 + ``` + + **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.00024754414334893227 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Call phase*_** + + **duration:** + + ```python + 0.0009344150312244892 + ``` + + **outcome:** + + ```python + passed + ``` + + **_*๐Ÿ“Œ Teardown phase*_** + + **duration:** + + ```python + 0.00024783099070191383 ``` **outcome:** @@ -364,7 +689,7 @@ **duration:** ```python - 0.00027018412947654724 + 0.0002780999056994915 ``` **outcome:** @@ -378,7 +703,7 @@ **duration:** ```python - 0.00014001596719026566 + 0.00014235079288482666 ``` **outcome:** @@ -392,7 +717,7 @@ **duration:** ```python - 0.00013837963342666626 + 0.0001572808250784874 ``` **outcome:** @@ -419,7 +744,7 @@ **duration:** ```python - 0.00023867981508374214 + 0.00024537229910492897 ``` **outcome:** @@ -433,7 +758,7 @@ **duration:** ```python - 0.00013012299314141273 + 0.00014458689838647842 ``` **outcome:** @@ -447,7 +772,7 @@ **duration:** ```python - 0.00013347202911973 + 0.00015116389840841293 ``` **outcome:** @@ -474,7 +799,7 @@ **duration:** ```python - 0.0002556317485868931 + 0.0002516261301934719 ``` **outcome:** @@ -488,7 +813,7 @@ **duration:** ```python - 0.00014369795098900795 + 0.00017159478738904 ``` **outcome:** @@ -502,7 +827,7 @@ **duration:** ```python - 0.00013615703210234642 + 0.0001514921896159649 ``` **outcome:** @@ -529,7 +854,7 @@ **duration:** ```python - 0.00023730425164103508 + 0.00043696071952581406 ``` **outcome:** @@ -543,7 +868,7 @@ **duration:** ```python - 0.00013760989531874657 + 0.00023657642304897308 ``` **outcome:** @@ -557,7 +882,7 @@ **duration:** ```python - 0.0001318110153079033 + 0.0002515590749680996 ``` **outcome:** @@ -584,7 +909,7 @@ **duration:** ```python - 0.00023721205070614815 + 0.00026938412338495255 ``` **outcome:** @@ -598,7 +923,7 @@ **duration:** ```python - 0.00014213798567652702 + 0.000147250946611166 ``` **outcome:** @@ -612,7 +937,7 @@ **duration:** ```python - 0.0001353668048977852 + 0.00014251144602894783 ``` **outcome:** @@ -639,7 +964,7 @@ **duration:** ```python - 0.0002386951819062233 + 0.0002530999481678009 ``` **outcome:** @@ -653,7 +978,7 @@ **duration:** ```python - 0.00013563688844442368 + 0.00014344556257128716 ``` **outcome:** @@ -667,7 +992,7 @@ **duration:** ```python - 0.00014317501336336136 + 0.00013825483620166779 ``` **outcome:** @@ -681,7 +1006,7 @@
-โŒ Failed (13) +โŒ Failed (7) -
๐Ÿ“„ test_utils_reprate.py @@ -695,7 +1020,7 @@ **duration:** ```python - 0.00010397611185908318 + 0.00010231323540210724 ``` **outcome:** @@ -709,7 +1034,7 @@ **duration:** ```python - 0.00015570037066936493 + 0.001471501775085926 ``` **outcome:** @@ -722,16 +1047,17 @@ ```python path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 23 - message: NameError: name 'patch' is not defined + lineno: 27 + message: AssertionError: Expected 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB', but got None + assert None == 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB' ``` **traceback:** ```python - path: tests/test_utils_reprate.py - lineno: 23 - message: NameError + lineno: 27 + message: AssertionError ``` **longrepr:** @@ -740,10 +1066,14 @@ def test_get_pvname_reprate_for_inferred_beamline(): """Test the PV name retrieval when using inferred beamline based on IP address.""" # Mock the socket to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value="129.129.242"): - E NameError: name 'patch' is not defined + with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value="129.129.242"): + beamline = infer_beamline() + pvname = get_pvname_reprate(instrument=None, beamline=beamline) + > assert pvname == BEAMLINE_TO_PVNAME_REPRATE["aramis"], f"Expected 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB', 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:23: NameError + tests/test_utils_reprate.py:27: AssertionError ``` **_*๐Ÿ“Œ Teardown phase*_** @@ -751,560 +1081,7 @@ **duration:** ```python - 0.00022893818095326424 - ``` - - **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.0003011520020663738 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00017404695972800255 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 39 - message: NameError: name 'patch' is not defined - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 39 - message: NameError - ``` - - **longrepr:** - - ```python - ip = '129.129.242', expected_instrument = 'alvra' - - @pytest.mark.parametrize("ip,expected_instrument", [ - ("129.129.242", "alvra"), - ("129.129.243", "bernina"), - ("129.129.244", "cristallina"), - ("129.129.245", "diavolezza"), - ("129.129.246", "maloja"), - ("129.129.247", "furka") - ]) - def test_infer_beamline_from_ip(ip, expected_instrument): - """Test that the beamline is correctly inferred based on the IP address.""" - # Mock the socket functions to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value=ip): - E NameError: name 'patch' is not defined - - tests/test_utils_reprate.py:39: NameError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00018887687474489212 - ``` - - **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.00024019507691264153 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.0001530633307993412 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 39 - message: NameError: name 'patch' is not defined - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 39 - message: NameError - ``` - - **longrepr:** - - ```python - ip = '129.129.243', expected_instrument = 'bernina' - - @pytest.mark.parametrize("ip,expected_instrument", [ - ("129.129.242", "alvra"), - ("129.129.243", "bernina"), - ("129.129.244", "cristallina"), - ("129.129.245", "diavolezza"), - ("129.129.246", "maloja"), - ("129.129.247", "furka") - ]) - def test_infer_beamline_from_ip(ip, expected_instrument): - """Test that the beamline is correctly inferred based on the IP address.""" - # Mock the socket functions to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value=ip): - E NameError: name 'patch' is not defined - - tests/test_utils_reprate.py:39: NameError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.0001726481132209301 - ``` - - **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.0002397908829152584 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00014788005501031876 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 39 - message: NameError: name 'patch' is not defined - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 39 - message: NameError - ``` - - **longrepr:** - - ```python - ip = '129.129.244', expected_instrument = 'cristallina' - - @pytest.mark.parametrize("ip,expected_instrument", [ - ("129.129.242", "alvra"), - ("129.129.243", "bernina"), - ("129.129.244", "cristallina"), - ("129.129.245", "diavolezza"), - ("129.129.246", "maloja"), - ("129.129.247", "furka") - ]) - def test_infer_beamline_from_ip(ip, expected_instrument): - """Test that the beamline is correctly inferred based on the IP address.""" - # Mock the socket functions to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value=ip): - E NameError: name 'patch' is not defined - - tests/test_utils_reprate.py:39: NameError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.0001795310527086258 - ``` - - **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.0002344772219657898 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00014866888523101807 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 39 - message: NameError: name 'patch' is not defined - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 39 - message: NameError - ``` - - **longrepr:** - - ```python - ip = '129.129.245', expected_instrument = 'diavolezza' - - @pytest.mark.parametrize("ip,expected_instrument", [ - ("129.129.242", "alvra"), - ("129.129.243", "bernina"), - ("129.129.244", "cristallina"), - ("129.129.245", "diavolezza"), - ("129.129.246", "maloja"), - ("129.129.247", "furka") - ]) - def test_infer_beamline_from_ip(ip, expected_instrument): - """Test that the beamline is correctly inferred based on the IP address.""" - # Mock the socket functions to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value=ip): - E NameError: name 'patch' is not defined - - tests/test_utils_reprate.py:39: NameError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.0001655416563153267 - ``` - - **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.00022963667288422585 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00014902325347065926 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 39 - message: NameError: name 'patch' is not defined - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 39 - message: NameError - ``` - - **longrepr:** - - ```python - ip = '129.129.246', expected_instrument = 'maloja' - - @pytest.mark.parametrize("ip,expected_instrument", [ - ("129.129.242", "alvra"), - ("129.129.243", "bernina"), - ("129.129.244", "cristallina"), - ("129.129.245", "diavolezza"), - ("129.129.246", "maloja"), - ("129.129.247", "furka") - ]) - def test_infer_beamline_from_ip(ip, expected_instrument): - """Test that the beamline is correctly inferred based on the IP address.""" - # Mock the socket functions to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value=ip): - E NameError: name 'patch' is not defined - - tests/test_utils_reprate.py:39: NameError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00017941417172551155 - ``` - - **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.0002387487329542637 - ``` - - **outcome:** - - ```python - passed - ``` - - **_*๐Ÿ“Œ Call phase*_** - - **duration:** - - ```python - 0.00015581119805574417 - ``` - - **outcome:** - - ```python - failed - ``` - - **crash:** - - ```python - path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 39 - message: NameError: name 'patch' is not defined - ``` - - **traceback:** - - ```python - - path: tests/test_utils_reprate.py - lineno: 39 - message: NameError - ``` - - **longrepr:** - - ```python - ip = '129.129.247', expected_instrument = 'furka' - - @pytest.mark.parametrize("ip,expected_instrument", [ - ("129.129.242", "alvra"), - ("129.129.243", "bernina"), - ("129.129.244", "cristallina"), - ("129.129.245", "diavolezza"), - ("129.129.246", "maloja"), - ("129.129.247", "furka") - ]) - def test_infer_beamline_from_ip(ip, expected_instrument): - """Test that the beamline is correctly inferred based on the IP address.""" - # Mock the socket functions to simulate an IP address - > with patch("socket.gethostname", return_value="testhost"), patch("socket.gethostbyname", return_value=ip): - E NameError: name 'patch' is not defined - - tests/test_utils_reprate.py:39: NameError - ``` - - **_*๐Ÿ“Œ Teardown phase*_** - - **duration:** - - ```python - 0.00018046610057353973 + 0.00022088410332798958 ``` **outcome:** @@ -1322,7 +1099,7 @@ **duration:** ```python - 0.00010744109749794006 + 0.00010321009904146194 ``` **outcome:** @@ -1336,7 +1113,7 @@ **duration:** ```python - 0.0002714497968554497 + 0.0003101262263953686 ``` **outcome:** @@ -1357,7 +1134,7 @@ ```python - path: tests/test_utils_reprate.py - lineno: 59 + lineno: 60 message: None - path: slic/utils/reprate.py lineno: 70 @@ -1372,10 +1149,10 @@ # Invalid instrument > monitor = RepRateMonitor(target="invalid_instrument") - tests/test_utils_reprate.py:59: + tests/test_utils_reprate.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7ff5a94e1310> + self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7f0017ea3eb0> target = 'invalid_instrument' def __init__(self, target=None): @@ -1401,7 +1178,7 @@ **duration:** ```python - 0.00014735013246536255 + 0.00018585287034511566 ``` **outcome:** @@ -1419,7 +1196,7 @@ **duration:** ```python - 0.00012102397158741951 + 0.00014176871627569199 ``` **outcome:** @@ -1433,7 +1210,7 @@ **duration:** ```python - 20.101015570107847 + 20.1252394169569 ``` **outcome:** @@ -1446,7 +1223,7 @@ ```python path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 71 + lineno: 72 message: AssertionError: Expected 20.0, but got None assert None == 20.0 + where None = Aramis Rep. Rate: None None.value @@ -1456,7 +1233,7 @@ ```python - path: tests/test_utils_reprate.py - lineno: 71 + lineno: 72 message: AssertionError ``` @@ -1473,7 +1250,7 @@ E assert None == 20.0 E + where None = Aramis Rep. Rate: None None.value - tests/test_utils_reprate.py:71: AssertionError + tests/test_utils_reprate.py:72: AssertionError ``` **_*๐Ÿ“Œ Teardown phase*_** @@ -1481,7 +1258,7 @@ **duration:** ```python - 0.0004445011727511883 + 0.0004710541106760502 ``` **outcome:** @@ -1499,7 +1276,7 @@ **duration:** ```python - 0.00023052701726555824 + 0.0002716849558055401 ``` **outcome:** @@ -1513,7 +1290,7 @@ **duration:** ```python - 20.00225164182484 + 20.00163291208446 ``` **outcome:** @@ -1526,7 +1303,7 @@ ```python path: /workspace/tligui_y/slic/tests/test_utils_reprate.py - lineno: 98 + lineno: 99 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' @@ -1538,7 +1315,7 @@ ```python - path: tests/test_utils_reprate.py - lineno: 98 + lineno: 99 message: AssertionError ``` @@ -1565,7 +1342,7 @@ E - Aramis Rep. Rate: 20.0 Hz E + Aramis Rep. Rate: None None - tests/test_utils_reprate.py:98: AssertionError + tests/test_utils_reprate.py:99: AssertionError ``` **_*๐Ÿ“Œ Teardown phase*_** @@ -1573,7 +1350,7 @@ **duration:** ```python - 0.0002245977520942688 + 0.0002155727706849575 ``` **outcome:** @@ -1599,7 +1376,7 @@ **duration:** ```python - 0.0004062107764184475 + 0.00041214795783162117 ``` **outcome:** @@ -1613,7 +1390,7 @@ **duration:** ```python - 0.00038382597267627716 + 0.0003732070326805115 ``` **outcome:** @@ -1634,7 +1411,7 @@ ```python - path: tests/test_utils_reprate.py - lineno: 107 + lineno: 108 message: None - path: slic/utils/reprate.py lineno: 70 @@ -1654,10 +1431,10 @@ # Test that an invalid target correctly results in None for PV name.""" > monitor = RepRateMonitor(invalid_target) - tests/test_utils_reprate.py:107: + tests/test_utils_reprate.py:108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7ff5c13221f0> + self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7efffbc10430> target = 'invalid_instrument' def __init__(self, target=None): @@ -1683,7 +1460,7 @@ **duration:** ```python - 0.0002018478699028492 + 0.00021838117390871048 ``` **outcome:** @@ -1708,7 +1485,7 @@ **duration:** ```python - 0.00022540567442774773 + 0.00022289296612143517 ``` **outcome:** @@ -1722,7 +1499,7 @@ **duration:** ```python - 0.0002444959245622158 + 0.00026517920196056366 ``` **outcome:** @@ -1743,7 +1520,7 @@ ```python - path: tests/test_utils_reprate.py - lineno: 107 + lineno: 108 message: None - path: slic/utils/reprate.py lineno: 70 @@ -1763,10 +1540,10 @@ # Test that an invalid target correctly results in None for PV name.""" > monitor = RepRateMonitor(invalid_target) - tests/test_utils_reprate.py:107: + tests/test_utils_reprate.py:108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7ff5c6ad6760> + self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7f00183c5670> target = 'non_existing_beamline' def __init__(self, target=None): @@ -1792,7 +1569,7 @@ **duration:** ```python - 0.00018493831157684326 + 0.00018644612282514572 ``` **outcome:** @@ -1810,7 +1587,7 @@ **duration:** ```python - 0.00012197298929095268 + 0.00012833811342716217 ``` **outcome:** @@ -1824,7 +1601,7 @@ **duration:** ```python - 0.00023975130170583725 + 0.0002484861761331558 ``` **outcome:** @@ -1845,7 +1622,7 @@ ```python - path: tests/test_utils_reprate.py - lineno: 114 + lineno: 115 message: None - path: slic/utils/reprate.py lineno: 70 @@ -1859,10 +1636,10 @@ # Test that if both instrument and beamline are None, the method works correctly.""" > monitor = RepRateMonitor(target=None) - tests/test_utils_reprate.py:114: + tests/test_utils_reprate.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7ff5c6f15ac0> + self = <[AttributeError("'RepRateMonitor' object has no attribute 'name'") raised in repr()] RepRateMonitor object at 0x7f00183c2cd0> target = None def __init__(self, target=None): @@ -1888,7 +1665,7 @@ **duration:** ```python - 0.00016592303290963173 + 0.00023819785565137863 ``` **outcome:** @@ -1931,79 +1708,79 @@ ```python - nodeid: tests/test_utils_reprate.py::test_get_beamline[alvra-aramis] type: Function - lineno: 6 + lineno: 7 - nodeid: tests/test_utils_reprate.py::test_get_beamline[bernina-aramis] type: Function - lineno: 6 + lineno: 7 - nodeid: tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis] type: Function - lineno: 6 + lineno: 7 - nodeid: tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos] type: Function - lineno: 6 + lineno: 7 - nodeid: tests/test_utils_reprate.py::test_get_beamline[maloja-athos] type: Function - lineno: 6 + lineno: 7 - nodeid: tests/test_utils_reprate.py::test_get_beamline[furka-athos] type: Function - lineno: 6 + lineno: 7 - nodeid: tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline type: Function - lineno: 19 + lineno: 20 - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra] type: Function - lineno: 27 + lineno: 28 - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina] type: Function - lineno: 27 + lineno: 28 - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina] type: Function - lineno: 27 + lineno: 28 - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza] type: Function - lineno: 27 + lineno: 28 - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja] type: Function - lineno: 27 + lineno: 28 - nodeid: tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka] type: Function - lineno: 27 + lineno: 28 - 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: 42 + lineno: 43 - 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: 42 + lineno: 43 - 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: 42 + lineno: 43 - 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: 42 + lineno: 43 - 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: 42 + lineno: 43 - 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: 42 + lineno: 43 - nodeid: tests/test_utils_reprate.py::test_invalid_instrument_or_beamline type: Function - lineno: 55 + lineno: 56 - nodeid: tests/test_utils_reprate.py::test_monitor_value_update type: Function - lineno: 65 + lineno: 66 - nodeid: tests/test_utils_reprate.py::test_repr_method_with_initial_values type: Function - lineno: 84 + lineno: 85 - nodeid: tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument] type: Function - lineno: 100 + lineno: 101 - nodeid: tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline] type: Function - lineno: 100 + lineno: 101 - nodeid: tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline type: Function - lineno: 111 + lineno: 112 ```
diff --git a/markdown/coverage-summary.md b/markdown/coverage-summary.md index 1ffbd483f..bd3ca8171 100644 --- a/markdown/coverage-summary.md +++ b/markdown/coverage-summary.md @@ -13080,3 +13080,228 @@ | slic/utils/utils.py | 17 | 8 | 53% | | slic/utils/xrange.py | 33 | 30 | 9% | | **TOTAL** | **9520** | **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 | 1 | 86% | +| slic/utils/printing.py | 77 | 61 | 21% | +| slic/utils/pv.py | 30 | 20 | 33% | +| slic/utils/pvpreload.py | 50 | 14 | 72% | +| 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 | 46 | 4 | 91% | +| 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 | 49 | 0% | +| 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** | **9520** | **6954** | **27%** | diff --git a/markdown/pytest-report.json b/markdown/pytest-report.json index 00e858ed0..e32309b8b 100644 --- a/markdown/pytest-report.json +++ b/markdown/pytest-report.json @@ -1 +1 @@ -{"created": 1755010173.8117924, "duration": 44.90700602531433, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 12, "failed": 13, "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": 6}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", "type": "Function", "lineno": 6}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", "type": "Function", "lineno": 6}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", "type": "Function", "lineno": 6}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", "type": "Function", "lineno": 6}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", "type": "Function", "lineno": 6}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", "type": "Function", "lineno": 19}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", "type": "Function", "lineno": 27}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", "type": "Function", "lineno": 27}, {"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": 42}, {"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": 42}, {"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": 42}, {"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": 42}, {"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": 42}, {"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": 42}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", "type": "Function", "lineno": 55}, {"nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", "type": "Function", "lineno": 65}, {"nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", "type": "Function", "lineno": 84}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", "type": "Function", "lineno": 100}, {"nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", "type": "Function", "lineno": 111}]}], "tests": [{"nodeid": "tests/test_utils_reprate.py::test_get_beamline[alvra-aramis]", "lineno": 6, "outcome": "passed", "keywords": ["test_get_beamline[alvra-aramis]", "parametrize", "pytestmark", "alvra-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0005506710149347782, "outcome": "passed"}, "call": {"duration": 0.0001874193549156189, "outcome": "passed"}, "teardown": {"duration": 0.00023650797083973885, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", "lineno": 6, "outcome": "passed", "keywords": ["test_get_beamline[bernina-aramis]", "parametrize", "pytestmark", "bernina-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002413308247923851, "outcome": "passed"}, "call": {"duration": 0.0001497962512075901, "outcome": "passed"}, "teardown": {"duration": 0.00013364525511860847, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", "lineno": 6, "outcome": "passed", "keywords": ["test_get_beamline[cristallina-aramis]", "parametrize", "pytestmark", "cristallina-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002227150835096836, "outcome": "passed"}, "call": {"duration": 0.0001298137940466404, "outcome": "passed"}, "teardown": {"duration": 0.00012382213026285172, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", "lineno": 6, "outcome": "passed", "keywords": ["test_get_beamline[diavolezza-athos]", "parametrize", "pytestmark", "diavolezza-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002170111984014511, "outcome": "passed"}, "call": {"duration": 0.00013055000454187393, "outcome": "passed"}, "teardown": {"duration": 0.00012308312579989433, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", "lineno": 6, "outcome": "passed", "keywords": ["test_get_beamline[maloja-athos]", "parametrize", "pytestmark", "maloja-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00020765699446201324, "outcome": "passed"}, "call": {"duration": 0.00013535097241401672, "outcome": "passed"}, "teardown": {"duration": 0.00012227706611156464, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", "lineno": 6, "outcome": "passed", "keywords": ["test_get_beamline[furka-athos]", "parametrize", "pytestmark", "furka-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00021307123824954033, "outcome": "passed"}, "call": {"duration": 0.00013368623331189156, "outcome": "passed"}, "teardown": {"duration": 0.00012292899191379547, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", "lineno": 19, "outcome": "failed", "keywords": ["test_get_pvname_reprate_for_inferred_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010397611185908318, "outcome": "passed"}, "call": {"duration": 0.00015570037066936493, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 23, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 23, "message": "NameError"}], "longrepr": "def test_get_pvname_reprate_for_inferred_beamline():\n \"\"\"Test the PV name retrieval when using inferred beamline based on IP address.\"\"\"\n # Mock the socket to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=\"129.129.242\"):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:23: NameError"}, "teardown": {"duration": 0.00022893818095326424, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", "lineno": 27, "outcome": "failed", "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.0003011520020663738, "outcome": "passed"}, "call": {"duration": 0.00017404695972800255, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 39, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 39, "message": "NameError"}], "longrepr": "ip = '129.129.242', expected_instrument = 'alvra'\n\n @pytest.mark.parametrize(\"ip,expected_instrument\", [\n (\"129.129.242\", \"alvra\"),\n (\"129.129.243\", \"bernina\"),\n (\"129.129.244\", \"cristallina\"),\n (\"129.129.245\", \"diavolezza\"),\n (\"129.129.246\", \"maloja\"),\n (\"129.129.247\", \"furka\")\n ])\n def test_infer_beamline_from_ip(ip, expected_instrument):\n \"\"\"Test that the beamline is correctly inferred based on the IP address.\"\"\"\n # Mock the socket functions to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=ip):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:39: NameError"}, "teardown": {"duration": 0.00018887687474489212, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", "lineno": 27, "outcome": "failed", "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.00024019507691264153, "outcome": "passed"}, "call": {"duration": 0.0001530633307993412, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 39, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 39, "message": "NameError"}], "longrepr": "ip = '129.129.243', expected_instrument = 'bernina'\n\n @pytest.mark.parametrize(\"ip,expected_instrument\", [\n (\"129.129.242\", \"alvra\"),\n (\"129.129.243\", \"bernina\"),\n (\"129.129.244\", \"cristallina\"),\n (\"129.129.245\", \"diavolezza\"),\n (\"129.129.246\", \"maloja\"),\n (\"129.129.247\", \"furka\")\n ])\n def test_infer_beamline_from_ip(ip, expected_instrument):\n \"\"\"Test that the beamline is correctly inferred based on the IP address.\"\"\"\n # Mock the socket functions to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=ip):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:39: NameError"}, "teardown": {"duration": 0.0001726481132209301, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", "lineno": 27, "outcome": "failed", "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.0002397908829152584, "outcome": "passed"}, "call": {"duration": 0.00014788005501031876, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 39, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 39, "message": "NameError"}], "longrepr": "ip = '129.129.244', expected_instrument = 'cristallina'\n\n @pytest.mark.parametrize(\"ip,expected_instrument\", [\n (\"129.129.242\", \"alvra\"),\n (\"129.129.243\", \"bernina\"),\n (\"129.129.244\", \"cristallina\"),\n (\"129.129.245\", \"diavolezza\"),\n (\"129.129.246\", \"maloja\"),\n (\"129.129.247\", \"furka\")\n ])\n def test_infer_beamline_from_ip(ip, expected_instrument):\n \"\"\"Test that the beamline is correctly inferred based on the IP address.\"\"\"\n # Mock the socket functions to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=ip):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:39: NameError"}, "teardown": {"duration": 0.0001795310527086258, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", "lineno": 27, "outcome": "failed", "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.0002344772219657898, "outcome": "passed"}, "call": {"duration": 0.00014866888523101807, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 39, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 39, "message": "NameError"}], "longrepr": "ip = '129.129.245', expected_instrument = 'diavolezza'\n\n @pytest.mark.parametrize(\"ip,expected_instrument\", [\n (\"129.129.242\", \"alvra\"),\n (\"129.129.243\", \"bernina\"),\n (\"129.129.244\", \"cristallina\"),\n (\"129.129.245\", \"diavolezza\"),\n (\"129.129.246\", \"maloja\"),\n (\"129.129.247\", \"furka\")\n ])\n def test_infer_beamline_from_ip(ip, expected_instrument):\n \"\"\"Test that the beamline is correctly inferred based on the IP address.\"\"\"\n # Mock the socket functions to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=ip):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:39: NameError"}, "teardown": {"duration": 0.0001655416563153267, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", "lineno": 27, "outcome": "failed", "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.00022963667288422585, "outcome": "passed"}, "call": {"duration": 0.00014902325347065926, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 39, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 39, "message": "NameError"}], "longrepr": "ip = '129.129.246', expected_instrument = 'maloja'\n\n @pytest.mark.parametrize(\"ip,expected_instrument\", [\n (\"129.129.242\", \"alvra\"),\n (\"129.129.243\", \"bernina\"),\n (\"129.129.244\", \"cristallina\"),\n (\"129.129.245\", \"diavolezza\"),\n (\"129.129.246\", \"maloja\"),\n (\"129.129.247\", \"furka\")\n ])\n def test_infer_beamline_from_ip(ip, expected_instrument):\n \"\"\"Test that the beamline is correctly inferred based on the IP address.\"\"\"\n # Mock the socket functions to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=ip):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:39: NameError"}, "teardown": {"duration": 0.00017941417172551155, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", "lineno": 27, "outcome": "failed", "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.0002387487329542637, "outcome": "passed"}, "call": {"duration": 0.00015581119805574417, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 39, "message": "NameError: name 'patch' is not defined"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 39, "message": "NameError"}], "longrepr": "ip = '129.129.247', expected_instrument = 'furka'\n\n @pytest.mark.parametrize(\"ip,expected_instrument\", [\n (\"129.129.242\", \"alvra\"),\n (\"129.129.243\", \"bernina\"),\n (\"129.129.244\", \"cristallina\"),\n (\"129.129.245\", \"diavolezza\"),\n (\"129.129.246\", \"maloja\"),\n (\"129.129.247\", \"furka\")\n ])\n def test_infer_beamline_from_ip(ip, expected_instrument):\n \"\"\"Test that the beamline is correctly inferred based on the IP address.\"\"\"\n # Mock the socket functions to simulate an IP address\n> with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=ip):\nE NameError: name 'patch' is not defined\n\ntests/test_utils_reprate.py:39: NameError"}, "teardown": {"duration": 0.00018046610057353973, "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": 42, "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.00027018412947654724, "outcome": "passed"}, "call": {"duration": 0.00014001596719026566, "outcome": "passed"}, "teardown": {"duration": 0.00013837963342666626, "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": 42, "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.00023867981508374214, "outcome": "passed"}, "call": {"duration": 0.00013012299314141273, "outcome": "passed"}, "teardown": {"duration": 0.00013347202911973, "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": 42, "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.0002556317485868931, "outcome": "passed"}, "call": {"duration": 0.00014369795098900795, "outcome": "passed"}, "teardown": {"duration": 0.00013615703210234642, "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": 42, "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.00023730425164103508, "outcome": "passed"}, "call": {"duration": 0.00013760989531874657, "outcome": "passed"}, "teardown": {"duration": 0.0001318110153079033, "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": 42, "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.00023721205070614815, "outcome": "passed"}, "call": {"duration": 0.00014213798567652702, "outcome": "passed"}, "teardown": {"duration": 0.0001353668048977852, "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": 42, "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.0002386951819062233, "outcome": "passed"}, "call": {"duration": 0.00013563688844442368, "outcome": "passed"}, "teardown": {"duration": 0.00014317501336336136, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", "lineno": 55, "outcome": "failed", "keywords": ["test_invalid_instrument_or_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010744109749794006, "outcome": "passed"}, "call": {"duration": 0.0002714497968554497, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 59, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "longrepr": "def test_invalid_instrument_or_beamline():\n \"\"\"Test that None is returned when an invalid instrument or beamline is provided.\"\"\"\n # Invalid instrument\n> monitor = RepRateMonitor(target=\"invalid_instrument\")\n\ntests/test_utils_reprate.py:59: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7ff5a94e1310>\ntarget = 'invalid_instrument'\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00014735013246536255, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", "lineno": 65, "outcome": "failed", "keywords": ["test_monitor_value_update", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00012102397158741951, "outcome": "passed"}, "call": {"duration": 20.101015570107847, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 71, "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": 71, "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 \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:71: AssertionError"}, "teardown": {"duration": 0.0004445011727511883, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", "lineno": 84, "outcome": "failed", "keywords": ["test_repr_method_with_initial_values", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00023052701726555824, "outcome": "passed"}, "call": {"duration": 20.00225164182484, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 98, "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": 98, "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:98: AssertionError"}, "teardown": {"duration": 0.0002245977520942688, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", "lineno": 100, "outcome": "failed", "keywords": ["test_invalid_target_handling[invalid_instrument]", "parametrize", "pytestmark", "invalid_instrument", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0004062107764184475, "outcome": "passed"}, "call": {"duration": 0.00038382597267627716, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 107, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "longrepr": "invalid_target = 'invalid_instrument'\n\n @pytest.mark.parametrize(\"invalid_target\", [\n \"invalid_instrument\", # Non-existent instrument\n \"non_existing_beamline\" # Non-existent beamline\n ])\n def test_invalid_target_handling(invalid_target):\n # Test that an invalid target correctly results in None for PV name.\"\"\"\n> monitor = RepRateMonitor(invalid_target)\n\ntests/test_utils_reprate.py:107: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7ff5c13221f0>\ntarget = 'invalid_instrument'\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.0002018478699028492, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", "lineno": 100, "outcome": "failed", "keywords": ["test_invalid_target_handling[non_existing_beamline]", "parametrize", "pytestmark", "non_existing_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00022540567442774773, "outcome": "passed"}, "call": {"duration": 0.0002444959245622158, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 107, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "longrepr": "invalid_target = 'non_existing_beamline'\n\n @pytest.mark.parametrize(\"invalid_target\", [\n \"invalid_instrument\", # Non-existent instrument\n \"non_existing_beamline\" # Non-existent beamline\n ])\n def test_invalid_target_handling(invalid_target):\n # Test that an invalid target correctly results in None for PV name.\"\"\"\n> monitor = RepRateMonitor(invalid_target)\n\ntests/test_utils_reprate.py:107: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7ff5c6ad6760>\ntarget = 'non_existing_beamline'\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00018493831157684326, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", "lineno": 111, "outcome": "failed", "keywords": ["test_retrieve_pvname_for_none_instrument_and_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00012197298929095268, "outcome": "passed"}, "call": {"duration": 0.00023975130170583725, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 114, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "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\ntests/test_utils_reprate.py:114: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7ff5c6f15ac0>\ntarget = None\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00016592303290963173, "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": 1755010662.5070915, "duration": 45.25055265426636, "exitcode": 1, "root": "/workspace/tligui_y/slic", "environment": {}, "summary": {"passed": 18, "failed": 7, "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": 7}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", "type": "Function", "lineno": 7}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", "type": "Function", "lineno": 20}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", "type": "Function", "lineno": 28}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", "type": "Function", "lineno": 28}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", "type": "Function", "lineno": 28}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", "type": "Function", "lineno": 28}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", "type": "Function", "lineno": 28}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", "type": "Function", "lineno": 28}, {"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": 43}, {"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": 43}, {"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": 43}, {"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": 43}, {"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": 43}, {"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": 43}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", "type": "Function", "lineno": 56}, {"nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", "type": "Function", "lineno": 66}, {"nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", "type": "Function", "lineno": 85}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", "type": "Function", "lineno": 101}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", "type": "Function", "lineno": 101}, {"nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", "type": "Function", "lineno": 112}]}], "tests": [{"nodeid": "tests/test_utils_reprate.py::test_get_beamline[alvra-aramis]", "lineno": 7, "outcome": "passed", "keywords": ["test_get_beamline[alvra-aramis]", "parametrize", "pytestmark", "alvra-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0006991219706833363, "outcome": "passed"}, "call": {"duration": 0.00017074402421712875, "outcome": "passed"}, "teardown": {"duration": 0.0002378537319600582, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[bernina-aramis]", "lineno": 7, "outcome": "passed", "keywords": ["test_get_beamline[bernina-aramis]", "parametrize", "pytestmark", "bernina-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00022435327991843224, "outcome": "passed"}, "call": {"duration": 0.00014078104868531227, "outcome": "passed"}, "teardown": {"duration": 0.0001293560490012169, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[cristallina-aramis]", "lineno": 7, "outcome": "passed", "keywords": ["test_get_beamline[cristallina-aramis]", "parametrize", "pytestmark", "cristallina-aramis", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00020011886954307556, "outcome": "passed"}, "call": {"duration": 0.00013721222057938576, "outcome": "passed"}, "teardown": {"duration": 0.00012502819299697876, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[diavolezza-athos]", "lineno": 7, "outcome": "passed", "keywords": ["test_get_beamline[diavolezza-athos]", "parametrize", "pytestmark", "diavolezza-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002075466327369213, "outcome": "passed"}, "call": {"duration": 0.00013267016038298607, "outcome": "passed"}, "teardown": {"duration": 0.00012606242671608925, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[maloja-athos]", "lineno": 7, "outcome": "passed", "keywords": ["test_get_beamline[maloja-athos]", "parametrize", "pytestmark", "maloja-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00019579939544200897, "outcome": "passed"}, "call": {"duration": 0.00013789022341370583, "outcome": "passed"}, "teardown": {"duration": 0.00012844009324908257, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_beamline[furka-athos]", "lineno": 7, "outcome": "passed", "keywords": ["test_get_beamline[furka-athos]", "parametrize", "pytestmark", "furka-athos", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00020122993737459183, "outcome": "passed"}, "call": {"duration": 0.000144170131534338, "outcome": "passed"}, "teardown": {"duration": 0.00012356415390968323, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_get_pvname_reprate_for_inferred_beamline", "lineno": 20, "outcome": "failed", "keywords": ["test_get_pvname_reprate_for_inferred_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010231323540210724, "outcome": "passed"}, "call": {"duration": 0.001471501775085926, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 27, "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": 27, "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 # Mock the socket to simulate an IP address\n with patch(\"socket.gethostname\", return_value=\"testhost\"), patch(\"socket.gethostbyname\", return_value=\"129.129.242\"):\n beamline = infer_beamline()\n pvname = get_pvname_reprate(instrument=None, beamline=beamline)\n> assert pvname == BEAMLINE_TO_PVNAME_REPRATE[\"aramis\"], f\"Expected 'SIN-TIMAST-TMA:Bunch-1-Exp-Freq-RB', 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:27: AssertionError"}, "teardown": {"duration": 0.00022088410332798958, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.242-alvra]", "lineno": 28, "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.00029164645820856094, "outcome": "passed"}, "call": {"duration": 0.0009256270714104176, "outcome": "passed"}, "teardown": {"duration": 0.0001930580474436283, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.243-bernina]", "lineno": 28, "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.00023877806961536407, "outcome": "passed"}, "call": {"duration": 0.0009349137544631958, "outcome": "passed"}, "teardown": {"duration": 0.0001784786581993103, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.244-cristallina]", "lineno": 28, "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.0002294713631272316, "outcome": "passed"}, "call": {"duration": 0.0008003110997378826, "outcome": "passed"}, "teardown": {"duration": 0.00015252316370606422, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.245-diavolezza]", "lineno": 28, "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.00022909976541996002, "outcome": "passed"}, "call": {"duration": 0.0008713477291166782, "outcome": "passed"}, "teardown": {"duration": 0.00015792623162269592, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.246-maloja]", "lineno": 28, "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.0002543278969824314, "outcome": "passed"}, "call": {"duration": 0.0008785240352153778, "outcome": "passed"}, "teardown": {"duration": 0.00023095495998859406, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_infer_beamline_from_ip[129.129.247-furka]", "lineno": 28, "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.00024754414334893227, "outcome": "passed"}, "call": {"duration": 0.0009344150312244892, "outcome": "passed"}, "teardown": {"duration": 0.00024783099070191383, "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": 43, "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.0002780999056994915, "outcome": "passed"}, "call": {"duration": 0.00014235079288482666, "outcome": "passed"}, "teardown": {"duration": 0.0001572808250784874, "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": 43, "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.00024537229910492897, "outcome": "passed"}, "call": {"duration": 0.00014458689838647842, "outcome": "passed"}, "teardown": {"duration": 0.00015116389840841293, "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": 43, "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.0002516261301934719, "outcome": "passed"}, "call": {"duration": 0.00017159478738904, "outcome": "passed"}, "teardown": {"duration": 0.0001514921896159649, "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": 43, "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.00043696071952581406, "outcome": "passed"}, "call": {"duration": 0.00023657642304897308, "outcome": "passed"}, "teardown": {"duration": 0.0002515590749680996, "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": 43, "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.00026938412338495255, "outcome": "passed"}, "call": {"duration": 0.000147250946611166, "outcome": "passed"}, "teardown": {"duration": 0.00014251144602894783, "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": 43, "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.0002530999481678009, "outcome": "passed"}, "call": {"duration": 0.00014344556257128716, "outcome": "passed"}, "teardown": {"duration": 0.00013825483620166779, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_instrument_or_beamline", "lineno": 56, "outcome": "failed", "keywords": ["test_invalid_instrument_or_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00010321009904146194, "outcome": "passed"}, "call": {"duration": 0.0003101262263953686, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 60, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "longrepr": "def test_invalid_instrument_or_beamline():\n \"\"\"Test that None is returned when an invalid instrument or beamline is provided.\"\"\"\n # Invalid instrument\n> monitor = RepRateMonitor(target=\"invalid_instrument\")\n\ntests/test_utils_reprate.py:60: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7f0017ea3eb0>\ntarget = 'invalid_instrument'\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00018585287034511566, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_monitor_value_update", "lineno": 66, "outcome": "failed", "keywords": ["test_monitor_value_update", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00014176871627569199, "outcome": "passed"}, "call": {"duration": 20.1252394169569, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 72, "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": 72, "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 \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:72: AssertionError"}, "teardown": {"duration": 0.0004710541106760502, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_repr_method_with_initial_values", "lineno": 85, "outcome": "failed", "keywords": ["test_repr_method_with_initial_values", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.0002716849558055401, "outcome": "passed"}, "call": {"duration": 20.00163291208446, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/tests/test_utils_reprate.py", "lineno": 99, "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": 99, "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:99: AssertionError"}, "teardown": {"duration": 0.0002155727706849575, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[invalid_instrument]", "lineno": 101, "outcome": "failed", "keywords": ["test_invalid_target_handling[invalid_instrument]", "parametrize", "pytestmark", "invalid_instrument", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00041214795783162117, "outcome": "passed"}, "call": {"duration": 0.0003732070326805115, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 108, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "longrepr": "invalid_target = 'invalid_instrument'\n\n @pytest.mark.parametrize(\"invalid_target\", [\n \"invalid_instrument\", # Non-existent instrument\n \"non_existing_beamline\" # Non-existent beamline\n ])\n def test_invalid_target_handling(invalid_target):\n # Test that an invalid target correctly results in None for PV name.\"\"\"\n> monitor = RepRateMonitor(invalid_target)\n\ntests/test_utils_reprate.py:108: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7efffbc10430>\ntarget = 'invalid_instrument'\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00021838117390871048, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_invalid_target_handling[non_existing_beamline]", "lineno": 101, "outcome": "failed", "keywords": ["test_invalid_target_handling[non_existing_beamline]", "parametrize", "pytestmark", "non_existing_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00022289296612143517, "outcome": "passed"}, "call": {"duration": 0.00026517920196056366, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 108, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "longrepr": "invalid_target = 'non_existing_beamline'\n\n @pytest.mark.parametrize(\"invalid_target\", [\n \"invalid_instrument\", # Non-existent instrument\n \"non_existing_beamline\" # Non-existent beamline\n ])\n def test_invalid_target_handling(invalid_target):\n # Test that an invalid target correctly results in None for PV name.\"\"\"\n> monitor = RepRateMonitor(invalid_target)\n\ntests/test_utils_reprate.py:108: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7f00183c5670>\ntarget = 'non_existing_beamline'\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00018644612282514572, "outcome": "passed"}}, {"nodeid": "tests/test_utils_reprate.py::test_retrieve_pvname_for_none_instrument_and_beamline", "lineno": 112, "outcome": "failed", "keywords": ["test_retrieve_pvname_for_none_instrument_and_beamline", "test_utils_reprate.py", "tests", "slic", ""], "setup": {"duration": 0.00012833811342716217, "outcome": "passed"}, "call": {"duration": 0.0002484861761331558, "outcome": "failed", "crash": {"path": "/workspace/tligui_y/slic/slic/utils/reprate.py", "lineno": 70, "message": "AttributeError: 'NoneType' object has no attribute 'capitalize'"}, "traceback": [{"path": "tests/test_utils_reprate.py", "lineno": 115, "message": ""}, {"path": "slic/utils/reprate.py", "lineno": 70, "message": "AttributeError"}], "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\ntests/test_utils_reprate.py:115: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <[AttributeError(\"'RepRateMonitor' object has no attribute 'name'\") raised in repr()] RepRateMonitor object at 0x7f00183c2cd0>\ntarget = None\n\n def __init__(self, target=None):\n if target is not None:\n target = target.lower()\n \n instrument = target if target in INSTRUMENTS else None\n beamline = target if target in BEAMLINES else None\n \n if beamline is None:\n beamline = get_beamline(instrument)\n \n pvname = get_pvname_reprate(instrument, beamline)\n \n> beamline = beamline.capitalize()\nE AttributeError: 'NoneType' object has no attribute 'capitalize'\n\nslic/utils/reprate.py:70: AttributeError"}, "teardown": {"duration": 0.00023819785565137863, "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