@@ -18,31 +18,35 @@ def get_ax():
1818 return ax
1919
2020
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.
2427
2528 Parameters
2629 ----------
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.
3032 xdata : int
31- x coord of mouse in data coords
33+ x coord of mouse in data coords.
3234 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`).
4040 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.
4247 """
4348 event = mock .Mock ()
4449 event .button = button
45- ax = tool .ax
4650 event .x , event .y = ax .transData .transform ([(xdata , ydata ),
4751 (xdata , ydata )])[0 ]
4852 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):
5256 event .step = step
5357 event .guiEvent = None
5458 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.
5565
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 )
5683 func = getattr (tool , etype )
5784 func (event )
0 commit comments