From cbe43f36fc68b8c44b86eb69edefd07eeaef7764 Mon Sep 17 00:00:00 2001 From: Wagner Macedo Date: Fri, 19 Nov 2021 01:17:22 +0100 Subject: [PATCH] Add `package.readme` properties to ensure retrocompatibility --- poetry/core/packages/package.py | 20 ++++++++++++++++++++ tests/packages/test_package.py | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/poetry/core/packages/package.py b/poetry/core/packages/package.py index b3752bbd0..c992f430f 100644 --- a/poetry/core/packages/package.py +++ b/poetry/core/packages/package.py @@ -351,6 +351,26 @@ def urls(self) -> Dict[str, str]: return urls + @property + def readme(self) -> Path: + import warnings + + warnings.warn( + "`readme` is deprecated: you are getting only the first readme file. Please use the plural form `readmes`", + DeprecationWarning, + ) + return next(iter(self.readmes), None) + + @readme.setter + def readme(self, path: Path) -> None: + import warnings + + warnings.warn( + "`readme` is deprecated. Please assign a tuple to the plural form `readmes`", + DeprecationWarning, + ) + self.readmes = (path,) + def is_prerelease(self) -> bool: return self._version.is_unstable() diff --git a/tests/packages/test_package.py b/tests/packages/test_package.py index 760906a17..394d9e656 100644 --- a/tests/packages/test_package.py +++ b/tests/packages/test_package.py @@ -408,3 +408,22 @@ def test_only_with_dependency_groups(package_with_groups: Package): assert len(package.requires) == 2 assert len(package.all_requires) == 2 + + +def test_get_readme_property_with_multiple_readme_files(): + package = Package("foo", "0.1.0") + + package.readmes = ("README.md", "HISTORY.md") + with pytest.deprecated_call(): + assert package.readme == "README.md" + + +def test_set_readme_property(): + package = Package("foo", "0.1.0") + + with pytest.deprecated_call(): + package.readme = "README.md" + + assert package.readmes == ("README.md",) + with pytest.deprecated_call(): + assert package.readme == "README.md"