8000 Merge pull request #5775 from tk0miya/5770_doctest_refers_highlight_l… · sphinx-doc/sphinx@6113261 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6113261

Browse files
authored
Merge pull request #5775 from tk0miya/5770_doctest_refers_highlight_language
Fix #5770: doctest: Follow highlight_language on highlighting doctest block
2 parents 79eec90 + c70e65f commit 6113261

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

CHANGES

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ Incompatible changes
3434
* LaTeX: setting the :confval:`language` to ``'en'`` triggered ``Sonny`` option
3535
of ``fncychap``, now it is ``Bjarne`` to match case of no language specified.
3636
(refs: #5772)
37+
* #5770: doctest: Follow :confval:`highlight_language` on highlighting doctest
38+
block. As a result, they are highlighted as python3 by default.
3739

3840
Deprecated
3941
----------

sphinx/ext/doctest.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,15 @@ def run(self):
121121
# only save if it differs from code
122122
node['test'] = test
123123
if self.name == 'doctest':
124-
node['language'] = 'pycon'
124+
if self.config.highlight_language in ('py', 'python'):
125+
node['language'] = 'pycon'
126+
else:
127+
node['language'] = 'pycon3' # default
125128
elif self.name == 'testcode':
126-
node['language'] = 'python'
129+
if self.config.highlight_language in ('py', 'python'):
130+
node['language'] = 'python'
131+
else:
132+
node['language'] = 'python3' # default
127133
elif self.name == 'testoutput':
128134
# don't try to highlight output
129135
node['language'] = 'none'

tests/test_ext_doctest.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import os
1212
from collections import Counter
1313

14+
from docutils import nodes
1415
import pytest
1516
from packaging.specifiers import InvalidSpecifier
1617
from packaging.version import InvalidVersion
@@ -32,6 +33,23 @@ def test_build(app, status, warning):
3233
assert cleanup_called == 3, 'testcleanup did not get executed enough times'
3334

3435

36+
@pytest.mark.sphinx('dummy', testroot='ext-doctest')
37+
def test_highlight_language_default(app, status, warning):
38+
app.build()
39+
doctree = app.env.get_doctree('doctest')
40+
for node in doctree.traverse(nodes.literal_block):
41+
assert node['language'] in ('python3', 'pycon3', 'none')
42+
43+
44+
@pytest.mark.sphinx('dummy', testroot='ext-doctest',
45+
confoverrides={'highlight_language': 'python'})
46+
def test_highlight_language_python2(app, status, warning):
47+
app.build()
48+
doctree = app.env.get_doctree('doctest')
49+
for node in doctree.traverse(nodes.literal_block):
50+
assert node['language'] in ('python', 'pycon', 'none')
51+
52+
3553
def test_is_allowed_version():
3654
assert is_allowed_version('<3.4', '3.3') is True
3755
assert is_allowed_version('<3.4', '3.3') is True

0 commit comments

Comments
 (0)
0