File remove_sphinx_testing.patch of Package python-sphinxcontrib-actdiag
---
tests/conftest.py | 10 +
tests/test_basic.py | 22 +--
tests/test_errors.py | 24 +--
tests/test_html.py | 64 ++++-----
tests/test_latex.py | 329 +++++++++++++++++++++++++--------------------------
5 files changed, 228 insertions(+), 221 deletions(-)
--- /dev/null
+++ b/tests/conftest.py
@@ -0,0 +1,10 @@
+import pytest
+
+from sphinx.testing.path import path
+
+pytest_plugins = 'sphinx.testing.fixtures'
+
+
+@pytest.fixture(scope='session')
+def rootdir():
+ return path(__file__).parent.abspath() / 'docs'
\ No newline at end of file
--- a/tests/test_basic.py
+++ b/tests/test_basic.py
@@ -1,28 +1,28 @@
# -*- coding: utf-8 -*-
-from sphinx_testing import with_app
+import pytest
-@with_app(buildername='html', srcdir='tests/docs/basic/')
+@pytest.mark.sphinx(buildername='html', testroot='basic/')
def test_build_html(app, status, warning):
- app.builder.build_all()
+ app.build()
-@with_app(buildername='singlehtml', srcdir='tests/docs/basic/')
+@pytest.mark.sphinx(buildername='singlehtml', testroot='basic/')
def test_build_singlehtml(app, status, warning):
- app.builder.build_all()
+ app.build()
-@with_app(buildername='latex', srcdir='tests/docs/basic/')
+@pytest.mark.sphinx(buildername='latex', testroot='basic/')
def test_build_latex(app, status, warning):
- app.builder.build_all()
+ app.build()
-@with_app(buildername='epub', srcdir='tests/docs/basic/')
+@pytest.mark.sphinx(buildername='epub', testroot='basic/')
def test_build_epub(app, status, warning):
- app.builder.build_all()
+ app.build()
-@with_app(buildername='json', srcdir='tests/docs/basic/')
+@pytest.mark.sphinx(buildername='json', testroot='basic/')
def test_build_json(app, status, warning):
- app.builder.build_all()
+ app.build()
--- a/tests/test_errors.py
+++ b/tests/test_errors.py
@@ -1,29 +1,29 @@
# -*- coding: utf-8 -*-
-from mock import patch
-from sphinx_testing import with_app
+from unittest.mock import patch
import sys
import unittest
+import pytest
class TestSphinxcontribActdiagErrors(unittest.TestCase):
- @with_app(srcdir='tests/docs/basic', write_docstring=True)
+ @pytest.mark.sphinx(testroot='basic', write_docstring=True)
def test_parse_error(self, app, status, warning):
"""
.. actdiag::
{ A -> B;
"""
- app.builder.build_all()
+ app.build()
self.assertIn('got unexpected token:', warning.getvalue())
- @with_app(srcdir='tests/docs/basic', confoverrides=dict(actdiag_html_image_format='JPG'))
+ @pytest.mark.sphinx(testroot='basic', confoverrides=dict(actdiag_html_image_format='JPG'))
def test_unknown_format_error(self, app, status, warning):
- app.builder.build_all()
+ app.build()
self.assertIn('unknown format: JPG', warning.getvalue())
- @with_app(srcdir='tests/docs/basic', confoverrides=dict(actdiag_html_image_format='PDF'))
+ @pytest.mark.sphinx(testroot='basic', confoverrides=dict(actdiag_html_image_format='PDF'))
def test_reportlab_not_found_error(self, app, status, warning):
try:
# unload reportlab and make loading it impossible
@@ -31,23 +31,23 @@ class TestSphinxcontribActdiagErrors(uni
path = sys.path
sys.path = []
- app.builder.build_all()
+ app.build()
self.assertIn('Could not output PDF format. Install reportlab.',
warning.getvalue())
finally:
sys.path = path
- @with_app(srcdir='tests/docs/basic')
+ @pytest.mark.sphinx(testroot='basic')
@patch("actdiag.utils.rst.nodes.actdiag.processor.drawer.DiagramDraw")
def test_rendering_error(self, app, status, warning, DiagramDraw):
DiagramDraw.side_effect = RuntimeError("UNKNOWN ERROR!")
- app.builder.build_all()
+ app.build()
self.assertIn('UNKNOWN ERROR!', warning.getvalue())
- @with_app(srcdir='tests/docs/basic')
+ @pytest.mark.sphinx(testroot='basic')
@patch("sphinxcontrib.actdiag.actdiag.drawer.DiagramDraw.draw")
def test_font_settings_error(self, app, status, warning, draw):
draw.side_effect = UnicodeEncodeError("", "", 0, 0, "")
- app.builder.build_all()
+ app.build()
self.assertIn('UnicodeEncodeError caught (check your font settings)',
warning.getvalue())
--- a/tests/test_html.py
+++ b/tests/test_html.py
@@ -1,13 +1,11 @@
# -*- coding: utf-8 -*-
-
-from sphinx_testing import with_app
-
import unittest
+import pytest
-with_png_app = with_app(srcdir='tests/docs/basic',
+with_png_app = pytest.mark.sphinx(testroot='basic',
buildername='html',
write_docstring=True)
-with_svg_app = with_app(srcdir='tests/docs/basic',
+with_svg_app = pytest.mark.sphinx(testroot='basic',
buildername='html',
write_docstring=True,
confoverrides={
@@ -23,19 +21,19 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<img .*? src="_images/.*?.png" .*?/></div>'))
- @with_app(srcdir='tests/docs/subdir', buildername='html', write_docstring=True)
+ @pytest.mark.sphinx(testroot='subdir', buildername='html', write_docstring=True)
def test_build_png_image_in_subdir(self, app, status, warning):
"""
.. actdiag::
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'subdir' / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<img .*? src="\.\./_images/.*?.png" .*?/></div>'))
@@ -48,7 +46,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -62,7 +60,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -77,7 +75,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -91,7 +89,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -106,7 +104,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -120,7 +118,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<div class="align-center"><img .*? /></div>')
@@ -133,7 +131,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-center">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -147,7 +145,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<div class="align-default"><img .*? id="target" src=".*?" .*? /></div>')
@@ -160,7 +158,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -175,7 +173,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = 'http://blockdiag.com/'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<a class="reference internal image-reference" href="(.*?.png)">'
@@ -197,7 +195,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = ':ref:`target`'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default"><map name="(map_\d+)">'
r'<area shape="rect" coords="64.0,120.0,192.0,160.0" href="#target"></map>'
@@ -216,7 +214,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = ':ref:`hello world`'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default"><map name="(map_\d+)">'
r'<area shape="rect" coords="64.0,120.0,192.0,160.0" href="#hello-world">'
@@ -230,7 +228,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = ':ref:`unknown_target`'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<div class="align-default"><img .*? src=".*?.png" .*?/></div>')
self.assertIn('undefined label: unknown_target', warning.getvalue())
@@ -242,7 +240,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<div class="align-default"><svg .*?>')
@@ -254,7 +252,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<svg height="140.0" viewBox="0 0 256 280" width="128.0" .*?>'))
@@ -267,7 +265,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<svg height="140.0" viewBox="0 0 256 280" width="128.0" .*?>'))
@@ -281,7 +279,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<svg height="200.0" viewBox="0 0 256 280" width="100.0" .*?>'))
@@ -294,7 +292,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<svg height="70.0" viewBox="0 0 256 280" width="64.0" .*?>'))
@@ -308,7 +306,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, (r'<div class="align-default">'
r'<svg height="7.65625" viewBox="0 0 256 280" width="7.0" .*?>'))
@@ -321,7 +319,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<div class="align-center"><svg .*?>')
@@ -333,7 +331,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<div class="align-default"><span id="target"></span><svg .*?>')
@@ -350,7 +348,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = ':ref:`target`'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<a xlink:href="#target">\n\s*<rect .*?>\n\s*</a>')
@@ -367,7 +365,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = ':ref:`hello world`'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<a xlink:href="#hello-world">\n\s*<rect .*?>\n\s*</a>')
@@ -379,7 +377,7 @@ class TestSphinxcontribActdiagHTML(unitt
A -> B;
A [href = ':ref:`unknown_target`'];
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertNotRegex(source, r'<a xlink:href="#hello-world">\n\s*<rect .*?>\n\s*</a>')
self.assertIn('undefined label: unknown_target', warning.getvalue())
@@ -400,6 +398,6 @@ class TestSphinxcontribActdiagHTML(unitt
class foo [color = red];
A_foo;
"""
- app.builder.build_all()
+ app.build()
source = (app.outdir / 'index.html').read_text(encoding='utf-8')
self.assertRegexpMatches(source, r'<text[^>]+>A_foo</text>') # 2nd diagram has a node labeled 'A_foo'.
--- a/tests/test_latex.py
+++ b/tests/test_latex.py
@@ -2,20 +2,20 @@
import os
import re
-from sphinx_testing import with_app
import unittest
+import pytest
CR = '\r?\n'
actdiag_fontpath = '/usr/share/fonts/truetype/ipafont/ipagp.ttf'
-with_png_app = with_app(srcdir='tests/docs/basic',
+with_png_app = pytest.mark.sphinx(testroot='basic',
buildername='latex',
write_docstring=True,
confoverrides={
'latex_documents': [('index', 'test.tex', '', 'test', 'manual')],
})
-with_pdf_app = with_app(srcdir='tests/docs/basic',
+with_pdf_app = pytest.mark.sphinx(testroot='basic',
buildername='latex',
write_docstring=True,
confoverrides={
@@ -23,7 +23,7 @@ with_pdf_app = with_app(srcdir='tests/do
'actdiag_latex_image_format': 'PDF',
'actdiag_fontpath': actdiag_fontpath,
})
-with_oldpdf_app = with_app(srcdir='tests/docs/basic',
+with_oldpdf_app = pytest.mark.sphinx(testroot='basic',
buildername='latex',
write_docstring=True,
confoverrides={
@@ -33,164 +33,163 @@ with_oldpdf_app = with_app(srcdir='tests
})
-class TestSphinxcontribActdiagLatex(unittest.TestCase):
- @with_png_app
- def test_build_png_image(self, app, status, warning):
- """
- .. actdiag::
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics{{actdiag-.*?}.png}')
-
- @unittest.skipUnless(os.path.exists(actdiag_fontpath), "TrueType font not found")
- @with_pdf_app
- def test_build_pdf_image1(self, app, status, warning):
- """
- .. actdiag::
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics{{actdiag-.*?}.pdf}')
-
- @unittest.skipUnless(os.path.exists(actdiag_fontpath), "TrueType font not found")
- @with_oldpdf_app
- def test_build_pdf_image2(self, app, status, warning):
- """
- .. actdiag::
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics{{actdiag-.*?}.pdf}')
-
- @with_png_app
- def test_width_option(self, app, status, warning):
- """
- .. actdiag::
- :width: 3cm
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics\[width=3cm\]{{actdiag-.*?}.png}')
-
- @with_png_app
- def test_height_option(self, app, status, warning):
- """
- .. actdiag::
- :height: 4cm
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics\[height=4cm\]{{actdiag-.*?}.png}')
-
- @with_png_app
- def test_scale_option(self, app, status, warning):
- """
- .. actdiag::
- :scale: 50%
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics\[scale=0.5\]{{actdiag-.*?}.png}')
-
- @with_png_app
- def test_align_option_left(self, app, status, warning):
- """
- .. actdiag::
- :align: left
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, (r'{\\sphinxincludegraphics{{actdiag-.*?}.png}'
- r'\\hspace\*{\\fill}}'))
-
- @with_png_app
- def test_align_option_center(self, app, status, warning):
- """
- .. actdiag::
- :align: center
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, (r'{\\hspace\*{\\fill}'
- r'\\sphinxincludegraphics{{actdiag-.*?}.png}'
- r'\\hspace\*{\\fill}}'))
-
- @with_png_app
- def test_align_option_right(self, app, status, warning):
- """
- .. actdiag::
- :align: right
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, (r'{\\hspace\*{\\fill}'
- r'\\sphinxincludegraphics{{actdiag-.*?}.png}'))
-
- @with_png_app
- def test_caption_option(self, app, status, warning):
- """
- .. actdiag::
- :caption: hello world
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
-
- figure = re.compile((r'\\begin{figure}\[htbp\]' + CR +
- r'\\centering' + CR +
- r'\\capstart' + CR + CR +
- r'\\noindent\\sphinxincludegraphics{{actdiag-.*?}.png}' + CR +
- r'\\caption{hello world}\\label{\\detokenize{index:id1}}\\end{figure}'),
- re.DOTALL)
- self.assertRegexpMatches(source, figure)
-
- @with_png_app
- def test_caption_option_and_align_option(self, app, status, warning):
- """
- .. actdiag::
- :align: left
- :caption: hello world
-
- A -> B;
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
-
- figure = re.compile((r'\\begin{wrapfigure}{l}{0pt}' + CR +
- r'\\centering' + CR +
- r'\\noindent\\sphinxincludegraphics{{actdiag-.*?}.png}' + CR +
- r'\\caption{hello world}\\label{\\detokenize{index:id1}}\\end{wrapfigure}'),
- re.DOTALL)
- self.assertRegexpMatches(source, figure)
-
- @with_png_app
- def test_href(self, app, status, warning):
- """
- .. actdiag::
-
- A -> B;
- A [href=":ref:`target`"];
- """
- app.builder.build_all()
- source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
- self.assertRegexpMatches(source, r'\\sphinxincludegraphics{{actdiag-.*?}.png}')
+@with_png_app
+def test_build_png_image(app, status, warning):
+ """
+ .. actdiag::
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics{{actdiag-.*?}.png}', source)
+
+@unittest.skipUnless(os.path.exists(actdiag_fontpath), "TrueType font not found")
+@with_pdf_app
+def test_build_pdf_image1(app, status, warning):
+ """
+ .. actdiag::
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics{{actdiag-.*?}.pdf}', source)
+
+@unittest.skipUnless(os.path.exists(actdiag_fontpath), "TrueType font not found")
+@with_oldpdf_app
+def test_build_pdf_image2(app, status, warning):
+ """
+ .. actdiag::
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics{{actdiag-.*?}.pdf}', source)
+
+@with_png_app
+def test_width_option(app, status, warning):
+ """
+ .. actdiag::
+ :width: 3cm
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics\[width=3cm\]{{actdiag-.*?}.png}', source)
+
+@with_png_app
+def test_height_option(app, status, warning):
+ """
+ .. actdiag::
+ :height: 4cm
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics\[height=4cm\]{{actdiag-.*?}.png}', source)
+
+@with_png_app
+def test_scale_option(app, status, warning):
+ """
+ .. actdiag::
+ :scale: 50%
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics\[scale=0.5\]{{actdiag-.*?}.png}', source)
+
+@with_png_app
+def test_align_option_left(app, status, warning):
+ """
+ .. actdiag::
+ :align: left
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search((r'{\\sphinxincludegraphics{{actdiag-.*?}.png}'
+ r'\\hspace\*{\\fill}}'), source)
+
+@with_png_app
+def test_align_option_center(app, status, warning):
+ """
+ .. actdiag::
+ :align: center
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search((r'{\\hspace\*{\\fill}'
+ r'\\sphinxincludegraphics{{actdiag-.*?}.png}'
+ r'\\hspace\*{\\fill}}'), source)
+
+@with_png_app
+def test_align_option_right(app, status, warning):
+ """
+ .. actdiag::
+ :align: right
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search((r'{\\hspace\*{\\fill}'
+ r'\\sphinxincludegraphics{{actdiag-.*?}.png}'), source)
+
+@with_png_app
+def test_caption_option(app, status, warning):
+ """
+ .. actdiag::
+ :caption: hello world
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+
+ figure = re.compile((r'\\begin{figure}\[htbp\]' + CR +
+ r'\\centering' + CR +
+ r'\\capstart' + CR + CR +
+ r'\\noindent\\sphinxincludegraphics{{actdiag-.*?}.png}' + CR +
+ r'\\caption{hello world}\\label{\\detokenize{index:id1}}\\end{figure}'),
+ re.DOTALL)
+ assert re.search(figure, source)
+
+@with_png_app
+def test_caption_option_and_align_option(app, status, warning):
+ """
+ .. actdiag::
+ :align: left
+ :caption: hello world
+
+ A -> B;
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+
+ figure = re.compile((r'\\begin{wrapfigure}{l}{0pt}' + CR +
+ r'\\centering' + CR +
+ r'\\noindent\\sphinxincludegraphics{{actdiag-.*?}.png}' + CR +
+ r'\\caption{hello world}\\label{\\detokenize{index:id1}}\\end{wrapfigure}'),
+ re.DOTALL)
+ assert re.search(figure, source)
+
+@with_png_app
+def test_href(app, status, warning):
+ """
+ .. actdiag::
+
+ A -> B;
+ A [href=":ref:`target`"];
+ """
+ app.build()
+ source = (app.outdir / 'test.tex').read_text(encoding='utf-8')
+ assert re.search(r'\\sphinxincludegraphics{{actdiag-.*?}.png}', source)