domdfcoding / enum_tools

Tools to expand Python's enum module.
https://enum-tools.readthedocs.io/en/latest
GNU Lesser General Public License v3.0
8 stars 7 forks source link

0.9.0.post1: pytest is failing #71

Open kloczek opened 2 years ago

kloczek commented 2 years ago

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

On first looks looks like `enum_tools needs to be adapoed for latest sphix. Here is pytest output:

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-enum-tools-0.9.0.post1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-enum-tools-0.9.0.post1-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra =========================================================================== test session starts ============================================================================ platform linux -- Python 3.8.14, pytest-7.1.3, pluggy-1.0.0 Test session started at 10:09:12 rootdir: /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1, configfile: tox.ini plugins: datadir-1.3.1, regressions-2.4.1, timeout-2.1.0 timeout: 300.0s timeout method: signal timeout func_only: False collected 69 items tests/test_autoenum.py .........FFF [ 17%] tests/test_documented_enum.py .............................. [ 60%] tests/test_enums.py ........ [ 72%] tests/test_utils.py ................... [100%] ================================================================================= FAILURES ================================================================================= __________________________________________________________________________ test_index[index.html] __________________________________________________________________________ page =
html_regression = @pytest.mark.parametrize( "page", [ "index.html", ], indirect=True ) def test_index(page: BeautifulSoup, html_regression: HTMLRegressionFixture): # Make sure the page title is what you expect title = page.find("h1").contents[0].strip() assert "autoenum Demo" == title preprocess_soup(page) > html_regression.check(page, jinja2=True) E AssertionError: FILES DIFFER: E /tmp/pytest-of-tkloczko/pytest-48/test_index_index_html_0/test_autoenum_/test_index_index_html_.html E /tmp/pytest-of-tkloczko/pytest-48/test_index_index_html_0/test_autoenum_/test_index_index_html_.obtained.html E HTML DIFF: /tmp/pytest-of-tkloczko/pytest-48/test_index_index_html_0/test_autoenum_/test_index_index_html_.obtained.diff.html E --- E +++ E @@ -1,8 +1,9 @@ E E - E + E E E E + E E autoenum Demo — Python documentation E E @@ -11,6 +12,8 @@ E E E + E E @@ -21,12 +24,12 @@ E
E
E
E -
E +
E E E

E autoenum Demo E - E + E ¶ E E

E @@ -63,6 +66,9 @@ E
E
E Member Type E + E + : E + E
E
E

E @@ -241,6 +247,9 @@ E

E
E Member Type E + E + : E + E
E
E

E @@ -330,7 +339,7 @@ E E E

E -
E + E
E
E
tests/test_autoenum.py:97: AssertionError ------------------------------------------------------------------------- Captured stdout teardown ------------------------------------------------------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-tkloczko/pytest-48/root # outdir: /tmp/pytest-of-tkloczko/pytest-48/root/_build/html # status: Running Sphinx v5.1.1 loading pickled environment... done building [mo]: targets for 0 po files that are out of date building [html]: targets for 0 source files that are out of date updating environment: 0 added, 0 changed, 0 removed looking for now-outdated files... none found no targets are out of date. build succeeded. The HTML pages are in ../../../../../tmp/pytest-of-tkloczko/pytest-48/root/_build/html. # warning: ___________________________________________________________________________ test_flag[flag.html] ___________________________________________________________________________ page = html_regression = @pytest.mark.parametrize( "page", [ "flag.html", ], indirect=True ) def test_flag(page: BeautifulSoup, html_regression: HTMLRegressionFixture): # Make sure the page title is what you expect title = page.find("h1").contents[0].strip() assert "autoenum Demo - Flag" == title preprocess_soup(page) > html_regression.check(page, jinja2=True) E AssertionError: FILES DIFFER: E /tmp/pytest-of-tkloczko/pytest-48/test_flag_flag_html_0/test_autoenum_/test_flag_flag_html_.html E /tmp/pytest-of-tkloczko/pytest-48/test_flag_flag_html_0/test_autoenum_/test_flag_flag_html_.obtained.html E HTML DIFF: /tmp/pytest-of-tkloczko/pytest-48/test_flag_flag_html_0/test_autoenum_/test_flag_flag_html_.obtained.diff.html E --- E +++ E @@ -1,8 +1,9 @@ E E - E + E E E E + E E autoenum Demo - Flag — Python documentation E E @@ -11,6 +12,8 @@ E E E + E E @@ -21,10 +24,10 @@ E
E
E
E -
E +
E

E autoenum Demo - Flag E - E + E ¶ E E

E @@ -61,6 +64,9 @@ E
E
E Member Type E + E + : E + E
E
E

E @@ -193,6 +199,9 @@ E

E
E Member Type E + E + : E + E
E
E

E @@ -290,7 +299,7 @@ E

E
E
E -
E + E
E
E
tests/test_autoenum.py:195: AssertionError ------------------------------------------------------------------------- Captured stdout teardown ------------------------------------------------------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-tkloczko/pytest-48/root # outdir: /tmp/pytest-of-tkloczko/pytest-48/root/_build/html # status: Running Sphinx v5.1.1 loading pickled environment... done building [mo]: targets for 0 po files that are out of date building [html]: targets for 0 source files that are out of date updating environment: 0 added, 0 changed, 0 removed looking for now-outdated files... none found no targets are out of date. build succeeded. The HTML pages are in ../../../../../tmp/pytest-of-tkloczko/pytest-48/root/_build/html. # warning: __________________________________________________________________ test_no_member_doc[no-member-doc.html] __________________________________________________________________ page = html_regression = @pytest.mark.parametrize( "page", [ "no-member-doc.html", ], indirect=True ) def test_no_member_doc(page: BeautifulSoup, html_regression: HTMLRegressionFixture): # Make sure the page title is what you expect title = page.find("h1").contents[0].strip() assert "autoenum Demo - Members without docstrings" == title preprocess_soup(page) > html_regression.check(page, jinja2=True) E AssertionError: FILES DIFFER: E /tmp/pytest-of-tkloczko/pytest-48/test_no_member_doc_no_member_d0/test_autoenum_/test_no_member_doc_no_member_doc_html_.html E /tmp/pytest-of-tkloczko/pytest-48/test_no_member_doc_no_member_d0/test_autoenum_/test_no_member_doc_no_member_doc_html_.obtained.html E HTML DIFF: /tmp/pytest-of-tkloczko/pytest-48/test_no_member_doc_no_member_d0/test_autoenum_/test_no_member_doc_no_member_doc_html_.obtained.diff.html E --- E +++ E @@ -1,8 +1,9 @@ E E - E + E E E E + E E autoenum Demo - Members without docstrings — Python documentation E E @@ -11,6 +12,8 @@ E E E + E E @@ -21,10 +24,10 @@ E
E
E
E -
E +
E

E autoenum Demo - Members without docstrings E - E + E ¶ E E

E @@ -61,6 +64,9 @@ E
E
E Member Type E + E + : E + E
E
E

E @@ -127,7 +133,7 @@ E E E

E -
E + E
E
E
tests/test_autoenum.py:280: AssertionError ------------------------------------------------------------------------- Captured stdout teardown ------------------------------------------------------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-tkloczko/pytest-48/root # outdir: /tmp/pytest-of-tkloczko/pytest-48/root/_build/html # status: Running Sphinx v5.1.1 loading pickled environment... done building [mo]: targets for 0 po files that are out of date building [html]: targets for 0 source files that are out of date updating environment: 0 added, 0 changed, 0 removed looking for now-outdated files... none found no targets are out of date. build succeeded. The HTML pages are in ../../../../../tmp/pytest-of-tkloczko/pytest-48/root/_build/html. # warning: =========================================================================== slowest 25 durations =========================================================================== 0.40s call tests/test_autoenum.py::test 0.14s setup tests/test_autoenum.py::test 0.05s setup tests/test_autoenum.py::test_index[index.html] 0.04s setup tests/test_autoenum.py::test_flag[flag.html] 0.04s call tests/test_autoenum.py::test_index[index.html] 0.04s setup tests/test_autoenum.py::test_no_member_doc[no-member-doc.html] 0.03s call tests/test_autoenum.py::test_flag[flag.html] 0.02s call tests/test_autoenum.py::test_no_member_doc[no-member-doc.html] (17 durations < 0.005s hidden. Use -vv to show these durations.) ========================================================================= short test summary info ========================================================================== FAILED tests/test_autoenum.py::test_index[index.html] - AssertionError: FILES DIFFER: FAILED tests/test_autoenum.py::test_flag[flag.html] - AssertionError: FILES DIFFER: FAILED tests/test_autoenum.py::test_no_member_doc[no-member-doc.html] - AssertionError: FILES DIFFER: ======================================================================= 3 failed, 66 passed in 1.13s ======================================================================= ```

