From: Dmitry Shachnev <mitya57@debian.org>
Date: Sat, 27 Sep 2025 00:42:25 +0300
Subject: Update the test expectations for Docutils 0.22

Forwarded: https://github.com/wasi-master/rich-rst/pull/17
---
 tests/test_main.py                             | 17 ++++++++++++++++-
 tests/test_vectors/directives_expected.html    | 16 ++++++++--------
 tests/test_vectors/specification_expected.html | 19 +++++++++++++------
 3 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/tests/test_main.py b/tests/test_main.py
index 3347d86..397212c 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -1,3 +1,4 @@
+import docutils
 import pytest
 from rich_rst import RestructuredText
 from pathlib import Path
@@ -6,6 +7,10 @@ from rich.terminal_theme import TerminalTheme
 
 test_vectors_path = Path("tests/test_vectors")
 rst_paths = sorted(str(x) for x in test_vectors_path.glob("*.rst"))
+docutils_0_22_mark = pytest.mark.skipif(
+    docutils.__version_info__ < (0, 22),
+    reason="requires docutils 0.22 or higher",
+)
 
 
 def render_to_html(rst):
@@ -38,7 +43,17 @@ def render_to_html(rst):
     return console.export_html(theme=DRACULA_TERMINAL_THEME)
 
 
-@pytest.mark.parametrize("rst_path", rst_paths)
+@pytest.mark.parametrize(
+    "rst_path",
+    [
+        (
+            pytest.param(path, marks=docutils_0_22_mark)
+            if path.endswith(("directives.rst", "specification.rst"))
+            else path
+        )
+        for path in rst_paths
+    ],
+)
 def test_main(rst_path):
     rst_path = Path(rst_path)
     actual_html_path = rst_path.parent / (rst_path.stem + "_actual.html")
diff --git a/tests/test_vectors/directives_expected.html b/tests/test_vectors/directives_expected.html
index 416e5e1..7b00afd 100644
--- a/tests/test_vectors/directives_expected.html
+++ b/tests/test_vectors/directives_expected.html
@@ -1714,28 +1714,28 @@ references to the element using text as reference name.  Specifying the name opt
 bild.png    :name: my picture  is a concise syntax alternative to preceding it with a hyperlink target  .. _my picture: 
 .. image:: bild.png
 <span class="r23">╭───────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 982); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">982</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;contents&quot;</span>.                                             <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">982</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;contents&quot;</span>.                                  <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 1965); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">1965</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;class&quot;</span>.                                               <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">1965</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;class&quot;</span>.                                    <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2006); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2006</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;figure&quot;</span>.                                              <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2006</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;figure&quot;</span>.                                   <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2010); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2010</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;image&quot;</span>.                                               <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2010</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;image&quot;</span>.                                    <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2022); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2022</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;rubric&quot;</span>.                                              <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2022</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;rubric&quot;</span>.                                   <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2023); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2023</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;sidebar&quot;</span>.                                             <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2023</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;sidebar&quot;</span>.                                  <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2024); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2024</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;table&quot;</span>.                                               <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2024</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;table&quot;</span>.                                    <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r23">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2027); ─────────────────────────────────╮</span>
-<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2027</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r25">&quot;topic&quot;</span>.                                               <span class="r23">│</span>
+<span class="r23">│</span> <span class="r1">&lt;</span><span class="r24">rst-document</span><span class="r1">&gt;</span>:<span class="r23">2027</span>: <span class="r1">(</span>INFO/<span class="r23">1</span><span class="r1">)</span> Target name overrides implicit target name <span class="r25">&quot;topic&quot;</span>.                                    <span class="r23">│</span>
 <span class="r23">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r26">┌─────────────────────────────────────────────────────── Footer ───────────────────────────────────────────────────────┐</span>
 <span class="r26">│</span>                            &quot;Metadata&quot; is data about data, in this case data about the                                <span class="r26">│</span>
