diff --git a/tests/roots/test-directive-code/linenothreshold.rst b/tests/roots/test-directive-code/linenothreshold.rst new file mode 100644 index 000000000..09ee67efc --- /dev/null +++ b/tests/roots/test-directive-code/linenothreshold.rst @@ -0,0 +1,23 @@ +Code Blocks and Literal Includes with Line Numbers via linenothreshold +====================================================================== + +.. highlight:: python + :linenothreshold: 5 + +.. code-block:: + + class Foo: + pass + + class Bar: + def baz(): + pass + +.. code-block:: + + # comment + value = True + +.. literalinclude:: literal.inc + +.. literalinclude:: literal-short.inc diff --git a/tests/roots/test-directive-code/literal-short.inc b/tests/roots/test-directive-code/literal-short.inc new file mode 100644 index 000000000..7a07a3f7a --- /dev/null +++ b/tests/roots/test-directive-code/literal-short.inc @@ -0,0 +1,3 @@ +# Very small literal include (linenothreshold check) + +value = True diff --git a/tests/test_directive_code.py b/tests/test_directive_code.py index 8627820b9..2e1a1fde2 100644 --- a/tests/test_directive_code.py +++ b/tests/test_directive_code.py @@ -565,3 +565,52 @@ def test_code_block_highlighted(app, status, warning): assert codeblocks[1]['language'] == 'python2' assert codeblocks[2]['language'] == 'python3' assert codeblocks[3]['language'] == 'python2' + + +@pytest.mark.sphinx('html', testroot='directive-code') +def test_linenothreshold(app, status, warning): + app.builder.build(['linenothreshold']) + html = (app.outdir / 'linenothreshold.html').text() + + lineos_head = '
'
+    lineos_tail = '
' + + # code-block using linenothreshold + _, matched, html = html.partition(lineos_head + + '1\n' + '2\n' + '3\n' + '4\n' + '5\n' + '6' + lineos_tail) + assert matched + + # code-block not using linenothreshold + html, matched, _ = html.partition(lineos_head + + '1\n' + '2' + lineos_tail) + assert not matched + + # literal include using linenothreshold + _, matched, html = html.partition(lineos_head + + ' 1\n' + ' 2\n' + ' 3\n' + ' 4\n' + ' 5\n' + ' 6\n' + ' 7\n' + ' 8\n' + ' 9\n' + '10\n' + '11\n' + '12\n' + '13' + lineos_tail) + assert matched + + # literal include not using linenothreshold + html, matched, _ = html.partition(lineos_head + + '1\n' + '2\n' + '3' + lineos_tail) + assert not matched