Skip to content

Commit 066fef0

Browse files
committed
fix(init): only add readme key if README file exists
1 parent 8b43d3e commit 066fef0

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

src/poetry/layouts/layout.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,13 @@ def generate_project_content(self) -> TOMLDocument:
161161
else:
162162
project_content.remove("license")
163163

164-
if os.path.exists(self.basedir/f"README.{self._readme_format}"):
164+
readme_path = self.basedir / f"README.{self._readme_format}"
165+
if readme_path.exists():
165166
project_content["readme"] = f"README.{self._readme_format}"
166167
else:
167168
project_content.pop("readme", None)
168169

170+
169171
if self._python:
170172
project_content["requires-python"] = self._python
171173
else:

tests/layouts/test_layout.py

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,18 @@
11
from pathlib import Path
2-
32
import pytest
43

54
from poetry.layouts.layout import Layout
65

7-
from pathlib import Path
8-
9-
from poetry.layouts.layout import Layout
10-
116

127
class DummyLayout(Layout):
13-
def __init__(self, *args, basedir: Path, **kwargs):
14-
super().__init__(*args, **kwargs)
15-
self._basedir = basedir
8+
"""Override basedir for testing purposes."""
9+
def __init__(self, basedir: Path, **kwargs):
10+
super().__init__(**kwargs)
11+
self._test_basedir = basedir
1612

1713
@property
1814
def basedir(self) -> Path:
19-
return self._basedir
15+
return self._test_basedir
2016

2117

2218
def test_readme_key_removed_if_readme_missing(tmp_path: Path) -> None:
@@ -27,13 +23,13 @@ def test_readme_key_removed_if_readme_missing(tmp_path: Path) -> None:
2723
)
2824

2925
content = layout.generate_project_content()
30-
project = content["project"]
31-
32-
assert "readme" not in project
26+
# README.md does not exist, key should be removed
27+
assert "readme" not in content["project"]
3328

3429

3530
def test_readme_key_present_if_readme_exists(tmp_path: Path) -> None:
36-
(tmp_path / "README.md").touch()
31+
readme = tmp_path / "README.md"
32+
readme.touch()
3733

3834
layout = DummyLayout(
3935
project="demo_project",
@@ -42,6 +38,5 @@ def test_readme_key_present_if_readme_exists(tmp_path: Path) -> None:
4238
)
4339

4440
content = layout.generate_project_content()
45-
project = content["project"]
46-
47-
assert project["readme"] == "README.md"
41+
# README.md exists, key should be present
42+
assert content["project"]["readme"] == "README.md"

0 commit comments

Comments
 (0)