hub/venv/lib/python3.7/site-packages/matplotlib/tests/test_sphinxext.py

54 lines
2.0 KiB
Python
Raw Normal View History

"""Tests for tinypages build using sphinx extensions."""
import filecmp
from os.path import join as pjoin, dirname, isdir
from subprocess import Popen, PIPE
import sys
import pytest
pytest.importorskip('sphinx')
def test_tinypages(tmpdir):
html_dir = pjoin(str(tmpdir), 'html')
doctree_dir = pjoin(str(tmpdir), 'doctrees')
# Build the pages with warnings turned into errors
cmd = [sys.executable, '-msphinx', '-W', '-b', 'html', '-d', doctree_dir,
pjoin(dirname(__file__), 'tinypages'), html_dir]
proc = Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True)
out, err = proc.communicate()
assert proc.returncode == 0, \
"sphinx build failed with stdout:\n{}\nstderr:\n{}\n".format(out, err)
if err:
pytest.fail("sphinx build emitted the following warnings:\n{}"
.format(err))
assert isdir(html_dir)
def plot_file(num):
return pjoin(html_dir, 'some_plots-{0}.png'.format(num))
range_10, range_6, range_4 = [plot_file(i) for i in range(1, 4)]
# Plot 5 is range(6) plot
assert filecmp.cmp(range_6, plot_file(5))
# Plot 7 is range(4) plot
assert filecmp.cmp(range_4, plot_file(7))
# Plot 11 is range(10) plot
assert filecmp.cmp(range_10, plot_file(11))
# Plot 12 uses the old range(10) figure and the new range(6) figure
assert filecmp.cmp(range_10, plot_file('12_00'))
assert filecmp.cmp(range_6, plot_file('12_01'))
# Plot 13 shows close-figs in action
assert filecmp.cmp(range_4, plot_file(13))
# Plot 14 has included source
with open(pjoin(html_dir, 'some_plots.html'), 'rb') as fobj:
html_contents = fobj.read()
assert b'# Only a comment' in html_contents
# check plot defined in external file.
assert filecmp.cmp(range_4, pjoin(html_dir, 'range4.png'))
assert filecmp.cmp(range_6, pjoin(html_dir, 'range6.png'))
# check if figure caption made it into html file
assert b'This is the caption for plot 15.' in html_contents