@@ -18,31 +18,35 @@ def get_ax():
18
18
return ax
19
19
20
20
21
- def do_event (tool , etype , button = 1 , xdata = 0 , ydata = 0 , key = None , step = 1 ):
22
- """
23
- Trigger an event
21
+ def mock_event (ax , button = 1 , xdata = 0 , ydata = 0 , key = None , step = 1 ):
22
+ r"""
23
+ Create a mock event that can stand in for `.Event` and its subclasses.
24
+
25
+ This event is intended to be used in tests where it can be passed into
26
+ event handling functions.
24
27
25
28
Parameters
26
29
----------
27
- tool : matplotlib.widgets.RectangleSelector
28
- etype
29
- the event to trigger
30
+ ax : `matplotlib.axes.Axes`
31
+ The axes the event will be in.
30
32
xdata : int
31
- x coord of mouse in data coords
33
+ x coord of mouse in data coords.
32
34
ydata : int
33
- y coord of mouse in data coords
34
- button : int or str
35
- button pressed None, 1, 2, 3, 'up', 'down' (up and down are used
36
- for scroll events)
37
- key
38
- the key depressed when the mouse event triggered (see
39
- :class:`KeyEvent`)
35
+ y coord of mouse in data coords.
36
+ button : None or `MouseButton` or {'up', 'down'}
37
+ The mouse button pressed in this event (see also `.MouseEvent`).
38
+ key : None or str
39
+ The key pressed when the mouse event triggered (see also `.KeyEvent`).
40
40
step : int
41
- number of scroll steps (positive for 'up', negative for 'down')
41
+ Number of scroll steps (positive for 'up', negative for 'down').
42
+
43
+ Returns
44
+ -------
45
+ event
46
+ A `.Event`\-like Mock instance.
42
47
"""
43
48
event = mock .Mock ()
44
49
event .button = button
45
- ax = tool .ax
46
50
event .x , event .y = ax .transData .transform ([(xdata , ydata ),
47
51
(xdata , ydata )])[0 ]
48
52
event .xdata , event .ydata = xdata , ydata
@@ -52,6 +56,29 @@ def do_event(tool, etype, button=1, xdata=0, ydata=0, key=None, step=1):
52
56
event .step = step
53
57
event .guiEvent = None
54
58
event .name = 'Custom'
59
+ return event
60
+
61
+
62
+ def do_event (tool , etype , button = 1 , xdata = 0 , ydata = 0 , key = None , step = 1 ):
63
+ """
64
+ Trigger an event on the given tool.
55
65
66
+ Parameters
67
+ ----------
68
+ tool : matplotlib.widgets.RectangleSelector
69
+ etype : str
70
+ The event to trigger.
71
+ xdata : int
72
+ x coord of mouse in data coords.
73
+ ydata : int
74
+ y coord of mouse in data coords.
75
+ button : None or `MouseButton` or {'up', 'down'}
76
+ The mouse button pressed in this event (see also `.MouseEvent`).
77
+ key : None or str
78
+ The key pressed when the mouse event triggered (see also `.KeyEvent`).
79
+ step : int
80
+ Number of scroll steps (positive for 'up', negative for 'down').
81
+ """
82
+ event = mock_event (tool .ax , button , xdata , ydata , key , step )
56
83
func = getattr (tool , etype )
57
84
func (event )
0 commit comments