123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- """
- ========================
- Widget testing utilities
- ========================
- Functions that are useful for testing widgets.
- See also matplotlib.tests.test_widgets
- """
- import matplotlib.pyplot as plt
- from unittest import mock
- def get_ax():
- """Creates plot and returns its axes"""
- fig, ax = plt.subplots(1, 1)
- ax.plot([0, 200], [0, 200])
- ax.set_aspect(1.0)
- ax.figure.canvas.draw()
- return ax
- def do_event(tool, etype, button=1, xdata=0, ydata=0, key=None, step=1):
- """
- Trigger an event
- Parameters
- ----------
- tool : matplotlib.widgets.RectangleSelector
- etype
- the event to trigger
- xdata : int
- x coord of mouse in data coords
- ydata : int
- y coord of mouse in data coords
- button : int or str
- button pressed None, 1, 2, 3, 'up', 'down' (up and down are used
- for scroll events)
- key
- the key depressed when the mouse event triggered (see
- :class:`KeyEvent`)
- step : int
- number of scroll steps (positive for 'up', negative for 'down')
- """
- event = mock.Mock()
- event.button = button
- ax = tool.ax
- event.x, event.y = ax.transData.transform([(xdata, ydata),
- (xdata, ydata)])[0]
- event.xdata, event.ydata = xdata, ydata
- event.inaxes = ax
- event.canvas = ax.figure.canvas
- event.key = key
- event.step = step
- event.guiEvent = None
- event.name = 'Custom'
- func = getattr(tool, etype)
- func(event)
|