Here is list of installed modules in build env

```console Package Version ----------------------------- ----------------- alabaster 0.7.12 apeye 1.2.0 appdirs 1.4.4 attrs 22.1.0 autodocsumm 0.2.9 Babel 2.10.2 beautifulsoup4 4.11.1 Brlapi 0.8.3 build 0.8.0 CacheControl 0.12.11 cffi 1.15.1 charset-normalizer 2.1.0 click 8.1.3 codespell 2.1.0 coincidence 0.6.2 consolekit 1.4.1 cryptography 36.0.2 cssselect 1.1.0 cssutils 2.6.0 default-values 0.5.1 deprecation 2.1.0 deprecation-alias 0.3.1 dict2css 0.3.0 dist-meta 0.5.0 distro 1.7.0 dnspython 2.2.1 docutils 0.18.1 dom_toml 0.6.0 domdf-python-tools 3.3.0 extras 1.0.0 extras-require 0.4.3 fixtures 4.0.0 gpg 1.17.1-unknown handy-archives 0.1.2 html-section 0.2.0.post1 html5lib 1.1 idna 3.4 imagesize 1.4.1 importlib-metadata 4.12.0 iniconfig 1.1.1 Jinja2 3.1.1 libcomps 0.1.19 lockfile 0.12.2 louis 3.23.0 lxml 4.9.1 Markdown 3.4.1 MarkupSafe 2.1.1 mistletoe 0.9.0 msgpack 1.0.4 natsort 8.0.2 numpy 1.23.1 packaging 21.3 pbr 5.9.0 pep517 0.12.0 pip 22.2.2 platformdirs 2.5.2 pluggy 1.0.0 ply 3.11 py 1.11.0 pyasn1 0.4.8 pychoosealicense 2022.7.25 pycparser 2.21 Pygments 2.13.0 PyGObject 3.42.2 pyparsing 3.0.9 pypi-json 0.3.0 pyproject-parser 0.5.0 pytest 7.1.3 pytest-datadir 1.3.1 pytest-regressions 2.4.1 pytest-timeout 2.1.0 python-dateutil 2.8.2 python-frontmatter 1.0.0 pytz 2022.1 PyYAML 6.0 requests 2.28.1 rpm 4.17.0 ruamel.yaml 0.17.21 ruamel.yaml.clib 0.2.6 scour 0.38.2 seed-intersphinx-mapping 1.1.0 setuptools 65.3.0 shippinglabel 1.4.1 six 1.16.0 snowballstemmer 2.2.0 soupsieve 2.3.2.post1 Sphinx 5.1.1 sphinx-autodoc-typehints 1.19.2 sphinx-copybutton 0.5.0 sphinx-debuginfo 0.2.2 sphinx-jinja2-compat 0.2.0 sphinx-licenseinfo 0.3.1 sphinx-notfound-page 0.8 sphinx-prompt 1.4.0 sphinx-pyproject 0.1.0 sphinx-tabs 3.4.1 sphinx-toolbox 3.2.0 sphinxcontrib-applehelp 1.0.2.dev20220730 sphinxcontrib-devhelp 1.0.2.dev20220730 sphinxcontrib-htmlhelp 2.0.0 sphinxcontrib-jsmath 1.0.1.dev20220730 sphinxcontrib-qthelp 1.0.3.dev20220730 sphinxcontrib-serializinghtml 1.1.5 sphinxemoji 0.2.0 tabulate 0.8.10 testtools 2.5.0 toctree-plus 0.6.0 toml 0.10.2 tomli 2.0.1 typing_extensions 4.3.0 urllib3 1.26.12 webencodings 0.5.1 wheel 0.37.1 whey 0.0.23 zipp 3.8.1 ```
kloczek commented 1 year ago

