https://github.com/sphinx-doc/sphinx/commit/8962398b761c3d85a7c74b6f789b3ffb127bde0c From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Date: Thu, 6 Mar 2025 16:03:44 +0000 Subject: [PATCH] autosummary: Update test for Python 3.14.0a5+ (#13418) `types.UnionType` and `typing.Union` have been merged. --- a/tests/test_extensions/test_ext_autosummary.py +++ b/tests/test_extensions/test_ext_autosummary.py @@ -447,8 +447,12 @@ def test_autosummary_generate_content_for_module_imported_members(app): ] assert context['functions'] == ['bar'] assert context['all_functions'] == ['_quux', 'bar'] - assert context['classes'] == ['Class', 'Foo'] - assert context['all_classes'] == ['Class', 'Foo', '_Baz'] + if sys.version_info >= (3, 14, 0, 'alpha', 5): + assert context['classes'] == ['Class', 'Foo', 'Union'] + assert context['all_classes'] == ['Class', 'Foo', 'Union', '_Baz'] + else: + assert context['classes'] == ['Class', 'Foo'] + assert context['all_classes'] == ['Class', 'Foo', '_Baz'] assert context['exceptions'] == ['Exc'] assert context['all_exceptions'] == ['Exc', '_Exc'] assert context['attributes'] == ['CONSTANT1', 'qux', 'quuz', 'non_imported_member'] https://github.com/sphinx-doc/sphinx/commit/e01e42f5fc738815b8499c4ede30c6caf130f0a4 From: Adam Turner <9087854+aa-turner@users.noreply.github.com> Date: Wed, 19 Mar 2025 20:11:35 +0000 Subject: [PATCH] Fix ``INVALID_BUILTIN_CLASSES`` test for Python 3.14.0a6+ --- a/tests/test_util/test_util_typing.py +++ b/tests/test_util/test_util_typing.py @@ -205,7 +205,7 @@ def test_is_invalid_builtin_class() -> None: zipfile.Path, zipfile.CompleteDirs, ) - if sys.version_info[:2] >= (3, 13): + if sys.version_info[:2] == (3, 13): invalid_types += ( # pathlib Path, @@ -217,7 +217,7 @@ def test_is_invalid_builtin_class() -> None: ) invalid_names = {(cls.__module__, cls.__qualname__) for cls in invalid_types} - if sys.version_info[:2] < (3, 13): + if sys.version_info[:2] != (3, 13): invalid_names |= { ('pathlib._local', 'Path'), ('pathlib._local', 'PosixPath'), @@ -231,7 +231,7 @@ def test_is_invalid_builtin_class() -> None: ('zipfile._path', 'Path'), ('zipfile._path', 'CompleteDirs'), } - assert _INVALID_BUILTIN_CLASSES.keys() == invalid_names + assert set(_INVALID_BUILTIN_CLASSES) == invalid_names def test_restify_type_hints_containers(): https://github.com/sphinx-doc/sphinx/commit/0227606e71dc765ed60cd0ad2c580a43b5ffca4f From: James Addison <55152140+jayaddison@users.noreply.github.com> Date: Mon, 12 May 2025 16:52:52 +0000 Subject: [PATCH] Fix tests for Python 3.14.0a7 (#13527) Authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com> Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com> Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com> --- a/tests/test_extensions/test_ext_autodoc.py +++ b/tests/test_extensions/test_ext_autodoc.py @@ -938,10 +938,14 @@ def test_autodoc_special_members(app): } if sys.version_info >= (3, 13, 0, 'alpha', 5): options['exclude-members'] = '__static_attributes__,__firstlineno__' + if sys.version_info >= (3, 14, 0, 'alpha', 7): + ann_attr_name = '__annotations_cache__' + else: + ann_attr_name = '__annotations__' actual = do_autodoc(app, 'class', 'target.Class', options) assert list(filter(lambda l: '::' in l, actual)) == [ '.. py:class:: Class(arg)', - ' .. py:attribute:: Class.__annotations__', + f' .. py:attribute:: Class.{ann_attr_name}', ' .. py:attribute:: Class.__dict__', ' .. py:method:: Class.__init__(arg)', ' .. py:attribute:: Class.__module__', --- a/tests/test_extensions/test_ext_autodoc_configs.py +++ b/tests/test_extensions/test_ext_autodoc_configs.py @@ -1348,6 +1348,10 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: # default options = {'members': None} actual = do_autodoc(app, 'module', 'target.autodoc_type_aliases', options) + if sys.version_info >= (3, 14, 0, 'alpha', 7): + attr2_typeinfo = () + else: + attr2_typeinfo = (' :type: int',) assert list(actual) == [ '', '.. py:module:: target.autodoc_type_aliases', @@ -1368,7 +1372,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: '', ' .. py:attribute:: Foo.attr2', ' :module: target.autodoc_type_aliases', - ' :type: int', + *attr2_typeinfo, '', ' docstring', '', @@ -1421,6 +1425,10 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: 'io.StringIO': 'my.module.StringIO', } actual = do_autodoc(app, 'module', 'target.autodoc_type_aliases', options) + if sys.version_info >= (3, 14, 0, 'alpha', 7): + attr2_typeinfo = () + else: + attr2_typeinfo = (' :type: myint',) assert list(actual) == [ '', '.. py:module:: target.autodoc_type_aliases', @@ -1441,7 +1449,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: '', ' .. py:attribute:: Foo.attr2', ' :module: target.autodoc_type_aliases', - ' :type: myint', + *attr2_typeinfo, '', ' docstring', '',