Skip to content

Commit 4888d21

Browse files
tommilliganabn
authored andcommitted
package: allow url dependencies to be optional
1 parent 64c054b commit 4888d21

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

poetry/core/packages/package.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,9 @@ def add_dependency(
332332
develop=constraint.get("develop", True),
333333
)
334334
elif "url" in constraint:
335-
dependency = URLDependency(name, constraint["url"], category=category)
335+
dependency = URLDependency(
336+
name, constraint["url"], category=category, optional=optional
337+
)
336338
else:
337339
version = constraint["version"]
338340

tests/packages/test_package.py

+17
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,20 @@ def test_package_add_dependency_vcs_category_default_main():
3737
"poetry", constraint={"git": "https://github.com/python-poetry/poetry.git"}
3838
)
3939
assert dependency.category == "main"
40+
41+
42+
@pytest.mark.parametrize("category", ["main", "dev"])
43+
@pytest.mark.parametrize("optional", [True, False])
44+
def test_package_url_category_optional(category, optional):
45+
package = Package("foo", "0.1.0")
46+
47+
dependency = package.add_dependency(
48+
"poetry",
49+
constraint={
50+
"url": "https://github.com/python-poetry/poetry/releases/download/1.0.5/poetry-1.0.5-linux.tar.gz",
51+
"optional": optional,
52+
},
53+
category=category,
54+
)
55+
assert dependency.category == category
56+
assert dependency.is_optional() == optional

0 commit comments

Comments
 (0)