Gentle ping .. 🤔 Looks like with above units in --deselect list now heas been exposed that enum-tools is not ready for sphinx 6.1.3

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-enum-tools-0.9.0.post1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-enum-tools-0.9.0.post1-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' --deselect 'tests/test_autoenum.py::test_index[index.html]' --deselect 'tests/test_autoenum.py::test_flag[flag.html]' --deselect 'tests/test_autoenum.py::test_no_member_doc[no-member-doc.html]' ============================= test session starts ============================== platform linux -- Python 3.8.16, pytest-7.2.2, pluggy-1.0.0 Test session started at 06:44:16 rootdir: /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1, configfile: tox.ini plugins: datadir-1.4.1, regressions-2.4.2, timeout-2.1.0 timeout: 300.0s timeout method: signal timeout func_only: False collected 57 items / 1 error ==================================== ERRORS ==================================== ___________________ ERROR collecting tests/test_autoenum.py ____________________ tests/test_autoenum.py:18: in from enum_tools.autoenum import EnumDocumenter enum_tools/autoenum.py:80: in from sphinx.util.typing import stringify as stringify_typehint # nodep /usr/lib/python3.8/site-packages/sphinx/deprecation.py:46: in __getattr__ warnings.warn(f"The alias '{self._modname}.{name}' is deprecated, " E sphinx.deprecation.RemovedInSphinx80Warning: The alias 'sphinx.util.typing.stringify' is deprecated, use 'sphinx.util.typing.stringify_annotation' instead. Check CHANGES for Sphinx API modifications. =========================== short test summary info ============================ ERROR tests/test_autoenum.py - sphinx.deprecation.RemovedInSphinx80Warning: The alias 'sphinx.util.typing.... !!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!! =============================== 1 error in 0.31s =============================== ```
kloczek commented 1 year ago

And enum-tools documentation is not ready as well for sphinx 6.x

```console + /usr/bin/sphinx-build -n -T -b man doc-source build/sphinx/man Running Sphinx v6.1.3 making output directory... done WARNING: Unable to determine documentation url for project pygments [autosummary] generating autosummary for: 404.rst, Source.rst, api/autoenum.rst, api/custom_enums.rst, api/documentation.rst, api/utils.rst, contributing.rst, index.rst, license.rst loading intersphinx inventory from https://docs.python.org/3/objects.inv... loading intersphinx inventory from https://www.sphinx-doc.org/en/stable/objects.inv... loading intersphinx inventory from https://typing.readthedocs.io/en/latest/objects.inv... intersphinx inventory has moved: https://www.sphinx-doc.org/en/stable/objects.inv -> https://www.sphinx-doc.org/en/master/objects.inv building [mo]: targets for 0 po files that are out of date writing output... building [man]: all manpages updating environment: [new config] 9 added, 1 changed, 0 removed reading sources... [ 11%] 404 reading sources... [ 22%] Source reading sources... [ 33%] api/autoenum reading sources... [ 44%] api/custom_enums reading sources... [ 55%] api/documentation reading sources... [ 66%] api/utils reading sources... [ 77%] contributing reading sources... [ 88%] index reading sources... [100%] license /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1/enum_tools/autoenum.py:docstring of enum_tools.autoenum:1: ERROR: Unknown directive type "autosummary-widths". .. autosummary-widths:: 55/100 /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1/enum_tools/autoenum.py:docstring of enum_tools.autoenum:1: ERROR: Unknown directive type "autosummary-widths". .. autosummary-widths:: 40/100 /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1/doc-source/api/custom_enums.rst:5: ERROR: Unknown directive type "autosummary-widths". .. autosummary-widths:: 30/100 /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1/doc-source/api/documentation.rst:6: ERROR: Unknown directive type "autosummary-widths". .. autosummary-widths:: 35/100 /home/tkloczko/rpmbuild/BUILD/enum_tools-0.9.0.post1/doc-source/api/utils.rst:5: ERROR: Unknown directive type "autosummary-widths". .. autosummary-widths:: 35/100 Traceback (most recent call last): File "/usr/lib/python3.8/site-packages/sphinx/cmd/build.py", line 284, in build_main app.build(args.force_all, args.filenames) File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 347, in build self.builder.build_update() File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 308, in build_update self.build(['__all__'], to_build) File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 327, in build updated_docnames = set(self.read()) File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 434, in read self._read_serial(docnames) File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 455, in _read_serial self.read_doc(docname) File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 511, in read_doc publisher.publish() File "/usr/lib/python3.8/site-packages/docutils/core.py", line 224, in publish self.document = self.reader.read(self.source, self.parser, File "/usr/lib/python3.8/site-packages/sphinx/io.py", line 105, in read self.parse() File "/usr/lib/python3.8/site-packages/docutils/readers/__init__.py", line 76, in parse self.parser.parse(self.input, document) File "/usr/lib/python3.8/site-packages/sphinxcontrib/default_values/__init__.py", line 340, in parse super().parse(inputstring, document) File "/usr/lib/python3.8/site-packages/sphinx/parsers.py", line 80, in parse self.statemachine.run(inputlines, document, inliner=self.inliner) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 169, in run results = StateMachineWS.run(self, input_lines, input_offset, File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 3024, in text self.section(title.lstrip(), source, style, lineno + 1, messages) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section self.new_subsection(title, lineno, messages) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection newabsoffset = self.nested_parse( File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse state_machine.run(block, input_offset, memo=self.memo, File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2357, in explicit_markup self.explicit_list(blank_finish) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2382, in explicit_list newline_offset, blank_finish = self.nested_list_parse( File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 316, in nested_list_parse state_machine.run(block, input_offset, memo=self.memo, File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run results = StateMachineWS.run(self, input_lines, input_offset) File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run context, next_state, result = self.check_line( File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line return method(match, context, next_state) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2660, in explicit_markup nodelist, blank_finish = self.explicit_construct(match) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct return method(self, expmatch) File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2104, in directive return self.run_directive( File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive result = directive_instance.run() File "/usr/lib/python3.8/site-packages/sphinx_licenseinfo/__init__.py", line 99, in run distro = get_distribution(self.options["py"]) File "/usr/lib/python3.8/site-packages/dist_meta/distributions.py", line 591, in get_distribution raise DistributionNotFoundError(name) dist_meta.distributions.DistributionNotFoundError: enum_tools Exception occurred: File "/usr/lib/python3.8/site-packages/dist_meta/distributions.py", line 591, in get_distribution raise DistributionNotFoundError(name) dist_meta.distributions.DistributionNotFoundError: enum_tools The full traceback has been saved in /tmp/sphinx-err-u4vz5myg.log, if you want to report the issue to the developers. Please also report this if it was a user error, so that a better error message can be provided next time. A bug report can be filed in the tracker at . Thanks! ```