Skip to content

Commit 6d21149

Browse files
authored
Merge pull request #630 from astrofrog/fix-deprecated-do-event
Avoid using deprecated do_event in tests
2 parents 69b2509 + 491c878 commit 6d21149

File tree

2 files changed

+66
-27
lines changed

2 files changed

+66
-27
lines changed

regions/shapes/tests/test_ellipse.py

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ def test_region_bbox_zero_size(self):
114114
def test_as_mpl_selector(self, sync):
115115

116116
plt = pytest.importorskip('matplotlib.pyplot')
117-
from matplotlib.testing.widgets import do_event
118117

119118
rng = np.random.default_rng(0)
120119
data = rng.random((16, 16))
@@ -136,12 +135,20 @@ def update_mask(reg):
136135

137136
region = self.reg.copy(angle=0 * u.deg)
138137

139-
selector = region.as_mpl_selector(ax, callback=update_mask, sync=sync)
138+
selector = region.as_mpl_selector(ax, callback=update_mask, sync=sync) # noqa: F841
140139

141-
do_event(selector, 'press', xdata=7.3, ydata=4.4, button=1)
142-
do_event(selector, 'onmove', xdata=9.3, ydata=5.4, button=1)
143-
do_event(selector, 'release', xdata=9.3, ydata=5.4, button=1)
140+
from matplotlib.backend_bases import MouseEvent
141+
canvas = ax.figure.canvas
144142

143+
evt = MouseEvent('button_press_event', canvas,
144+
*ax.transData.transform((7.3, 4.4)), button=1)
145+
canvas.callbacks.process(evt.name, evt)
146+
evt = MouseEvent('motion_notify_event', canvas,
147+
*ax.transData.transform((9.3, 5.4)), button=1)
148+
canvas.callbacks.process(evt.name, evt)
149+
evt = MouseEvent('button_release_event', canvas,
150+
*ax.transData.transform((9.3, 5.4)), button=1)
151+
canvas.callbacks.process(evt.name, evt)
145152
ax.figure.canvas.draw()
146153

147154
if sync:
@@ -173,7 +180,6 @@ def test_mpl_selector_drag(self, anywhere):
173180
Test dragging of entire region from central handle and anywhere.
174181
"""
175182
plt = pytest.importorskip('matplotlib.pyplot')
176-
from matplotlib.testing.widgets import do_event
177183

178184
rng = np.random.default_rng(0)
179185
data = rng.random((16, 16))
@@ -193,21 +199,35 @@ def update_mask(reg):
193199
assert region._mpl_selector.drag_from_anywhere is anywhere
194200

195201
# click_and_drag(selector, start=(3, 4), end=(3.5, 4.5))
196-
do_event(selector, 'press', xdata=3, ydata=4, button=1)
197-
do_event(selector, 'onmove', xdata=3.5, ydata=4.5, button=1)
198-
do_event(selector, 'release', xdata=3.5, ydata=4.5, button=1)
199202

203+
from matplotlib.backend_bases import MouseEvent
204+
canvas = ax.figure.canvas
205+
206+
evt = MouseEvent('button_press_event', canvas,
207+
*ax.transData.transform((3, 4)), button=1)
208+
canvas.callbacks.process(evt.name, evt)
209+
evt = MouseEvent('motion_notify_event', canvas,
210+
*ax.transData.transform((3.5, 4.5)), button=1)
211+
canvas.callbacks.process(evt.name, evt)
212+
evt = MouseEvent('button_release_event', canvas,
213+
*ax.transData.transform((3.5, 4.5)), button=1)
214+
canvas.callbacks.process(evt.name, evt)
200215
ax.figure.canvas.draw()
201216

202217
assert_allclose(region.center.x, 3.5)
203218
assert_allclose(region.center.y, 4.5)
204219
assert_allclose(region.width, 4)
205220
assert_allclose(region.height, 3)
206221

207-
do_event(selector, 'press', xdata=3.25, ydata=4.25, button=1)
208-
do_event(selector, 'onmove', xdata=4.25, ydata=5.25, button=1)
209-
do_event(selector, 'release', xdata=4.25, ydata=5.25, button=1)
210-
222+
evt = MouseEvent('button_press_event', canvas,
223+
*ax.transData.transform((3.25, 4.25)), button=1)
224+
canvas.callbacks.process(evt.name, evt)
225+
evt = MouseEvent('motion_notify_event', canvas,
226+
*ax.transData.transform((4.25, 5.25)), button=1)
227+
canvas.callbacks.process(evt.name, evt)
228+
evt = MouseEvent('button_release_event', canvas,
229+
*ax.transData.transform((4.25, 5.25)), button=1)
230+
canvas.callbacks.process(evt.name, evt)
211231
ax.figure.canvas.draw()
212232

213233
# For drag_from_anywhere=False this will have created a new 1x1 rectangle.

regions/shapes/tests/test_rectangle.py

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ def test_eq(self):
120120
@pytest.mark.parametrize('sync', (False,))
121121
def test_as_mpl_selector(self, sync):
122122
plt = pytest.importorskip('matplotlib.pyplot')
123-
from matplotlib.testing.widgets import do_event
124123

125124
rng = np.random.default_rng(0)
126125
data = rng.random((16, 16))
@@ -142,12 +141,20 @@ def update_mask(reg):
142141

143142
region = self.reg.copy(angle=0 * u.deg)
144143

145-
selector = region.as_mpl_selector(ax, callback=update_mask, sync=sync)
144+
selector = region.as_mpl_selector(ax, callback=update_mask, sync=sync) # noqa: F841
146145

147-
do_event(selector, 'press', xdata=7.3, ydata=4.4, button=1)
148-
do_event(selector, 'onmove', xdata=9.3, ydata=5.4, button=1)
149-
do_event(selector, 'release', xdata=9.3, ydata=5.4, button=1)
146+
from matplotlib.backend_bases import MouseEvent
147+
canvas = ax.figure.canvas
150148

149+
evt = MouseEvent('button_press_event', canvas,
150+
*ax.transData.transform((7.3, 4.4)), button=1)
151+
canvas.callbacks.process(evt.name, evt)
152+
evt = MouseEvent('motion_notify_event', canvas,
153+
*ax.transData.transform((9.3, 5.4)), button=1)
154+
canvas.callbacks.process(evt.name, evt)
155+
evt = MouseEvent('button_release_event', canvas,
156+
*ax.transData.transform((9.3, 5.4)), button=1)
157+
canvas.callbacks.process(evt.name, evt)
151158
ax.figure.canvas.draw()
152159

153160
if sync:
@@ -177,8 +184,6 @@ def test_mpl_selector_drag(self, anywhere):
177184
Test dragging of entire region from central handle and anywhere.
178185
"""
179186
plt = pytest.importorskip('matplotlib.pyplot')
180-
from matplotlib.testing.widgets import (
181-
do_event) # click_and_drag # MPL_VERSION >= 36
182187

