This commit is contained in:
cjw
2026-02-12 23:22:11 +08:00
parent 7b09eb3d89
commit 89660bba4e
5988 changed files with 2517516 additions and 0 deletions
@@ -0,0 +1,62 @@
"""
Backend-loading machinery tests, using variations on the template backend.
"""
import sys
from types import SimpleNamespace
from unittest.mock import MagicMock
import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib.backends import backend_template
from matplotlib.backends.backend_template import (
FigureCanvasTemplate, FigureManagerTemplate)
def test_load_template():
mpl.use("template")
assert type(plt.figure().canvas) == FigureCanvasTemplate
def test_load_old_api(monkeypatch):
mpl_test_backend = SimpleNamespace(**vars(backend_template))
mpl_test_backend.new_figure_manager = (
lambda num, *args, FigureClass=mpl.figure.Figure, **kwargs:
FigureManagerTemplate(
FigureCanvasTemplate(FigureClass(*args, **kwargs)), num))
monkeypatch.setitem(sys.modules, "mpl_test_backend", mpl_test_backend)
mpl.use("module://mpl_test_backend")
assert type(plt.figure().canvas) == FigureCanvasTemplate
plt.draw_if_interactive()
def test_show(monkeypatch):
mpl_test_backend = SimpleNamespace(**vars(backend_template))
mock_show = MagicMock()
monkeypatch.setattr(
mpl_test_backend.FigureManagerTemplate, "pyplot_show", mock_show)
monkeypatch.setitem(sys.modules, "mpl_test_backend", mpl_test_backend)
mpl.use("module://mpl_test_backend")
plt.show()
mock_show.assert_called_with()
def test_show_old_global_api(monkeypatch):
mpl_test_backend = SimpleNamespace(**vars(backend_template))
mock_show = MagicMock()
monkeypatch.setattr(mpl_test_backend, "show", mock_show, raising=False)
monkeypatch.setitem(sys.modules, "mpl_test_backend", mpl_test_backend)
mpl.use("module://mpl_test_backend")
plt.show()
mock_show.assert_called_with()
def test_load_case_sensitive(monkeypatch):
mpl_test_backend = SimpleNamespace(**vars(backend_template))
mock_show = MagicMock()
monkeypatch.setattr(
mpl_test_backend.FigureManagerTemplate, "pyplot_show", mock_show)
monkeypatch.setitem(sys.modules, "mpl_Test_Backend", mpl_test_backend)
mpl.use("module://mpl_Test_Backend")
plt.show()
mock_show.assert_called_with()