`tests/data/test_package_generation` fails every new year as the year is hardcoded
還沒有人認領這個 Issue。
評估
- 難度
- 2/5
- 預估耗時
- 1-3 小時
- 新手友好度
- 45/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 停滯
- 技術堆疊
- python
- 領域
- testing-qa, tooling
研究方向
Start with tests/test_package_generation.py and the reference files under tests/data/test_package_generation. Run the package-generation test and inspect the year differences in mkdocs.yml and LICENSE.md. Done means the generated package and expected data remain consistent when the calendar year changes.
由索引模型根據 Issue 內容生成。
描述
Describe the Bug
Every year the regression test will generate a package based on the current year when the test files will have the previous year
To Reproduce
Wait until a new year and watch tests fail on a PR
Expected Behaviour
Ideally we could either ignore the year or update the year somehow with @renovatebot or something
Actual Behaviour
============================= test session starts ==============================
platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 -- /home/runner/work/python-tooling/python-tooling/.tox/py312/bin/python
cachedir: .tox/py312/.pytest_cache
rootdir: /home/runner/work/python-tooling/python-tooling
configfile: pyproject.toml
collecting ... collected 8 items
tests/data/test_package_generation/tests/test_dummy.py::test_stupid_example PASSED [ 12%]
tests/test_git_init.py::test_initialisation_of_git_repo[True] PASSED [ 25%]
tests/test_git_init.py::test_initialisation_of_git_repo[False] PASSED [ 37%]
tests/test_package_generation.py::test_package_generation FAILED [ 50%]
tests/test_package_generation.py::test_pip_installable PASSED [ 62%]
tests/test_package_generation.py::test_optional_funder[] PASSED [ 75%]
tests/test_package_generation.py::test_optional_funder[STFC] PASSED [ 87%]
{{cookiecutter.project_slug}}/tests/test_dummy.py::test_stupid_example PASSED [100%]
=================================== FAILURES ===================================
___________________________ test_package_generation ____________________________
tmp_path = PosixPath('/tmp/pytest-of-runner/pytest-0/test_package_generation0')
generate_package = <function _generate_package at 0x7fa89eb311c0>
def test_package_generation(
tmp_path: pathlib.Path,
generate_package: typing.Callable,
) -> None:
"""Test package generation."""
test_config = {
"github_owner": "test-user",
"project_short_description": "description",
"project_name": "Cookiecutter Test",
# Not having a git repo makes it easier to check in/out reference
# data files to the main python-tooling git repository
"initialise_git_repository": False,
}
generate_package(config=test_config, path=tmp_path)
expected_package_dir = (
pathlib.Path(__file__).parent / "data" / "test_package_generation"
)
# Check project directory exists
test_project_dir = tmp_path / "cookiecutter-test"
assert test_project_dir.exists()
actual_files = get_all_files_folders(test_project_dir)
expected_files = get_all_files_folders(expected_package_dir)
assert actual_files == expected_files
# Check diff between actual and expected file contents
diff = ""
for file in actual_files:
actual_file = test_project_dir / file
expected_file = expected_package_dir / file
if actual_file.is_dir():
continue
with actual_file.open() as f1, expected_file.open() as f2:
diff += "".join(
difflib.unified_diff(
f1.readlines(),
f2.readlines(),
fromfile=str(actual_file),
tofile=str(expected_file),
)
)
if diff:
shutil.rmtree(expected_package_dir)
shutil.move(test_project_dir, expected_package_dir)
msg = (
"Non-zero diff between generated files and expected files.\n"
"Test data files have been modified with new content.\n"
"Diff is:\n"
f"{diff}"
)
> raise RuntimeError(msg)
E RuntimeError: Non-zero diff between generated files and expected files.
E Test data files have been modified with new content.
E Diff is:
E --- /tmp/pytest-of-runner/pytest-0/test_package_generation0/cookiecutter-test/mkdocs.yml
E +++ /home/runner/work/python-tooling/python-tooling/tests/data/test_package_generation/mkdocs.yml
E @@ -1,7 +1,7 @@
E site_name: "Cookiecutter Test"
E site_description: "Documentation website for Cookiecutter Test"
E site_author: "Eva Lu Ator"
E -copyright: "Copyright © 2025 Eva Lu Ator"
E +copyright: "Copyright © 2024 Eva Lu Ator"
E repo_url: "https://github.com/test-user/cookiecutter-test/"
E repo_name: "test-user/cookiecutter-test"
E edit_uri: edit/main/docs/
E --- /tmp/pytest-of-runner/pytest-0/test_package_generation0/cookiecutter-test/LICENSE.md
E +++ /home/runner/work/python-tooling/python-tooling/tests/data/test_package_generation/LICENSE.md
E @@ -1,6 +1,6 @@
E <!-- markdownlint-disable MD041 --># MIT License
E
E -Copyright (c) 2025 Eva Lu Ator
E +Copyright (c) 2024 Eva Lu Ator
E
E Permission is hereby granted, free of charge, to any person obtaining a copy of
Version In Use
v1.0.0
Additional Context
- 主要語言
- Python
- 星號
- 62
- 分支
- 10
- 平均合併
- 5 天 19 小時
- 30 天內合併 PR
- 6
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
UCL-ARC/python-tooling 的其他 Issue
-
question
難度 2/5 1 小時以內 新手友好度 15/100
UCL-ARC/python-tooling#657 · 1 則留言 ·
-
task
難度 3/5 1-2 天 新手友好度 48/100
UCL-ARC/python-tooling#651 · 3 則留言 ·
-
Should we have an AI policy?可能已有人在做 @samcunliffe 於 27 天前認領。 未關閉question
UCL-ARC/python-tooling#649 · 3 則留言 · 已指派 1 人 ·
-
enhancement investigate
難度 3/5 1-2 天 新手友好度 48/100
UCL-ARC/python-tooling#623 · 1 個 reaction ·
-
enhancement question task
難度 3/5 1-2 天 新手友好度 38/100
UCL-ARC/python-tooling#620 · 4 則留言 ·
查看 UCL-ARC/python-tooling 的全部 Issue
相似的 Issue
-
Paraxial.trace returns NaN for an object at infinity when the entrance pupil is at the first surface未關閉
難度 2/5 1-3 小時 新手友好度 75/100
維護者通常 1 天內回覆
-
enhancement ios launcher
難度 2/5 1-3 小時 新手友好度 70/100
維護者通常 1 天內回覆
-
Substrait consumer doesn't recognise `shift_left` / `shift_right` from functions_arithmetic.yaml未關閉bug
難度 2/5 1-3 小時 新手友好度 76/100
apache/datafusion#27059 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 85/100
loteran/Arctis-Sound-Manager#368 ·
維護者通常 1 天內回覆
-
feed submission
難度 2/5 1-3 小時 新手友好度 65/100
MobilityData/mobility-database-catalogs#1787 ·
維護者通常 2 天內回覆