diff --git a/tests/test_vectors/specification_expected.html b/tests/test_vectors/specification_expected.html
index 11fe696..cd443a2 100644
--- a/tests/test_vectors/specification_expected.html
+++ b/tests/test_vectors/specification_expected.html
@@ -2172,20 +2172,27 @@ someone@somewhere.com
 <span class="r4">Doctree elements: </span><a class="r3" href="../doctree.html#system-message">system_message</a><span class="r4">, </span><a class="r3" href="../doctree.html#problematic">problematic</a><span class="r4">.</span>
 
 <span class="r4">Markup errors are handled according to the specification in </span><a class="r3" href="../../peps/pep-0258.html">PEP 258</a><span class="r4">.</span>
-<span class="r26">╭────────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 5); ──────────────────────────────────╮</span>
-<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">5</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Enumerated list start value not ordinal-<span class="r26">1</span>: <span class="r28">&quot;6&quot;</span> <span class="r1">(</span>ordinal <span class="r26">6</span><span class="r1">)</span>                                <span class="r26">│</span>
+<span class="r26">╭───────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 457); ─────────────────────────────────╮</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">457</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate implicit target name: <span class="r28">&quot;document&quot;</span>.                                             <span class="r26">│</span>
+<span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
+<span class="r26">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2525); ─────────────────────────────────╮</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">2525</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Enumerated list start value not ordinal-<span class="r26">1</span>: <span class="r28">&quot;6&quot;</span> <span class="r1">(</span>ordinal <span class="r26">6</span><span class="r1">)</span>                             <span class="r26">│</span>
+<span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
+<span class="r26">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 2925); ─────────────────────────────────╮</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">2925</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate name <span class="r28">&quot;footnote_references&quot;</span> for external target <span class="r28">&quot;footnote_references </span>         <span class="r26">│</span>
+<span class="r26">│</span> <span class="r28">setting&quot;</span>.                                                                                                            <span class="r26">│</span>
 <span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r26">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 3197); ─────────────────────────────────╮</span>
-<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3197</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate explicit target name: <span class="r28">&quot;topic&quot;</span>.                                               <span class="r26">│</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3197</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate name <span class="r28">&quot;topic&quot;</span> for external target <span class="r28">&quot;../doctree.html#topic&quot;</span>.                    <span class="r26">│</span>
 <span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r26">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 3208); ─────────────────────────────────╮</span>
-<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3208</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate explicit target name: <span class="r28">&quot;list_item&quot;</span>.                                           <span class="r26">│</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3208</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate name <span class="r28">&quot;list_item&quot;</span> for external target <span class="r28">&quot;../doctree.html#list-item&quot;</span>.            <span class="r26">│</span>
 <span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r26">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 3254); ─────────────────────────────────╮</span>
-<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3254</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate explicit target name: <span class="r28">&quot;reference&quot;</span>.                                           <span class="r26">│</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3254</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate name <span class="r28">&quot;reference&quot;</span> for external target <span class="r28">&quot;../doctree.html#reference&quot;</span>.            <span class="r26">│</span>
 <span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r26">╭──────────────────────────────── System Message: INFO/1 (&lt;rst-document&gt;, line 3255); ─────────────────────────────────╮</span>
-<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3255</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate explicit target name: <span class="r28">&quot;reference&quot;</span>.                                           <span class="r26">│</span>
+<span class="r26">│</span> <span class="r1">&lt;</span><span class="r27">rst-document</span><span class="r1">&gt;</span>:<span class="r26">3255</span>: <span class="r1">(</span>INFO/<span class="r26">1</span><span class="r1">)</span> Duplicate name <span class="r28">&quot;reference&quot;</span> for external target <span class="r28">&quot;../doctree.html#reference&quot;</span>.            <span class="r26">│</span>
 <span class="r26">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span>
 <span class="r29">┌─────────────────────────────────────────────────────── Footer ───────────────────────────────────────────────────────┐</span>
 <span class="r29">│</span>                          In LaTeX, the default definition is 1Â px = 1/72Â in (cf. How to                            <span class="r29">│</span>
