From ab75ef7fc4071656c6019a0de08a405b55d3a7cc Mon Sep 17 00:00:00 2001 From: finswimmer Date: Thu, 6 Aug 2020 23:57:04 +0200 Subject: [PATCH] layouts: add readme to pyproject.toml on creation Relates-to: #280 Co-authored-by: Arun Babu Neelicattu --- poetry/layouts/layout.py | 23 ++++++++++++++++------- tests/console/commands/test_init.py | 10 ++++++++++ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/poetry/layouts/layout.py b/poetry/layouts/layout.py index f673348b085..2d177f9e62f 100644 --- a/poetry/layouts/layout.py +++ b/poetry/layouts/layout.py @@ -23,6 +23,7 @@ description = "" authors = [] license = "" +readme = "" packages = [] [tool.poetry.dependencies] @@ -35,6 +36,8 @@ class Layout(object): + ACCEPTED_README_FORMATS = {"md", "rst"} + def __init__( self, project, @@ -54,7 +57,15 @@ def __init__( self._package_name = ".".join(self._package_path_relative.parts) self._version = version self._description = description - self._readme_format = readme_format + + self._readme_format = readme_format.lower() + if self._readme_format not in self.ACCEPTED_README_FORMATS: + raise ValueError( + "Invalid readme format '{}', use one of {}.".format( + readme_format, ", ".join(self.ACCEPTED_README_FORMATS) + ) + ) + self._license = license self._python = python self._dependencies = dependencies or {} @@ -116,6 +127,7 @@ def generate_poetry_content(self): else: poetry_content.remove("license") + poetry_content["readme"] = "README.{}".format(self._readme_format) packages = self.get_package_include() if packages: poetry_content["packages"].append(packages) @@ -155,13 +167,10 @@ def _create_default(self, path): package_init = package_path / "__init__.py" package_init.touch() - def _create_readme(self, path): - if self._readme_format == "rst": - readme_file = path / "README.rst" - else: - readme_file = path / "README.md" - + def _create_readme(self, path): # type: (Path) -> Path + readme_file = path.joinpath("README.{}".format(self._readme_format)) readme_file.touch() + return readme_file @staticmethod def _create_tests(path): diff --git a/tests/console/commands/test_init.py b/tests/console/commands/test_init.py index f68731443fc..63756b4fde8 100644 --- a/tests/console/commands/test_init.py +++ b/tests/console/commands/test_init.py @@ -35,6 +35,7 @@ def test_basic_interactive(app, mocker, poetry): description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -87,6 +88,7 @@ def test_interactive_with_dependencies(app, repo, mocker, poetry): description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -128,6 +130,7 @@ def test_empty_license(app, mocker, poetry): version = "1.2.3" description = "" authors = ["Your Name "] +readme = "README.md" packages = [{{include = "my_package"}}] [tool.poetry.dependencies] @@ -180,6 +183,7 @@ def test_interactive_with_git_dependencies( description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -233,6 +237,7 @@ def test_interactive_with_git_dependencies_with_reference( description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -286,6 +291,7 @@ def test_interactive_with_git_dependencies_and_other_name( description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -339,6 +345,7 @@ def test_interactive_with_directory_dependency( description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -392,6 +399,7 @@ def test_interactive_with_directory_dependency_and_other_name( description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -443,6 +451,7 @@ def test_interactive_with_file_dependency(app, repo, mocker, poetry): description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies] @@ -484,6 +493,7 @@ def test_python_option(app, mocker, poetry): description = "This is a description" authors = ["Your Name "] license = "MIT" +readme = "README.md" packages = [{include = "my_package"}] [tool.poetry.dependencies]