183188
rng = np.random.default_rng(0)
184189
data = rng.random((16, 16))
@@ -198,21 +203,35 @@ def update_mask(reg):
198203
assert region._mpl_selector.drag_from_anywhere is anywhere
199204

200205
# click_and_drag(selector, start=(3, 4), end=(3.5, 4.5))
201-
do_event(selector, 'press', xdata=3, ydata=4, button=1)
202-
do_event(selector, 'onmove', xdata=3.5, ydata=4.5, button=1)
203-
do_event(selector, 'release', xdata=3.5, ydata=4.5, button=1)
204206

207+
from matplotlib.backend_bases import MouseEvent
208+
canvas = ax.figure.canvas
209+
210+
evt = MouseEvent('button_press_event', canvas,
211+
*ax.transData.transform((3, 4)), button=1)
212+
canvas.callbacks.process(evt.name, evt)
213+
evt = MouseEvent('motion_notify_event', canvas,
214+
*ax.transData.transform((3.5, 4.5)), button=1)
215+
canvas.callbacks.process(evt.name, evt)
216+
evt = MouseEvent('button_release_event', canvas,
217+
*ax.transData.transform((3.5, 4.5)), button=1)
218+
canvas.callbacks.process(evt.name, evt)
205219
ax.figure.canvas.draw()
206220

207221
assert_allclose(region.center.x, 3.5)
208222
assert_allclose(region.center.y, 4.5)
209223
assert_allclose(region.width, 4)
210224
assert_allclose(region.height, 3)
211225

212-
do_event(selector, 'press', xdata=3.25, ydata=4.25, button=1)
213-
do_event(selector, 'onmove', xdata=4.25, ydata=5.25, button=1)
214-
do_event(selector, 'release', xdata=4.25, ydata=5.25, button=1)
215-
226+
evt = MouseEvent('button_press_event', canvas,
227+
*ax.transData.transform((3.25, 4.25)), button=1)
228+
canvas.callbacks.process(evt.name, evt)
229+
evt = MouseEvent('motion_notify_event', canvas,
230+
*ax.transData.transform((4.25, 5.25)), button=1)
231+
canvas.callbacks.process(evt.name, evt)
232+
evt = MouseEvent('button_release_event', canvas,
233+
*ax.transData.transform((4.25, 5.25)), button=1)
234+
canvas.callbacks.process(evt.name, evt)
216235
ax.figure.canvas.draw()
217236

218237
# For drag_from_anywhere=False this will have created a new 1x1 rectangle.

0 commit comments

Comments
 (0)