@@ -22,7 +22,7 @@ def get_ax():
22
22
return ax
23
23
24
24
25
- def get_event ( ax , button = 1 , xdata = 0 , ydata = 0 , key = None , step = 1 ):
25
+ def do_event ( tool , etype , button = 1 , xdata = 0 , ydata = 0 , key = None , step = 1 ):
26
26
"""
27
27
*name*
28
28
the event name
@@ -61,6 +61,7 @@ def get_event(ax, button=1, xdata=0, ydata=0, key=None, step=1):
61
61
"""
62
62
event = mock .Mock ()
63
63
event .button = button
64
+ ax = tool .ax
64
65
event .x , event .y = ax .transData .transform ([(xdata , ydata ),
65
66
(xdata , ydata )])[00 ]
66
67
event .xdata , event .ydata = xdata , ydata
@@ -70,7 +71,9 @@ def get_event(ax, button=1, xdata=0, ydata=0, key=None, step=1):
70
71
event .step = step
71
72
event .guiEvent = None
72
73
event .name = 'Custom'
73
- return event
74
+
75
+ func = getattr (tool , '_%s' % etype )
76
+ func (event )
74
77
75
78
76
79
@cleanup
@@ -85,15 +88,11 @@ def onselect(epress, erelease):
85
88
assert erelease .ydata == 199
86
89
87
90
tool = widgets .RectangleSelector (ax , onselect , ** kwargs )
88
- event = get_event (ax , xdata = 100 , ydata = 100 , button = 1 )
89
- tool .press (event )
90
-
91
- event = get_event (ax , xdata = 199 , ydata = 199 , button = 1 )
92
- tool .onmove (event )
91
+ do_event (tool , 'press' , xdata = 100 , ydata = 100 , button = 1 )
92
+ do_event (tool , 'onmove' , xdata = 199 , ydata = 199 , button = 1 )
93
93
94
94
# purposely drag outside of axis for release
95
- event = get_event (ax , xdata = 250 , ydata = 250 , button = 1 )
96
- tool .release (event )
95
+ do_event (tool , 'release' , xdata = 250 , ydata = 250 , button = 1 )
97
96
98
97
assert_allclose (tool .geometry ,
99
98
[[100. , 100 , 199 , 199 , 100 ], [100 , 199 , 199 , 100 , 100 ]],
@@ -123,42 +122,43 @@ def onselect(epress, erelease):
123
122
tool .extents = (100 , 150 , 100 , 150 )
124
123
125
124
# drag the rectangle
126
- event = get_event ( ax , xdata = 10 , ydata = 10 , button = 1 ,
125
+ do_event ( tool , 'press' , xdata = 10 , ydata = 10 , button = 1 ,
127
126
key = 'alt' )
128
- tool .press (event )
129
- event = get_event (ax , xdata = 30 , ydata = 30 , button = 1 )
130
- tool .onmove (event )
131
- tool .release (event )
127
+ do_event (tool , 'onmove' , xdata = 30 , ydata = 30 , button = 1 )
128
+ do_event (tool , 'release' , xdata = 30 , ydata = 30 , button = 1 )
132
129
assert tool .extents == (120 , 170 , 120 , 170 )
133
130
134
131
# create from center
135
- event = get_event (ax , xdata = 100 , ydata = 100 , button = 1 ,
132
+ do_event (tool , 'on_key_press' , xdata = 100 , ydata = 100 , button = 1 ,
133
+ key = 'control' )
134
+ do_event (tool , 'press' , xdata = 100 , ydata = 100 , button = 1 )
135
+ do_event (tool , 'onmove' , xdata = 125 , ydata = 125 , button = 1 )
136
+ do_event (tool , 'release' , xdata = 125 , ydata = 125 , button = 1 )
137
+ do_event (tool , 'on_key_release' , xdata = 100 , ydata = 100 , button = 1 ,
136
138
key = 'control' )
137
- tool .press (event )
138
- event = get_event (ax , xdata = 125 , ydata = 125 , button = 1 )
139
- tool .onmove (event )
140
- tool .release (event )
141
- assert tool .extents == (75 , 125 , 75 , 125 )
139
+ assert tool .extents == (75 , 125 , 75 , 125 ), tool .extents
142
140
143
141
# create a square
144
- event = get_event (ax , xdata = 10 , ydata = 10 , button = 1 ,
142
+ do_event (tool , 'on_key_press' , xdata = 10 , ydata = 10 , button = 1 ,
143
+ key = 'shift' )
144
+ do_event (tool , 'press' , xdata = 10 , ydata = 10 , button = 1 )
145
+ do_event (tool , 'onmove' , xdata = 35 , ydata = 30 , button = 1 )
146
+ do_event (tool , 'release' , xdata = 35 , ydata = 30 , button = 1 )
147
+ do_event (tool , 'on_key_release' , xdata = 10 , ydata = 10 , button = 1 ,
145
148
key = 'shift' )
146
- tool .press (event )
147
- event = get_event (ax , xdata = 35 , ydata = 30 , button = 1 )
148
- tool .onmove (event )
149
- tool .release (event )
150
149
extents = [int (e ) for e in tool .extents ]
151
- assert extents == [10 , 35 , 10 , 35 ]
150
+ assert extents == [10 , 35 , 10 , 34 ]
152
151
153
152
# create a square from center
154
- event = get_event (ax , xdata = 100 , ydata = 100 , button = 1 ,
153
+ do_event (tool , 'on_key_press' , xdata = 100 , ydata = 100 , button = 1 ,
154
+ key = 'ctrl+shift' )
155
+ do_event (tool , 'press' , xdata = 100 , ydata = 100 , button = 1 )
156
+ do_event (tool , 'onmove' , xdata = 125 , ydata = 130 , button = 1 )
157
+ do_event (tool , 'release' , xdata = 125 , ydata = 130 , button = 1 )
158
+ do_event (tool , 'on_key_release' , xdata = 100 , ydata = 100 , button = 1 ,
155
159
key = 'ctrl+shift' )
156
- tool .press (event )
157
- event = get_event (ax , xdata = 125 , ydata = 130 , button = 1 )
158
- tool .onmove (event )
159
- tool .release (event )
160
160
extents = [int (e ) for e in tool .extents ]
161
- assert extents == [70 , 130 , 70 , 130 ], extents
161
+ assert extents == [70 , 129 , 70 , 130 ], extents
162
162
163
163
assert tool .geometry .shape == (2 , 74 )
164
164
assert_allclose (tool .geometry [:, 0 ], [70. , 100 ])
@@ -181,27 +181,21 @@ def onselect(epress, erelease):
181
181
assert tool .extents == (100 , 150 , 100 , 150 )
182
182
183
183
# grab a corner and move it
184
- event = get_event (ax , xdata = 100 , ydata = 100 )
185
- tool .press (event )
186
- event = get_event (ax , xdata = 120 , ydata = 120 )
187
- tool .onmove (event )
188
- tool .release (event )
184
+ do_event (tool , 'press' , xdata = 100 , ydata = 100 )
185
+ do_event (tool , 'onmove' , xdata = 120 , ydata = 120 )
186
+ do_event (tool , 'release' , xdata = 120 , ydata = 120 )
189
187
assert tool .extents == (120 , 150 , 120 , 150 )
190
188
191
189
# grab the center and move it
192
- event = get_event (ax , xdata = 132 , ydata = 132 )
193
- tool .press (event )
194
- event = get_event (ax , xdata = 120 , ydata = 120 )
195
- tool .onmove (event )
196
- tool .release (event )
190
+ do_event (tool , 'press' , xdata = 132 , ydata = 132 )
191
+ do_event (tool , 'onmove' , xdata = 120 , ydata = 120 )
192
+ do_event (tool , 'release' , xdata = 120 , ydata = 120 )
197
193
assert tool .extents == (108 , 138 , 108 , 138 )
198
194
199
195
# create a new rectangle
200
- event = get_event (ax , xdata = 10 , ydata = 10 )
201
- tool .press (event )
202
- event = get_event (ax , xdata = 100 , ydata = 100 )
203
- tool .onmove (event )
204
- tool .release (event )
196
+ do_event (tool , 'press' , xdata = 10 , ydata = 10 )
197
+ do_event (tool , 'onmove' , xdata = 100 , ydata = 100 )
198
+ do_event (tool , 'release' , xdata = 100 , ydata = 100 )
205
199
assert tool .extents == (10 , 100 , 10 , 100 )
206
200
207
201
@@ -223,14 +217,9 @@ def onmove(vmin, vmax):
223
217
kwargs ['onmove_callback' ] = onmove
224
218
225
219
tool = widgets .SpanSelector (ax , onselect , * args , ** kwargs )
226
- event = get_event (ax , xdata = 100 , ydata = 100 , button = 1 )
227
- tool .press (event )
228
-
229
- event = get_event (ax , xdata = 125 , ydata = 125 , button = 1 )
230
- tool .onmove (event )
231
-
232
- event = get_event (ax , xdata = 150 , ydata = 150 , button = 1 )
233
- tool .release (event )
220
+ do_event (tool , 'press' , xdata = 100 , ydata = 100 , button = 1 )
221
+ do_event (tool , 'onmove' , xdata = 125 , ydata = 125 , button = 1 )
222
+ do_event (tool , 'release' , xdata = 150 , ydata = 150 , button = 1 )
234
223
235
224
assert ax ._got_onselect
236
225
@@ -253,14 +242,9 @@ def onselect(verts):
253
242
assert verts == [(100 , 100 ), (125 , 125 ), (150 , 150 )]
254
243
255
244
tool = widgets .LassoSelector (ax , onselect , ** kwargs )
256
- event = get_event (ax , xdata = 100 , ydata = 100 , button = 1 )
257
- tool .press (event )
258
-
259
- event = get_event (ax , xdata = 125 , ydata = 125 , button = 1 )
260
- tool .onmove (event )
261
-
262
- event = get_event (ax , xdata = 150 , ydata = 150 , button = 1 )
263
- tool .release (event )
245
+ do_event (tool , 'press' , xdata = 100 , ydata = 100 , button = 1 )
246
+ do_event (tool , 'onmove' , xdata = 125 , ydata = 125 , button = 1 )
247
+ do_event (tool , 'release' , xdata = 150 , ydata = 150 , button = 1 )
264
248
265
249
assert ax ._got_onselect
266
250
0 commit comments