Skip to content

Commit c31dcfc

Browse files
committed
fix: differ between not defined and empty dependency list
1 parent 185ea74 commit c31dcfc

File tree

4 files changed

+82
-2
lines changed

4 files changed

+82
-2
lines changed

src/poetry/core/factory.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -377,12 +377,14 @@ def _configure_package_dependencies(
377377
from poetry.core.packages.dependency_group import MAIN_GROUP
378378
from poetry.core.packages.dependency_group import DependencyGroup
379379

380-
dependencies = project.get("dependencies", {})
380+
dependencies = project.get("dependencies")
381381
optional_dependencies = project.get("optional-dependencies", {})
382382
dynamic = project.get("dynamic", [])
383383

384384
package_extras: dict[NormalizedName, list[Dependency]]
385-
if dependencies or optional_dependencies:
385+
if dependencies is not None or optional_dependencies:
386+
dependencies = dependencies or {}
387+
386388
group = DependencyGroup(
387389
MAIN_GROUP,
388390
mixed_dynamic=(
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
My Package
2+
==========
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
[project]
2+
name = "my-package"
3+
version = "1.2.3"
4+
description = "Some description."
5+
readme = "README.rst"
6+
requires-python = ">=3.6"
7+
license = "MIT"
8+
keywords = ["packaging", "dependency", "poetry"]
9+
authors = [
10+
{ name = "Sébastien Eustace", email = "[email protected]" }
11+
]
12+
maintainers = [
13+
{ name = "Sébastien Eustace", email = "[email protected]" }
14+
]
15+
16+
classifiers = [
17+
"Topic :: Software Development :: Build Tools",
18+
"Topic :: Software Development :: Libraries :: Python Modules"
19+
]
20+
21+
# Requirements
22+
dependencies = [
23+
]
24+
25+
26+
[project.urls]
27+
homepage = "https://python-poetry.org"
28+
repository = "https://github.com/python-poetry/poetry"
29+
documentation = "https://python-poetry.org/docs"
30+
31+
[project.scripts]
32+
my-script = "my_package:main"
33+
34+
[project.entry-points."blogtool.parsers"]
35+
".rst" = "some_module::SomeClass"

tests/test_factory.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,47 @@ def test_create_poetry(project: str) -> None:
313313
]
314314

315315

316+
def test_create_poetry_with_empty_dependencies() -> None:
317+
project = "sample_project_new_no_deps"
318+
poetry = Factory().create_poetry(fixtures_dir / project)
319+
320+
assert poetry.is_package_mode
321+
322+
package = poetry.package
323+
324+
assert "main" in package._dependency_groups
325+
assert package._dependency_groups[canonicalize_name("main")].dependencies == []
326+
327+
assert package.name == "my-package"
328+
assert package.version.text == "1.2.3"
329+
assert package.description == "Some description."
330+
assert package.authors == ["Sébastien Eustace <[email protected]>"]
331+
assert package.maintainers == ["Sébastien Eustace <[email protected]>"]
332+
assert package.license is None
333+
assert package.license_expression == "MIT"
334+
335+
assert (
336+
package.readmes[0].relative_to(fixtures_dir).as_posix()
337+
== f"{project}/README.rst"
338+
)
339+
assert package.homepage == "https://python-poetry.org"
340+
assert package.repository_url == "https://github.com/python-poetry/poetry"
341+
assert package.keywords == ["packaging", "dependency", "poetry"]
342+
343+
assert package.python_versions == ">=3.6"
344+
assert str(package.python_constraint) == ">=3.6"
345+
346+
assert package.requires == []
347+
classifiers = package.classifiers
348+
349+
assert classifiers == [
350+
"Topic :: Software Development :: Build Tools",
351+
"Topic :: Software Development :: Libraries :: Python Modules",
352+
]
353+
354+
assert package.all_classifiers == package.classifiers
355+
356+
316357
@pytest.mark.parametrize(
317358
"project", ["sample_project_with_groups", "sample_project_with_groups_new"]
318359
)

0 commit comments

Comments
 (0)