Skip to content

Commit

Permalink
command/new: make readme format configurable
Browse files Browse the repository at this point in the history
This change makes readme formant configurable, defaulting to markdown
when using the new command.

Resolves: #280
Closes: #1515

Co-authored-by: Arun Babu Neelicattu <arun.neelicattu@gmail.com>
  • Loading branch information
finswimmer and abn committed Sep 1, 2020
1 parent 6a318f2 commit 5ab216f
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 4 deletions.
5 changes: 3 additions & 2 deletions docs/docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ will create a folder as follows:
```text
my-package
├── pyproject.toml
├── README.rst
├── README.md
├── my_package
│ └── __init__.py
└── tests
Expand All @@ -55,7 +55,7 @@ That will create a folder structure as follows:
```text
my-package
├── pyproject.toml
├── README.rst
├── README.md
├── src
│ └── my_package
│ └── __init__.py
Expand All @@ -75,6 +75,7 @@ will create the following structure:
```text
my-package
├── pyproject.toml
├── README.md
├── src
│ └── my
│ └── package
Expand Down
8 changes: 7 additions & 1 deletion poetry/console/commands/new.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ class NewCommand(Command):
options = [
option("name", None, "Set the resulting package name.", flag=False),
option("src", None, "Use the src layout for the project."),
option(
"readme",
None,
"Specify the readme file format. One of md (default) or rst",
flag=False,
),
]

def handle(self):
Expand Down Expand Up @@ -45,7 +51,7 @@ def handle(self):
"exists and is not empty".format(path)
)

readme_format = "rst"
readme_format = self.option("readme") or "md"

config = GitConfig()
author = None
Expand Down
20 changes: 19 additions & 1 deletion tests/console/commands/test_new.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from typing import Optional

import pytest

from cleo.testers import CommandTester
Expand All @@ -15,7 +17,9 @@ def command(app, poetry): # type: (Application, Poetry) -> CommandTester
return CommandTester(command)


def verify_project_directory(path, package_name, package_path, include_from=None):
def verify_project_directory(
path, package_name, package_path, include_from=None
): # type: (Path, str, str, Optional[str]) -> Poetry
package_path = Path(package_path)
assert path.is_dir()

Expand Down Expand Up @@ -47,6 +51,8 @@ def verify_project_directory(path, package_name, package_path, include_from=None
assert len(packages) == 1
assert packages[0] == package_include

return poetry


@pytest.mark.parametrize(
"options,directory,package_name,package_path,include_from",
Expand Down Expand Up @@ -140,3 +146,15 @@ def test_command_new(
options.append(path.as_posix())
command.execute(" ".join(options))
verify_project_directory(path, package_name, package_path, include_from)


@pytest.mark.parametrize("fmt", [(None,), ("md",), ("rst",)])
def test_command_new_with_readme(fmt, command, tmp_dir):
fmt = "md"
package = "package"
path = Path(tmp_dir) / package
options = ["--readme {}".format(fmt) if fmt else "md", path.as_posix()]
command.execute(" ".join(options))

poetry = verify_project_directory(path, package, package, None)
assert poetry.local_config.get("readme") == "README.{}".format(fmt or "md")

0 comments on commit 5ab216f

Please sign in to comment.