8000 Add some test · matplotlib/matplotlib@62fe3f4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 62fe3f4

Browse files
committed
Add some test
1 parent 6a8031a commit 62fe3f4

File tree

3 files changed

+53
-0
lines changed

3 files changed

+53
-0
lines changed

lib/matplotlib/tests/test_backend_gtk3.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1+
import os
12
from matplotlib import pyplot as plt
23

34
import pytest
5+
from unittest import mock
46

7+
import gi
8+
try:
9+
# :raises ValueError: If module/version is already loaded, already
10+
# required, or unavailable.
11+
gi.require_version("Gtk", "3.0")
12+
except ValueError as e:
13+
# in this case we want to re-raise as ImportError so the
14+
# auto-backend selection logic correctly skips.
15+
raise ImportError(e) from e
16+
17+
from gi.repository import Gtk
518

619
pytest.importorskip("matplotlib.backends.backend_gtk3agg")
720

@@ -49,3 +62,20 @@ def receive(event):
4962
fig.canvas.mpl_connect("draw_event", send)
5063
fig.canvas.mpl_connect("key_press_event", receive)
5164
plt.show()
65+
66+
67+
@pytest.mark.backend("gtk3agg", skip_on_importerror=True)
68+
def test_save_figure_return():
69+
fig, ax = plt.subplots()
70+
ax.imshow([[1]])
71+
with mock.patch("gi.repository.Gtk.FileFilter") as fileFilter:
72+
filt = fileFilter.return_value
73+
filt.get_name.return_value = "Portable Network Graphics"
74+
with mock.patch("gi.repository.Gtk.FileChooserDialog") as dialogChooser:
75+
dialog = dialogChooser.return_value
76+
dialog.get_filter.return_value = filt
77+
dialog.get_filename.return_value = "foobar.png"
78+
dialog.run.return_value = Gtk.ResponseType.OK
79+
fname = fig.canvas.manager.toolbar.save_figure()
80+
os.remove("foobar.png")
81+
assert fname == "foobar.png"

lib/matplotlib/tests/test_backend_macosx.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import os
22

33
import pytest
4+
from unittest import mock
45

56
import matplotlib as mpl
67
import matplotlib.pyplot as plt
@@ -44,3 +45,14 @@ def new_choose_save_file(title, directory, filename):
4445
# Check the savefig.directory rcParam got updated because
4546
# we added a subdirectory "test"
4647
assert mpl.rcParams["savefig.directory"] == f"{tmp_path}/test"
48+
49+
50+
@pytest.mark.backend('macosx')
51+
def test_save_figure_return():
52+
fig, ax = plt.subplots()
53+
ax.imshow([[1]])
54+
prop = "matplotlib.backends._macosx.choose_save_file"
55+
with mock.patch(prop, return_value="foobar.png"):
56+
fname = fig.canvas.manager.toolbar.save_figure()
57+
os.remove("foobar.png")
58+
assert fname == "foobar.png"

lib/matplotlib/tests/test_backend_qt.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,17 @@ def test_figureoptions():
228228
fig.canvas.manager.toolbar.edit_parameters()
229229

230230

231+
@pytest.mark.backend('QtAgg', skip_on_importerror=True)
232+
def test_save_figure_return():
233+
fig, ax = plt.subplots()
234+
ax.imshow([[1]])
235+
prop = "matplotlib.backends.qt_compat.QtWidgets.QFileDialog.getSaveFileName"
236+
with mock.patch(prop, return_value=("foobar.png", None)):
237+
fname = fig.canvas.manager.toolbar.save_figure()
238+
os.remove("foobar.png")
239+
assert fname == "foobar.png"
240+
241+
231242
@pytest.mark.backend('QtAgg', skip_on_importerror=True)
232243
def test_figureoptions_with_datetime_axes():
233244
fig, ax = plt.subplots()

0 commit comments

Comments
 (0)
0