summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2020-11-04 23:19:25 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2020-11-04 23:19:27 +0900
commit218de39462798c8e102ff375b8ee9fb336537041 (patch)
tree112b7069e03430d7f4b63f970346235c442e34d7
parent242c63dc8bb22ee4aab769eafee129b293aeaf01 (diff)
downloadsphinx-git-218de39462798c8e102ff375b8ee9fb336537041.tar.gz
Fix testcases for singledispatch are sometimes failed
They are sometimes failed with python3.5 because the order of singledispatch functions is not stable on python 3.5. This uses comparision via "in" keyword to check the signature of singledispatch functions stably.
-rw-r--r--tests/test_ext_autodoc.py33
-rw-r--r--tests/test_ext_autodoc_autofunction.py29
2 files changed, 39 insertions, 23 deletions
diff --git a/tests/test_ext_autodoc.py b/tests/test_ext_autodoc.py
index c0676f23f..703cc13f6 100644
--- a/tests/test_ext_autodoc.py
+++ b/tests/test_ext_autodoc.py
@@ -1832,19 +1832,26 @@ def test_autodoc_for_egged_code(app):
def test_singledispatch(app):
options = {"members": None}
actual = do_autodoc(app, 'module', 'target.singledispatch', options)
- assert list(actual) == [
- '',
- '.. py:module:: target.singledispatch',
- '',
- '',
- '.. py:function:: func(arg, kwarg=None)',
- ' func(arg: int, kwarg=None)',
- ' func(arg: str, kwarg=None)',
- ' :module: target.singledispatch',
- '',
- ' A function for general use.',
- '',
- ]
+ if sys.version_info < (3, 6):
+ # check the result via "in" because the order of singledispatch signatures is
+ # usually changed (because dict is not OrderedDict yet!)
+ assert '.. py:function:: func(arg, kwarg=None)' in actual
+ assert ' func(arg: int, kwarg=None)' in actual
+ assert ' func(arg: str, kwarg=None)' in actual
+ else:
+ assert list(actual) == [
+ '',
+ '.. py:module:: target.singledispatch',
+ '',
+ '',
+ '.. py:function:: func(arg, kwarg=None)',
+ ' func(arg: int, kwarg=None)',
+ ' func(arg: str, kwarg=None)',
+ ' :module: target.singledispatch',
+ '',
+ ' A function for general use.',
+ '',
+ ]
@pytest.mark.skipif(sys.version_info < (3, 8),
diff --git a/tests/test_ext_autodoc_autofunction.py b/tests/test_ext_autodoc_autofunction.py
index bb292bc6a..1f68c0319 100644
--- a/tests/test_ext_autodoc_autofunction.py
+++ b/tests/test_ext_autodoc_autofunction.py
@@ -9,6 +9,8 @@
:license: BSD, see LICENSE for details.
"""
+import sys
+
import pytest
from test_ext_autodoc import do_autodoc
@@ -108,16 +110,23 @@ def test_decorated(app):
def test_singledispatch(app):
options = {}
actual = do_autodoc(app, 'function', 'target.singledispatch.func', options)
- assert list(actual) == [
- '',
- '.. py:function:: func(arg, kwarg=None)',
- ' func(arg: int, kwarg=None)',
- ' func(arg: str, kwarg=None)',
- ' :module: target.singledispatch',
- '',
- ' A function for general use.',
- '',
- ]
+ if sys.version_info < (3, 6):
+ # check the result via "in" because the order of singledispatch signatures is
+ # usually changed (because dict is not OrderedDict yet!)
+ assert '.. py:function:: func(arg, kwarg=None)' in actual
+ assert ' func(arg: int, kwarg=None)' in actual
+ assert ' func(arg: str, kwarg=None)' in actual
+ else:
+ assert list(actual) == [
+ '',
+ '.. py:function:: func(arg, kwarg=None)',
+ ' func(arg: int, kwarg=None)',
+ ' func(arg: str, kwarg=None)',
+ ' :module: target.singledispatch',
+ '',
+ ' A function for general use.',
+ '',
+ ]
@pytest.mark.sphinx('html', testroot='ext-autodoc')