sphinx/tests/test_markup/test_smartquotes.py
2024-11-22 21:54:26 +00:00

167 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""Test smart quotes."""
from __future__ import annotations
import pytest
from sphinx.testing.util import etree_parse
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
)
def test_basic(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p> “Sphinx” is a tool that makes it easy …</p>' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
)
def test_literals(app):
app.build()
etree = etree_parse(app.outdir / 'literals.html')
for code_element in etree.iter('code'):
code_text = ''.join(code_element.itertext())
if code_text.startswith('code role'):
assert "'quotes'" in code_text
elif code_text.startswith('{'):
assert code_text == "{'code': 'role', 'with': 'quotes'}"
elif code_text.startswith('literal'):
assert code_text == "literal with 'quotes'"
@pytest.mark.sphinx(
'text',
testroot='smartquotes',
freshenv=True,
)
def test_text_builder(app):
app.build()
content = (app.outdir / 'index.txt').read_text(encoding='utf8')
assert '-- "Sphinx" is a tool that makes it easy ...' in content
@pytest.mark.sphinx(
'man',
testroot='smartquotes',
freshenv=True,
)
def test_man_builder(app):
app.build()
content = (app.outdir / 'projectnamenotset.1').read_text(encoding='utf8')
assert r'\-\- \(dqSphinx\(dq is a tool that makes it easy ...' in content
@pytest.mark.sphinx(
'latex',
testroot='smartquotes',
freshenv=True,
)
def test_latex_builder(app):
app.build()
content = (app.outdir / 'projectnamenotset.tex').read_text(encoding='utf8')
assert '\\textendash{} “Sphinx” is a tool that makes it easy …' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
confoverrides={'language': 'ja'},
)
def test_ja_html_builder(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p>-- &quot;Sphinx&quot; is a tool that makes it easy ...</p>' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
confoverrides={'language': 'zh_CN'},
)
def test_zh_cn_html_builder(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p>-- &quot;Sphinx&quot; is a tool that makes it easy ...</p>' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
confoverrides={'language': 'zh_TW'},
)
def test_zh_tw_html_builder(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p>-- &quot;Sphinx&quot; is a tool that makes it easy ...</p>' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
confoverrides={'smartquotes': False},
)
def test_smartquotes_disabled(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p>-- &quot;Sphinx&quot; is a tool that makes it easy ...</p>' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
confoverrides={'smartquotes_action': 'q'},
)
def test_smartquotes_action(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p>-- “Sphinx” is a tool that makes it easy ...</p>' in content
@pytest.mark.sphinx(
'html',
testroot='smartquotes',
freshenv=True,
confoverrides={'language': 'ja', 'smartquotes_excludes': {}},
)
def test_smartquotes_excludes_language(app):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<p> 「Sphinx」 is a tool that makes it easy …</p>' in content
@pytest.mark.sphinx(
'man',
testroot='smartquotes',
freshenv=True,
confoverrides={'smartquotes_excludes': {}},
)
def test_smartquotes_excludes_builders(app):
app.build()
content = (app.outdir / 'projectnamenotset.1').read_text(encoding='utf8')
assert ' “Sphinx” is a tool that makes it easy …' in content