def test_images(): assert warning_emitted('images', 'image file not readable: foo.png') assert warning_emitted('images', 'nonlocal image URI found: ' 'http://www.python.org/logo.png') tree = env.get_doctree('images') app._warning.reset() htmlbuilder = StandaloneHTMLBuilder(app) htmlbuilder.imgpath = 'dummy' htmlbuilder.post_process_images(tree) image_uri_message = "no matching candidate for image URI u'foo.*'" if PY3: image_uri_message = remove_unicode_literals(image_uri_message) assert image_uri_message in app._warning.content[-1] assert set(htmlbuilder.images.keys()) == \ set(['subdir/img.png', 'img.png', 'subdir/simg.png', 'svgimg.svg']) assert set(htmlbuilder.images.values()) == \ set(['img.png', 'img1.png', 'simg.png', 'svgimg.svg']) app._warning.reset() latexbuilder = LaTeXBuilder(app) latexbuilder.post_process_images(tree) assert image_uri_message in app._warning.content[-1] assert set(latexbuilder.images.keys()) == \ set(['subdir/img.png', 'subdir/simg.png', 'img.png', 'img.pdf', 'svgimg.pdf']) assert set(latexbuilder.images.values()) == \ set(['img.pdf', 'img.png', 'img1.png', 'simg.png', 'svgimg.pdf'])
def test_multibyte_parameters(make_app, apidoc): outdir = apidoc.outdir assert (outdir / 'conf.py').isfile() assert (outdir / 'autodoc_fodder.rst').isfile() assert (outdir / 'index.rst').isfile() conf_py = (outdir / 'conf.py').text() conf_py_ = remove_unicode_literals(conf_py) assert u"project = 'プロジェクト名'" in conf_py_ assert u"author = '著者名'" in conf_py_ assert u"version = 'バージョン'" in conf_py_ assert u"release = 'リリース'" in conf_py_ app = make_app('text', srcdir=outdir) app.build() print(app._status.getvalue()) print(app._warning.getvalue())
from six import PY3 from sphinx.writers.latex import LaTeXTranslator from util import SkipTest, remove_unicode_literals, with_app from test_build_html import ENV_WARNINGS LATEX_WARNINGS = ENV_WARNINGS + """\ None:None: WARNING: citation not found: missing None:None: WARNING: no matching candidate for image URI u'foo.\\*' WARNING: invalid pair index entry u'' WARNING: invalid pair index entry u'keyword; ' """ if PY3: LATEX_WARNINGS = remove_unicode_literals(LATEX_WARNINGS) @with_app(buildername='latex') def test_latex(app, status, warning): LaTeXTranslator.ignore_missing_images = True app.builder.build_all() latex_warnings = warning.getvalue().replace(os.sep, '/') latex_warnings_exp = LATEX_WARNINGS % { 'root': re.escape(app.srcdir.replace(os.sep, '/')) } assert re.match(latex_warnings_exp + '$', latex_warnings), \ 'Warnings don\'t match:\n' + \ '--- Expected (regex):\n' + latex_warnings_exp + \ '--- Got:\n' + latex_warnings
from sphinx.errors import SphinxError from sphinx.writers.latex import LaTeXTranslator from util import SkipTest, remove_unicode_literals, with_app, strip_escseq from test_build_html import ENV_WARNINGS LATEX_WARNINGS = ENV_WARNINGS + """\ %(root)s/markup.txt:\\d+: WARNING: unknown option: &option %(root)s/footnote.txt:\\d+: WARNING: citation not found: missing %(root)s/images.txt:\\d+: WARNING: no matching candidate for image URI u'foo.\\*' %(root)s/markup.txt:\\d+: WARNING: Could not lex literal_block as "c". Highlighting skipped. """ if PY3: LATEX_WARNINGS = remove_unicode_literals(LATEX_WARNINGS) def run_latex(outdir): """Run pdflatex, xelatex, and lualatex in the outdir""" cwd = os.getcwd() os.chdir(outdir) try: latexes = ('pdflatex', 'xelatex', 'lualatex') available_latexes = len(latexes) for latex in latexes: try: os.mkdir(latex) p = Popen([latex, '--interaction=nonstopmode', '-output-directory=%s' % latex, 'SphinxTests.tex'], stdout=PIPE, stderr=PIPE)
from six import PY3 from sphinx.writers.texinfo import TexinfoTranslator from util import SkipTest, remove_unicode_literals, with_app from test_build_html import ENV_WARNINGS TEXINFO_WARNINGS = ENV_WARNINGS + """\ None:None: WARNING: citation not found: missing None:None: WARNING: no matching candidate for image URI u'foo.\\*' None:None: WARNING: no matching candidate for image URI u'svgimg.\\*' """ if PY3: TEXINFO_WARNINGS = remove_unicode_literals(TEXINFO_WARNINGS) @with_app('texinfo') def test_texinfo(app, status, warning): TexinfoTranslator.ignore_missing_images = True app.builder.build_all() texinfo_warnings = warning.getvalue().replace(os.sep, '/') texinfo_warnings_exp = TEXINFO_WARNINGS % { 'root': re.escape(app.srcdir.replace(os.sep, '/')) } assert re.match(texinfo_warnings_exp + '$', texinfo_warnings), \ 'Warnings don\'t match:\n' + \ '--- Expected (regex):\n' + texinfo_warnings_exp + \ '--- Got:\n' + texinfo_warnings # now, try to run makeinfo over it
from sphinx.writers.texinfo import TexinfoTranslator from util import SkipTest, remove_unicode_literals, with_app from test_build_html import ENV_WARNINGS TEXINFO_WARNINGS = ENV_WARNINGS + """\ %(root)s/markup.txt:158: WARNING: unknown option: &option %(root)s/footnote.txt:60: WARNING: citation not found: missing %(root)s/images.txt:20: WARNING: no matching candidate for image URI u'foo.\\*' %(root)s/images.txt:29: WARNING: no matching candidate for image URI u'svgimg.\\*' """ if PY3: TEXINFO_WARNINGS = remove_unicode_literals(TEXINFO_WARNINGS) @with_app('texinfo', freshenv=True) # use freshenv to check warnings def test_texinfo(app, status, warning): TexinfoTranslator.ignore_missing_images = True app.builder.build_all() texinfo_warnings = warning.getvalue().replace(os.sep, '/') texinfo_warnings_exp = TEXINFO_WARNINGS % { 'root': re.escape(app.srcdir.replace(os.sep, '/'))} assert re.match(texinfo_warnings_exp + '$', texinfo_warnings), \ 'Warnings don\'t match:\n' + \ '--- Expected (regex):\n' + texinfo_warnings_exp + \ '--- Got:\n' + texinfo_warnings # now, try to run makeinfo over it cwd = os.getcwd()
(%(root)s/markup.txt:\\d+: WARNING: Malformed :option: u'&option', does \ not contain option marker - or -- or / or \\+ %(root)s/undecodable.txt:3: WARNING: undecodable source characters, replacing \ with "\\?": b?'here: >>>(\\\\|/)xbb<<<' )?""" HTML_WARNINGS = ENV_WARNINGS + """\ %(root)s/images.txt:20: WARNING: no matching candidate for image URI u'foo.\\*' None:\\d+: WARNING: citation not found: missing %(root)s/markup.txt:: WARNING: invalid single index entry u'' %(root)s/markup.txt:: WARNING: invalid pair index entry u'' %(root)s/markup.txt:: WARNING: invalid pair index entry u'keyword; ' """ if PY3: ENV_WARNINGS = remove_unicode_literals(ENV_WARNINGS) HTML_WARNINGS = remove_unicode_literals(HTML_WARNINGS) def tail_check(check): rex = re.compile(check) def checker(nodes): for node in nodes: if node.tail and rex.search(node.tail): return True assert False, '%r not found in tail of any nodes %s' % (check, nodes) return checker
:encoding: option\\n? %(root)s/includes.txt:4: WARNING: download file not readable: .*?nonexisting.png %(root)s/markup.txt:\\d+: WARNING: Malformed :option: u'Python c option', does \ not contain option marker - or -- or / """ HTML_WARNINGS = ENV_WARNINGS + """\ %(root)s/images.txt:20: WARNING: no matching candidate for image URI u'foo.\\*' None:\\d+: WARNING: citation not found: missing %(root)s/markup.txt:: WARNING: invalid single index entry u'' %(root)s/markup.txt:: WARNING: invalid pair index entry u'' %(root)s/markup.txt:: WARNING: invalid pair index entry u'keyword; ' """ if PY3: ENV_WARNINGS = remove_unicode_literals(ENV_WARNINGS) HTML_WARNINGS = remove_unicode_literals(HTML_WARNINGS) def tail_check(check): rex = re.compile(check) def checker(nodes): for node in nodes: if node.tail and rex.search(node.tail): return True assert False, '%r not found in tail of any nodes %s' % (check, nodes) return checker HTML_XPATH = { 'images.html': [