From b1390c4191319e75d14ce3e6e73ef43c31d981b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Wed, 5 Oct 2022 15:44:41 +0200 Subject: [PATCH] Fix detection for out of date files (#9360) Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> --- CHANGES | 2 ++ sphinx/builders/__init__.py | 2 +- tests/test_build_html.py | 2 -- tests/test_build_latex.py | 2 +- tests/test_build_manpage.py | 2 +- tests/test_build_texinfo.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGES b/CHANGES index fee65b9390f..4371efa40d4 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,8 @@ Features added ``:option:`--module[=foobar]``` or ``:option:`--module foobar```. Patch by Martin Liska. * #10881: autosectionlabel: Record the generated section label to the debug log. +* #9360: Fix caching for now-outdated files for some builders (e.g. manpage) + when there is no change in source files. Patch by Martin Liska. Bugs fixed ---------- diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py index e70d1956c98..6ca77c4bc2b 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -347,7 +347,7 @@ def build( with progress_message(__('checking consistency')): self.env.check_consistency() else: - if method == 'update' and not docnames: + if method == 'update' and (not docnames or docnames == ['__all__']): logger.info(bold(__('no targets are out of date.'))) return diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 138f8a9c129..0d19de4cae7 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -633,7 +633,6 @@ def test_tocdepth(app, cached_etree_parse, fname, expect): ], })) @pytest.mark.sphinx('singlehtml', testroot='tocdepth') -@pytest.mark.test_params(shared_result='test_build_html_tocdepth') def test_tocdepth_singlehtml(app, cached_etree_parse, fname, expect): app.build() check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect) @@ -1138,7 +1137,6 @@ def test_numfig_with_secnum_depth(app, cached_etree_parse, fname, expect): ], })) @pytest.mark.sphinx('singlehtml', testroot='numfig', confoverrides={'numfig': True}) -@pytest.mark.test_params(shared_result='test_build_html_numfig_on') def test_numfig_with_singlehtml(app, cached_etree_parse, fname, expect): app.build() check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect) diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index 8f7a2e85acc..efdbcb29878 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -1604,7 +1604,7 @@ def test_latex_container(app, status, warning): @pytest.mark.sphinx('latex', testroot='reST-code-role') def test_latex_code_role(app): - app.build() + app.build(force_all=True) content = (app.outdir / 'python.tex').read_text() common_content = ( diff --git a/tests/test_build_manpage.py b/tests/test_build_manpage.py index 8509684d179..6c34e1771d5 100644 --- a/tests/test_build_manpage.py +++ b/tests/test_build_manpage.py @@ -42,7 +42,7 @@ def test_man_pages_empty_description(app, status, warning): @pytest.mark.sphinx('man', testroot='basic', confoverrides={'man_make_section_directory': True}) def test_man_make_section_directory(app, status, warning): - app.build() + app.build(force_all=True) assert (app.outdir / 'man1' / 'python.1').exists() diff --git a/tests/test_build_texinfo.py b/tests/test_build_texinfo.py index b33a7e01fc3..c60dd994b7c 100644 --- a/tests/test_build_texinfo.py +++ b/tests/test_build_texinfo.py @@ -60,7 +60,7 @@ def test_texinfo(app, status, warning): @pytest.mark.sphinx('texinfo', testroot='markup-rubric') def test_texinfo_rubric(app, status, warning): - app.build() + app.build(force_all=True) output = (app.outdir / 'python.texi').read_text(encoding='utf8') assert '@heading This is a rubric' in output