readthedocs / sphinx-autoapi

A new approach to API documentation in Sphinx.
https://sphinx-autoapi.readthedocs.io/
MIT License
415 stars 126 forks source link

2.1.0: pytest is failing in `tests/test_integration.py::TestExtensionErrors::test_extension_setup_errors[dotnetexample-override_conf2-AutoAPI` unit #381

Closed kloczek closed 1 year ago

kloczek commented 1 year ago

Here is pytest output:

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' ============================= test session starts ============================== platform linux -- Python 3.8.16, pytest-7.3.1, pluggy-1.0.0 rootdir: /home/tkloczko/rpmbuild/BUILD/sphinx-autoapi-2.1.0 collected 268 items tests/test_astroid_utils.py ............................................ [ 16%] ........................................................................ [ 43%] .................................................................. [ 67%] tests/test_domains.py ...... [ 70%] tests/test_integration.py .ss.....F [ 73%] tests/test_objects.py ....... [ 76%] tests/python/test_parser.py .......... [ 79%] tests/python/test_pyintegration.py ..................................... [ 93%] ................. [100%] =================================== FAILURES =================================== _ TestExtensionErrors.test_extension_setup_errors[dotnetexample-override_conf2-AutoAPI of type `dotnet` requires following packages to be installed and included in extensions list: sphinxcontrib.dotnetdomain (available as "sphinxcontrib-dotnetdomain" on PyPI)] _ self = proj_name = 'dotnetexample' override_conf = {'autoapi_type': 'dotnet', 'extensions': ['autoapi.extension']} err_msg = 'AutoAPI of type `dotnet` requires following packages to be installed and included in extensions list: sphinxcontrib.dotnetdomain (available as "sphinxcontrib-dotnetdomain" on PyPI)' @pytest.mark.parametrize( "proj_name, override_conf, err_msg", [ ( "toctreeexample", {"autoapi_type": "INVALID VALUE"}, ( "Invalid autoapi_type setting, following values are " 'allowed: "dotnet", "go", "javascript", "python"' ), ), ( "goexample", {"autoapi_type": "go", "extensions": ["autoapi.extension"]}, ( "AutoAPI of type `go` requires following " "packages to be installed and included in extensions list: " "sphinxcontrib.golangdomain (available as " '"sphinxcontrib-golangdomain" on PyPI)' ), ), ( "dotnetexample", {"autoapi_type": "dotnet", "extensions": ["autoapi.extension"]}, ( "AutoAPI of type `dotnet` requires following " "packages to be installed and included in extensions list: " "sphinxcontrib.dotnetdomain (available as " '"sphinxcontrib-dotnetdomain" on PyPI)' ), ), ], ) def test_extension_setup_errors(self, proj_name, override_conf, err_msg): with pytest.raises(ExtensionError) as err_info: with sphinx_build(proj_name, override_conf): pass > assert str(err_info.value) == err_msg E assert 'AutoAPI Dire...irs` setting.' == 'AutoAPI of t...ain" on PyPI)' E - AutoAPI of type `dotnet` requires following packages to be installed and included in extensions list: sphinxcontrib.dotnetdomain (available as "sphinxcontrib-dotnetdomain" on PyPI) E + AutoAPI Directory `/home/tkloczko/rpmbuild/BUILD/sphinx-autoapi-2.1.0/tests/dotnetexample/example/Identity/src` not found. Please check your `autoapi_dirs` setting. tests/test_integration.py:172: AssertionError ----------------------------- Captured stdout call ----------------------------- Running Sphinx v6.1.3 making output directory... done ----------------------------- Captured stderr call ----------------------------- sh: line 1: git: command not found WARNING: while setting up extension sphinx.addnodes: node class 'toctree' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_signature' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_signature_line' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_content' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_inline' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_name' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_addname' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_type' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_returns' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_parameterlist' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_parameter' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_optional' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_annotation' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_space' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_name' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_operator' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_punctuation' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_keyword' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_keyword_type' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_number' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_string' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'desc_sig_literal_char' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'versionmodified' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'seealso' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'productionlist' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'production' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'index' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'centered' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'acks' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'hlist' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'hlistcol' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'compact_paragraph' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'glossary' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'only' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'start_of_file' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'highlightlang' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'tabular_col_spec' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'pending_xref' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'number_reference' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'download_reference' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'literal_emphasis' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'literal_strong' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.addnodes: node class 'manpage' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.domains.changeset: directive 'deprecated' is already registered, it will be overridden WARNING: while setting up extension sphinx.domains.changeset: directive 'versionadded' is already registered, it will be overridden WARNING: while setting up extension sphinx.domains.changeset: directive 'versionchanged' is already registered, it will be overridden WARNING: while setting up extension sphinx.domains.index: directive 'index' is already registered, it will be overridden WARNING: while setting up extension sphinx.domains.index: role 'index' is already registered, it will be overridden WARNING: while setting up extension sphinx.domains.math: role 'eq' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapifunction' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapiproperty' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapidecorator' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapiclass' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapimethod' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapidata' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapiattribute' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapimodule' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapiexception' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'automodule' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoclass' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoexception' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autodata' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autofunction' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autodecorator' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'automethod' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoattribute' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoproperty' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autosummary: node class 'autosummary_toc' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.ext.autosummary: node class 'autosummary_table' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.ext.autosummary: directive 'autosummary' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.autosummary: role 'autolink' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.graphviz: node class 'graphviz' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.ext.graphviz: directive 'graphviz' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.graphviz: directive 'graph' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.graphviz: directive 'digraph' is already registered, it will be overridden WARNING: while setting up extension sphinx.ext.inheritance_diagram: node class 'inheritance_diagram' is already registered, its visitors will be overridden WARNING: while setting up extension sphinx.ext.inheritance_diagram: directive 'inheritance-diagram' is already registered, it will be overridden WARNING: while setting up extension autoapi.extension: directive 'autoapi-inheritance-diagram' is already registered, it will be overridden =============================== warnings summary =============================== tests/test_domains.py::TestDotNetSphinxMapper::test_get_objects /home/tkloczko/rpmbuild/BUILD/sphinx-autoapi-2.1.0/tests/test_domains.py:97: RemovedInSphinx80Warning: The alias 'sphinx.util.status_iterator' is deprecated, use 'sphinx.util.display.status_iterator' instead. Check CHANGES for Sphinx API modifications. dom.map() tests/test_integration.py::TestJavaScript::test_integration tests/test_integration.py::TestJavaScript::test_integration /usr/lib64/python3.8/importlib/__init__.py:127: RemovedInSphinx80Warning: The alias 'sphinx.util.progress_message' is deprecated, use 'sphinx.util.display.progress_message' instead. Check CHANGES for Sphinx API modifications. return _bootstrap._gcd_import(name[level:], package, level) tests/test_integration.py: 4 warnings tests/python/test_pyintegration.py: 35 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/extension.py:148: RemovedInSphinx80Warning: The alias 'sphinx.util.status_iterator' is deprecated, use 'sphinx.util.display.status_iterator' instead. Check CHANGES for Sphinx API modifications. if sphinx_mapper_obj.load( tests/test_integration.py::TestJavaScript::test_integration /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/extension.py:151: RemovedInSphinx80Warning: The alias 'sphinx.util.status_iterator' is deprecated, use 'sphinx.util.display.status_iterator' instead. Check CHANGES for Sphinx API modifications. sphinx_mapper_obj.map(options=app.config.autoapi_options) tests/test_integration.py: 4 warnings tests/python/test_pyintegration.py: 35 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/extension.py:154: RemovedInSphinx80Warning: The alias 'sphinx.util.status_iterator' is deprecated, use 'sphinx.util.display.status_iterator' instead. Check CHANGES for Sphinx API modifications. sphinx_mapper_obj.output_rst(root=normalized_root, source_suffix=out_suffix) tests/test_integration.py: 4 warnings tests/python/test_pyintegration.py: 31 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/extension.py:188: PendingDeprecationWarning: nodes.Node.traverse() is obsoleted by Node.findall(). nodes = list(doctree.traverse(toctree)) tests/test_integration.py: 3 warnings tests/python/test_pyintegration.py: 125 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/parser.py:240: DeprecationWarning: The 'Module.doc' attribute is deprecated, use 'Module.doc_node' instead. "doc": _prepare_docstring(node.doc or ""), tests/test_integration.py: 3 warnings tests/python/test_parser.py: 3 warnings tests/python/test_pyintegration.py: 607 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/astroid_utils.py:596: DeprecationWarning: The 'FunctionDef.doc' attribute is deprecated, use 'FunctionDef.doc_node' instead. doc = node.doc tests/test_integration.py: 3 warnings tests/python/test_pyintegration.py: 35 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/mapper.py:343: RemovedInSphinx80Warning: The alias 'sphinx.util.status_iterator' is deprecated, use 'sphinx.util.display.status_iterator' instead. Check CHANGES for Sphinx API modifications. super().map(options) tests/python/test_pyintegration.py: 191 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/astroid_utils.py:623: DeprecationWarning: The 'ClassDef.doc' attribute is deprecated, use 'ClassDef.doc_node' instead. doc = node.doc tests/python/test_pyintegration.py: 23 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/astroid_utils.py:633: DeprecationWarning: The 'ClassDef.doc' attribute is deprecated, use 'ClassDef.doc_node' instead. if base.doc is not None: tests/python/test_pyintegration.py: 17 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/astroid_utils.py:634: DeprecationWarning: The 'ClassDef.doc' attribute is deprecated, use 'ClassDef.doc_node' instead. return base.doc tests/python/test_pyintegration.py: 14 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/astroid_utils.py:610: DeprecationWarning: The 'FunctionDef.doc' attribute is deprecated, use 'FunctionDef.doc_node' instead. and child.doc is not None tests/python/test_pyintegration.py: 14 warnings /home/tkloczko/rpmbuild/BUILDROOT/python-sphinx-autoapi-2.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/autoapi/mappers/python/astroid_utils.py:612: DeprecationWarning: The 'FunctionDef.doc' attribute is deprecated, use 'FunctionDef.doc_node' instead. return child.doc -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [1] tests/test_integration.py:65: golangdomain extension does not support sphinx >=3 SKIPPED [1] tests/test_integration.py:91: dotnetdomain extension does not support sphinx >=3 FAILED tests/test_integration.py::TestExtensionErrors::test_extension_setup_errors[dotnetexample-override_conf2-AutoAPI of type `dotnet` requires following packages to be installed and included in extensions list: sphinxcontrib.dotnetdomain (available as "sphinxcontrib-dotnetdomain" on PyPI)] =========== 1 failed, 265 passed, 2 skipped, 1155 warnings in 11.68s =========== ```

Looks like sphinxcontrib-dotnetdomain is no longer maintained https://github.com/readthedocs/sphinxcontrib-dotnetdomain

AWhetter commented 1 year ago

The tests are definitely working. You can see them passing here: https://github.com/readthedocs/sphinx-autoapi/actions Maybe there's a difference in your setup that's causing the issue? But dotnet support is being removed soon anyway so I'm going to close this as something that doesn't need attention.