Merge pull request #8887 from jfbu/adapt_tests_to_pygments_2.8

Adapt our tests to Pygments 2.8.0
This commit is contained in:
Takeshi KOMIYA 2021-02-15 22:41:30 +09:00 committed by GitHub
commit e5bc028e4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 150 additions and 63 deletions

View File

@ -1621,6 +1621,13 @@ def test_html_codeblock_linenos_style_table(app):
app.build()
content = (app.outdir / 'index.html').read_text()
pygments_version = tuple(LooseVersion(pygments.__version__).version)
if pygments_version >= (2, 8):
assert ('<div class="linenodiv"><pre><span class="normal">1</span>\n'
'<span class="normal">2</span>\n'
'<span class="normal">3</span>\n'
'<span class="normal">4</span></pre></div>') in content
else:
assert '<div class="linenodiv"><pre>1\n2\n3\n4</pre></div>' in content

View File

@ -9,7 +9,9 @@
"""
import os
from distutils.version import LooseVersion
import pygments
import pytest
from docutils import nodes
@ -421,8 +423,25 @@ def test_literal_include_block_start_with_comment_or_brank(app, status, warning)
def test_literal_include_linenos(app, status, warning):
app.builder.build(['linenos'])
html = (app.outdir / 'linenos.html').read_text()
pygments_version = tuple(LooseVersion(pygments.__version__).version)
# :linenos:
if pygments_version >= (2, 8):
assert ('<td class="linenos"><div class="linenodiv"><pre>'
'<span class="normal"> 1</span>\n'
'<span class="normal"> 2</span>\n'
'<span class="normal"> 3</span>\n'
'<span class="normal"> 4</span>\n'
'<span class="normal"> 5</span>\n'
'<span class="normal"> 6</span>\n'
'<span class="normal"> 7</span>\n'
'<span class="normal"> 8</span>\n'
'<span class="normal"> 9</span>\n'
'<span class="normal">10</span>\n'
'<span class="normal">11</span>\n'
'<span class="normal">12</span>\n'
'<span class="normal">13</span></pre></div></td>' in html)
else:
assert ('<td class="linenos"><div class="linenodiv"><pre>'
' 1\n'
' 2\n'
@ -439,6 +458,22 @@ def test_literal_include_linenos(app, status, warning):
'13</pre></div></td>' in html)
# :lineno-start:
if pygments_version >= (2, 8):
assert ('<td class="linenos"><div class="linenodiv"><pre>'
'<span class="normal">200</span>\n'
'<span class="normal">201</span>\n'
'<span class="normal">202</span>\n'
'<span class="normal">203</span>\n'
'<span class="normal">204</span>\n'
'<span class="normal">205</span>\n'
'<span class="normal">206</span>\n'
'<span class="normal">207</span>\n'
'<span class="normal">208</span>\n'
'<span class="normal">209</span>\n'
'<span class="normal">210</span>\n'
'<span class="normal">211</span>\n'
'<span class="normal">212</span></pre></div></td>' in html)
else:
assert ('<td class="linenos"><div class="linenodiv"><pre>'
'200\n'
'201\n'
@ -455,6 +490,14 @@ def test_literal_include_linenos(app, status, warning):
'212</pre></div></td>' in html)
# :lineno-match:
if pygments_version >= (2, 8):
assert ('<td class="linenos"><div class="linenodiv"><pre>'
'<span class="normal">5</span>\n'
'<span class="normal">6</span>\n'
'<span class="normal">7</span>\n'
'<span class="normal">8</span>\n'
'<span class="normal">9</span></pre></div></td>' in html)
else:
assert ('<td class="linenos"><div class="linenodiv"><pre>'
'5\n'
'6\n'
@ -594,10 +637,20 @@ def test_linenothreshold(app, status, warning):
app.builder.build(['linenothreshold'])
html = (app.outdir / 'linenothreshold.html').read_text()
pygments_version = tuple(LooseVersion(pygments.__version__).version)
lineos_head = '<td class="linenos"><div class="linenodiv"><pre>'
lineos_tail = '</pre></div></td>'
# code-block using linenothreshold
if pygments_version >= (2, 8):
_, matched, html = html.partition(lineos_head +
'<span class="normal">1</span>\n'
'<span class="normal">2</span>\n'
'<span class="normal">3</span>\n'
'<span class="normal">4</span>\n'
'<span class="normal">5</span>\n'
'<span class="normal">6</span>' + lineos_tail)
else:
_, matched, html = html.partition(lineos_head +
'1\n'
'2\n'
@ -608,12 +661,33 @@ def test_linenothreshold(app, status, warning):
assert matched
# code-block not using linenothreshold
if pygments_version >= (2, 8):
html, matched, _ = html.partition(lineos_head +
'<span class="normal">1</span>\n'
'<span class="normal">2</span>' + lineos_tail)
else:
html, matched, _ = html.partition(lineos_head +
'1\n'
'2' + lineos_tail)
assert not matched
# literal include using linenothreshold
if pygments_version >= (2, 8):
_, matched, html = html.partition(lineos_head +
'<span class="normal"> 1</span>\n'
'<span class="normal"> 2</span>\n'
'<span class="normal"> 3</span>\n'
'<span class="normal"> 4</span>\n'
'<span class="normal"> 5</span>\n'
'<span class="normal"> 6</span>\n'
'<span class="normal"> 7</span>\n'
'<span class="normal"> 8</span>\n'
'<span class="normal"> 9</span>\n'
'<span class="normal">10</span>\n'
'<span class="normal">11</span>\n'
'<span class="normal">12</span>\n'
'<span class="normal">13</span>' + lineos_tail)
else:
_, matched, html = html.partition(lineos_head +
' 1\n'
' 2\n'
@ -631,6 +705,12 @@ def test_linenothreshold(app, status, warning):
assert matched
# literal include not using linenothreshold
if pygments_version >= (2, 8):
html, matched, _ = html.partition(lineos_head +
'<span class="normal">1</span>\n'
'<span class="normal">2</span>\n'
'<span class="normal">3</span>' + lineos_tail)
else:
html, matched, _ = html.partition(lineos_head +
'1\n'
'2\n'