Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a73d0a6

Browse files
authored
Merge pull request #20189 from anntzer/gw
Add tests for ginput and waitforbuttonpress.
2 parents 0d3632b + 4f3d918 commit a73d0a6

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

lib/matplotlib/tests/test_figure.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io
44
from pathlib import Path
55
import platform
6+
from threading import Timer
67
from types import SimpleNamespace
78
import warnings
89

@@ -1082,3 +1083,34 @@ def test_add_axes_kwargs():
10821083
assert ax1.name == 'rectilinear'
10831084
assert ax1 is not ax
10841085
plt.close()
1086+
1087+
1088+
def test_ginput(recwarn): # recwarn undoes warn filters at exit.
1089+
warnings.filterwarnings("ignore", "cannot show the figure")
1090+
fig, ax = plt.subplots()
1091+
1092+
def single_press():
1093+
fig.canvas.button_press_event(*ax.transData.transform((.1, .2)), 1)
1094+
1095+
Timer(.1, single_press).start()
1096+
assert fig.ginput() == [(.1, .2)]
1097+
1098+
def multi_presses():
1099+
fig.canvas.button_press_event(*ax.transData.transform((.1, .2)), 1)
1100+
fig.canvas.key_press_event("backspace")
1101+
fig.canvas.button_press_event(*ax.transData.transform((.3, .4)), 1)
1102+
fig.canvas.button_press_event(*ax.transData.transform((.5, .6)), 1)
1103+
fig.canvas.button_press_event(*ax.transData.transform((0, 0)), 2)
1104+
1105+
Timer(.1, multi_presses).start()
1106+
np.testing.assert_allclose(fig.ginput(3), [(.3, .4), (.5, .6)])
1107+
1108+
1109+
def test_waitforbuttonpress(recwarn): # recwarn undoes warn filters at exit.
1110+
warnings.filterwarnings("ignore", "cannot show the figure")
1111+
fig = plt.figure()
1112+
assert fig.waitforbuttonpress(timeout=.1) is None
1113+
Timer(.1, fig.canvas.key_press_event, ("z",)).start()
1114+
assert fig.waitforbuttonpress() is True
1115+
Timer(.1, fig.canvas.button_press_event, (0, 0, 1)).start()
1116+
assert fig.waitforbuttonpress() is False

0 commit comments

Comments
 (0)