1
1
import unittest
2
- from io import StringIO
3
2
4
- from utilities .utilities import (
5
- g ,
6
- load_config_if_not_already_loaded ,
7
- set_genie_python_raises_exceptions ,
8
- )
9
- from ibex_bluesky_core .run_engine import get_run_engine
10
- from bluesky .run_engine import RunEngine
11
3
import bluesky .plan_stubs as bps
12
4
import bluesky .plans as bp
13
- from ophyd_async .plan_stubs import ensure_connected
14
- from ibex_bluesky_core .devices .block import block_r , block_rw , block_rw_rbv
15
- from bluesky .preprocessors import subs_decorator
16
5
from bluesky .callbacks import LiveTable
17
- from ibex_bluesky_core .callbacks .plotting import LivePlot
6
+ from bluesky .preprocessors import subs_decorator
7
+ from bluesky .run_engine import RunEngine , RunEngineResult
8
+ from genie_python import genie as g
18
9
from ibex_bluesky_core .devices import get_pv_prefix
10
+ from ibex_bluesky_core .devices .block import block_r , block_rw_rbv
19
11
from ibex_bluesky_core .devices .simpledae import SimpleDae
20
- from ibex_bluesky_core .devices .simpledae .controllers import PeriodPerPointController , RunPerPointController
12
+ from ibex_bluesky_core .devices .simpledae .controllers import (
13
+ PeriodPerPointController ,
14
+ RunPerPointController ,
15
+ )
16
+ from ibex_bluesky_core .devices .simpledae .reducers import (
17
+ GoodFramesNormalizer ,
18
+ PeriodGoodFramesNormalizer ,
19
+ )
21
20
from ibex_bluesky_core .devices .simpledae .waiters import GoodFramesWaiter , PeriodGoodFramesWaiter
22
- from ibex_bluesky_core .devices .simpledae .reducers import GoodFramesNormalizer , PeriodGoodFramesNormalizer
21
+ from ibex_bluesky_core .run_engine import get_run_engine
22
+ from ophyd_async .plan_stubs import ensure_connected
23
+
24
+ from utilities .utilities import (
25
+ load_config_if_not_already_loaded ,
26
+ set_genie_python_raises_exceptions ,
27
+ )
23
28
24
29
RE : RunEngine = get_run_engine ()
25
30
26
- P3_INIT_VALUE = 123.456
27
- P5_INIT_VALUE = 987.654321
31
+ P3_INIT_VALUE : float = 123.456
32
+ P5_INIT_VALUE : float = 987.654321
28
33
29
34
30
35
class TestBluesky (unittest .TestCase ):
31
- def setUp (self ):
36
+ def setUp (self ) -> None :
32
37
g .set_instrument (None )
33
- # load_config_if_not_already_loaded("bluesky_sys_test")
38
+ load_config_if_not_already_loaded ("bluesky_sys_test" )
34
39
set_genie_python_raises_exceptions (True )
35
40
g .cset ("p3" , P3_INIT_VALUE )
36
41
g .cset ("p5" , P5_INIT_VALUE )
@@ -69,17 +74,18 @@ def _period_per_point_dae(self) -> SimpleDae:
69
74
)
70
75
return dae
71
76
72
- def test_rd_block (self ):
77
+ def test_rd_block (self ) -> None :
73
78
def _plan ():
74
79
p3 = block_r (float , "p3" )
75
80
yield from ensure_connected (p3 )
76
81
return (yield from bps .rd (p3 ))
77
82
78
83
result = RE (_plan ())
84
+ assert isinstance (result , RunEngineResult )
79
85
80
86
self .assertAlmostEqual (result .plan_result , P3_INIT_VALUE , places = 5 )
81
87
82
- def test_abs_scan_two_blocks (self ):
88
+ def test_abs_scan_two_blocks (self ) -> None :
83
89
def _plan ():
84
90
p3 = block_r (float , "p3" )
85
91
p5 = block_rw_rbv (float , "p5" )
@@ -91,7 +97,7 @@ def _plan():
91
97
# At end of scan, p5 should be left at last value by default.
92
98
self .assertAlmostEqual (g .cget ("p5" )["value" ], 10 )
93
99
94
- def test_rel_scan_two_blocks (self ):
100
+ def test_rel_scan_two_blocks (self ) -> None :
95
101
def _plan ():
96
102
p3 = block_r (float , "p3" )
97
103
p5 = block_rw_rbv (float , "p5" )
@@ -103,12 +109,14 @@ def _plan():
103
109
# After a rel_scan, the movable is moved back to original value
104
110
self .assertAlmostEqual (g .cget ("p5" )["value" ], P5_INIT_VALUE )
105
111
106
- def test_scan_with_livetable_callback (self ):
112
+ def test_scan_with_livetable_callback (self ) -> None :
107
113
livetable_lines = []
108
114
109
- @subs_decorator ([
110
- LiveTable (["p3" , "p5" ], out = livetable_lines .append ),
111
- ])
115
+ @subs_decorator (
116
+ [
117
+ LiveTable (["p3" , "p5" ], out = livetable_lines .append ),
118
+ ]
119
+ )
112
120
def _plan ():
113
121
p3 = block_r (float , "p3" )
114
122
p5 = block_rw_rbv (float , "p5" )
@@ -119,11 +127,11 @@ def _plan():
119
127
120
128
# Tricky as livetable contains timestamps etc, but check that the table
121
129
# describes the first and last point we were trying to measure, with appropriate
122
- # precisions.
130
+ # precisions pulled from the PVs .
123
131
self .assertTrue (any ("| 123.456 | -10.00000 |" in line for line in livetable_lines ))
124
132
self .assertTrue (any ("| 123.456 | 10.00000 |" in line for line in livetable_lines ))
125
133
126
- def test_count_simple_dae (self ):
134
+ def test_count_simple_dae (self ) -> None :
127
135
start_run_number = int (g .get_runnumber ())
128
136
129
137
def _plan ():
@@ -137,7 +145,7 @@ def _plan():
137
145
138
146
self .assertEqual (start_run_number + 1 , end_run_number )
139
147
140
- def test_scan_simple_dae_in_run_per_point_mode (self ):
148
+ def test_scan_simple_dae_in_run_per_point_mode (self ) -> None :
141
149
npoints = 3
142
150
start_run_number = int (g .get_runnumber ())
143
151
@@ -154,7 +162,7 @@ def _plan():
154
162
# Assert we've done npoints runs
155
163
self .assertEqual (start_run_number + npoints , end_run_number )
156
164
157
- def test_scan_simple_dae_in_period_per_point_mode (self ):
165
+ def test_scan_simple_dae_in_period_per_point_mode (self ) -> None :
158
166
npoints = 3
159
167
start_run_number = int (g .get_runnumber ())
160
168
0 commit comments