Download lib/python3.12/site-packages/matplotlib/tests/test_backend_gtk3.py from parallel-reasoner/env-full: direct link, hf CLI and curl.
- Browser
- Download file 2.85 kB
-
https://huggingface.co/parallel-reasoner/env-full/resolve/b7f3eae63e243d6cdeeb4bf3ea233ae95cf99cc8/lib/python3.12/site-packages/matplotlib/tests/test_backend_gtk3.py
- Command line
-
hf download hf://parallel-reasoner/env-full@b7f3eae63e243d6cdeeb4bf3ea233ae95cf99cc8/lib/python3.12/site-packages/matplotlib/tests/test_backend_gtk3.py
-
curl -L -o test_backend_gtk3.py https://huggingface.co/parallel-reasoner/env-full/resolve/b7f3eae63e243d6cdeeb4bf3ea233ae95cf99cc8/lib/python3.12/site-packages/matplotlib/tests/test_backend_gtk3.py
2.85 kB
| import os | |
| from matplotlib import pyplot as plt | |
| import pytest | |
| from unittest import mock | |
| def test_correct_key(): | |
| pytest.xfail("test_widget_send_event is not triggering key_press_event") | |
| from gi.repository import Gdk, Gtk # type: ignore[import] | |
| fig = plt.figure() | |
| buf = [] | |
| def send(event): | |
| for key, mod in [ | |
| (Gdk.KEY_a, Gdk.ModifierType.SHIFT_MASK), | |
| (Gdk.KEY_a, 0), | |
| (Gdk.KEY_a, Gdk.ModifierType.CONTROL_MASK), | |
| (Gdk.KEY_agrave, 0), | |
| (Gdk.KEY_Control_L, Gdk.ModifierType.MOD1_MASK), | |
| (Gdk.KEY_Alt_L, Gdk.ModifierType.CONTROL_MASK), | |
| (Gdk.KEY_agrave, | |
| Gdk.ModifierType.CONTROL_MASK | |
| | Gdk.ModifierType.MOD1_MASK | |
| | Gdk.ModifierType.MOD4_MASK), | |
| (0xfd16, 0), # KEY_3270_Play. | |
| (Gdk.KEY_BackSpace, 0), | |
| (Gdk.KEY_BackSpace, Gdk.ModifierType.CONTROL_MASK), | |
| ]: | |
| # This is not actually really the right API: it depends on the | |
| # actual keymap (e.g. on Azerty, shift+agrave -> 0). | |
| Gtk.test_widget_send_key(fig.canvas, key, mod) | |
| def receive(event): | |
| buf.append(event.key) | |
| if buf == [ | |
| "A", "a", "ctrl+a", | |
| "\N{LATIN SMALL LETTER A WITH GRAVE}", | |
| "alt+control", "ctrl+alt", | |
| "ctrl+alt+super+\N{LATIN SMALL LETTER A WITH GRAVE}", | |
| # (No entry for KEY_3270_Play.) | |
| "backspace", "ctrl+backspace", | |
| ]: | |
| plt.close(fig) | |
| fig.canvas.mpl_connect("draw_event", send) | |
| fig.canvas.mpl_connect("key_press_event", receive) | |
| plt.show() | |
| def test_save_figure_return(): | |
| from gi.repository import Gtk | |
| fig, ax = plt.subplots() | |
| ax.imshow([[1]]) | |
| with mock.patch("gi.repository.Gtk.FileFilter") as fileFilter: | |
| filt = fileFilter.return_value | |
| filt.get_name.return_value = "Portable Network Graphics" | |
| with mock.patch("gi.repository.Gtk.FileChooserDialog") as dialogChooser: | |
| dialog = dialogChooser.return_value | |
| dialog.get_filter.return_value = filt | |
| dialog.get_filename.return_value = "foobar.png" | |
| dialog.run.return_value = Gtk.ResponseType.OK | |
| fname = fig.canvas.manager.toolbar.save_figure() | |
| os.remove("foobar.png") | |
| assert fname == "foobar.png" | |
| with mock.patch("gi.repository.Gtk.MessageDialog"): | |
| dialog.get_filename.return_value = None | |
| dialog.run.return_value = Gtk.ResponseType.OK | |
| fname = fig.canvas.manager.toolbar.save_figure() | |
| assert fname is None | |