You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
"""
 | 
						|
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()
 |