diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-04-23 01:19:18 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2021-04-23 01:19:18 +0900 |
commit | d02a466cb50f059d938ea892f26bf4af1bd68d47 (patch) | |
tree | fca58ba1f8b20ee215cd15029e8965ad7df9c1ce /tests/test_domain_py.py | |
parent | dfdc7626b5dd06bff3d326e6efddc492ef00c471 (diff) | |
download | sphinx-git-d02a466cb50f059d938ea892f26bf4af1bd68d47.tar.gz |
Fix #9121: py domain: duplicated warning for canonical and alias
A duplicated warning is emitted when both canonical and its alias
objects are defined on the same document. But it should not be emitted
because they're the same object, not conflicted.
Diffstat (limited to 'tests/test_domain_py.py')
-rw-r--r-- | tests/test_domain_py.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_domain_py.py b/tests/test_domain_py.py index 214cb58a0..e5616a6eb 100644 --- a/tests/test_domain_py.py +++ b/tests/test_domain_py.py @@ -870,6 +870,39 @@ def test_canonical(app): assert domain.objects['_io.StringIO'] == ('index', 'io.StringIO', 'class', True) +def test_canonical_definition_overrides(app, warning): + text = (".. py:class:: io.StringIO\n" + " :canonical: _io.StringIO\n" + ".. py:class:: _io.StringIO\n") + restructuredtext.parse(app, text) + assert warning.getvalue() == "" + + domain = app.env.get_domain('py') + assert domain.objects['_io.StringIO'] == ('index', 'id0', 'class', False) + + +def test_canonical_definition_skip(app, warning): + text = (".. py:class:: _io.StringIO\n" + ".. py:class:: io.StringIO\n" + " :canonical: _io.StringIO\n") + + restructuredtext.parse(app, text) + assert warning.getvalue() == "" + + domain = app.env.get_domain('py') + assert domain.objects['_io.StringIO'] == ('index', 'io.StringIO', 'class', False) + + +def test_canonical_duplicated(app, warning): + text = (".. py:class:: mypackage.StringIO\n" + " :canonical: _io.StringIO\n" + ".. py:class:: io.StringIO\n" + " :canonical: _io.StringIO\n") + + restructuredtext.parse(app, text) + assert warning.getvalue() != "" + + def test_info_field_list(app): text = (".. py:module:: example\n" ".. py:class:: Class\n" |