Skip to content

Test regression with click >= 8.2.0 #186

Closed
@mgorny

Description

@mgorny

The test suite is failing after upgrading click to 8.2.1:

$ uv venv -p 3.13
Using CPython 3.13.3 interpreter at: /usr/bin/python3.13
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv pip install --group dev -e .
Resolved 52 packages in 655ms
      Built mkdocs-git-revision-date-localized-plugin @ file:///tmp/mkdocs-git-revision-date-localized-plugin
Prepared 1 package in 682ms
░░░░░░░░░░░░░░░░░░░░ [0/52] Installing wheels...                                                                                       warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
         If the cache and target directories are on different filesystems, hardlinking may not be supported.
         If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 52 packages in 247ms
 + babel==2.17.0
 + backrefs==5.8
 + certifi==2025.4.26
 + charset-normalizer==3.4.2
 + click==8.2.1
 + codecov==2.1.13
 + colorama==0.4.6
 + coverage==7.8.2
 + ghp-import==2.1.0
 + gitdb==4.0.12
 + gitpython==3.1.44
 + idna==3.10
 + iniconfig==2.1.0
 + jinja2==3.1.6
 + markdown==3.7
 + markdown-graphviz-inline==1.1.3
 + markupsafe==3.0.2
 + mdx-truly-sane-lists==1.3
 + mergedeep==1.3.4
 + mkdocs==1.6.1
 + mkdocs-gen-files==0.5.0
 + mkdocs-get-deps==0.2.0
 + mkdocs-git-authors-plugin==0.9.5
 + mkdocs-git-revision-date-localized-plugin==1.4.6 (from file:///tmp/mkdocs-git-revision-date-localized-plugin)
 + mkdocs-material==9.6.8
 + mkdocs-material-extensions==1.3.1
 + mkdocs-monorepo-plugin==1.1.0
 + mkdocs-redirects==1.2.2
 + mkdocs-static-i18n==1.3.0
 + mkdocs-techdocs-core==1.5.4
 + packaging==25.0
 + paginate==0.5.7
 + pathspec==0.12.1
 + plantuml-markdown==3.11.1
 + platformdirs==4.3.8
 + pluggy==1.6.0
 + pygments==2.19.1
 + pymdown-extensions==10.14.3
 + pytest==8.3.5
 + pytest-cov==6.1.1
 + python-dateutil==2.9.0.post0
 + python-slugify==8.0.4
 + pytz==2025.2
 + pyyaml==6.0.2
 + pyyaml-env-tag==1.1
 + requests==2.32.3
 + ruff==0.11.11
 + six==1.17.0
 + smmap==5.0.2
 + text-unidecode==1.3
 + urllib3==2.4.0
 + watchdog==6.0.0
$ .venv/bin/pytest 
========================================================= test session starts =========================================================
platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.6.0
rootdir: /tmp/mkdocs-git-revision-date-localized-plugin
configfile: pyproject.toml
plugins: cov-6.1.1
collected 43 items                                                                                                                    

tests/test_builds.py ..........s...s..ssss........F...s....                                                                     [ 88%]
tests/test_dates.py .                                                                                                           [ 90%]
tests/test_exclude.py .                                                                                                         [ 93%]
tests/test_parse_git_ignore_revs.py ...                                                                                         [100%]

============================================================== FAILURES ===============================================================
______________ test_type_unknown[i18n/mkdocs_wrong_order.yml-should be defined after the i18n plugin in your mkdocs.yml] ______________

mkdocs_file = 'i18n/mkdocs_wrong_order.yml', error = 'should be defined after the i18n plugin in your mkdocs.yml'
tmp_path = PosixPath('/tmp/pytest-of-mgorny/pytest-4/test_type_unknown_i18n_mkdocs_0')

    @pytest.mark.parametrize("mkdocs_file, error", INVALID_MKDOCS_FILES)
    def test_type_unknown(mkdocs_file, error, tmp_path):
        """
        Make sure invalid mkdocs.yml specification raise the correct errors.
        """
        testproject_path = setup_clean_mkdocs_folder(
            mkdocs_yml_path=f"tests/fixtures/{mkdocs_file}",  # mkdocs_file, # tmp_path, ,
            output_path=tmp_path,
        )
        # Setup git commit history
        assert not os.path.exists(str(testproject_path / ".git"))
        testproject_path = str(testproject_path)
    
        repo = git.Repo.init(testproject_path, bare=False)
        author = "Test Person <[email protected]>"
    
        with working_directory(testproject_path):
            # page_with_tags contains tags we replace and test
            repo.git.add(".")
            repo.git.commit(message="add all", author=author, date="1500854705")  # Mon Jul 24 2017 00:05:05 GMT+0000
    
        result = build_docs_setup(testproject_path)
        assert result.exit_code == 1
    
>       assert error in result.stdout or error in str(result.exc_info[0])
E       assert ('should be defined after the i18n plugin in your mkdocs.yml' in '' or 'should be defined after the i18n plugin in your mkdocs.yml' in "<class 'SystemExit'>")
E        +  where '' = <Result SystemExit(1)>.stdout
E        +  and   "<class 'SystemExit'>" = str(<class 'SystemExit'>)

tests/test_builds.py:541: AssertionError
======================================================= short test summary info =======================================================
FAILED tests/test_builds.py::test_type_unknown[i18n/mkdocs_wrong_order.yml-should be defined after the i18n plugin in your mkdocs.yml] - assert ('should be defined after the i18n plugin in your mkdocs.yml' in '' or 'should be defined after the i18n plugin in your mkd...
============================================== 1 failed, 35 passed, 7 skipped in 13.55s ===============================================

I can reproduce with dd89b64. Downgrading to 8.1.8 resolves the issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions