Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
15f6ec17
Unverified
Commit
15f6ec17
authored
Mar 20, 2022
by
David Hotham
Committed by
GitHub
Mar 20, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix a solver case with complex extras (#5305)
parent
ad2bfe71
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
48 additions
and
1 deletions
+48
-1
src/poetry/puzzle/solver.py
+1
-1
tests/puzzle/test_solver.py
+47
-0
No files found.
src/poetry/puzzle/solver.py
View file @
15f6ec17
...
@@ -309,7 +309,7 @@ class PackageNode(DFSNode):
...
@@ -309,7 +309,7 @@ class PackageNode(DFSNode):
and
dependency
.
constraint
.
allows
(
pkg
.
version
.
stable
)
and
dependency
.
constraint
.
allows
(
pkg
.
version
.
stable
)
)
)
and
not
any
(
and
not
any
(
child
.
package
.
name
==
pkg
.
name
child
.
package
.
complete_name
==
pkg
.
complete_
name
and
child
.
groups
==
dependency
.
groups
and
child
.
groups
==
dependency
.
groups
for
child
in
children
for
child
in
children
)
)
...
...
tests/puzzle/test_solver.py
View file @
15f6ec17
...
@@ -686,6 +686,53 @@ def test_solver_returns_extras_only_requested_nested(
...
@@ -686,6 +686,53 @@ def test_solver_returns_extras_only_requested_nested(
assert
ops
[
0
]
.
package
.
marker
.
is_any
()
assert
ops
[
0
]
.
package
.
marker
.
is_any
()
def
test_solver_finds_extras_next_to_non_extras
(
solver
:
Solver
,
repo
:
Repository
,
package
:
ProjectPackage
):
# Root depends on A[foo]
package
.
add_dependency
(
Factory
.
create_dependency
(
"A"
,
{
"version"
:
"*"
,
"extras"
:
[
"foo"
]})
)
package_a
=
get_package
(
"A"
,
"1.0"
)
package_b
=
get_package
(
"B"
,
"1.0"
)
package_c
=
get_package
(
"C"
,
"1.0"
)
package_d
=
get_package
(
"D"
,
"1.0"
)
# A depends on B; A[foo] depends on B[bar].
package_a
.
add_dependency
(
Factory
.
create_dependency
(
"B"
,
"*"
))
package_a
.
add_dependency
(
Factory
.
create_dependency
(
"B"
,
{
"version"
:
"*"
,
"extras"
:
[
"bar"
],
"markers"
:
"extra == 'foo'"
}
)
)
package_a
.
extras
=
{
"foo"
:
[
get_dependency
(
"B"
,
"*"
)]}
# B depends on C; B[bar] depends on D.
package_b
.
add_dependency
(
Factory
.
create_dependency
(
"C"
,
"*"
))
package_b
.
add_dependency
(
Factory
.
create_dependency
(
"D"
,
{
"version"
:
"*"
,
"markers"
:
'extra == "bar"'
})
)
package_b
.
extras
=
{
"bar"
:
[
get_dependency
(
"D"
,
"*"
)]}
repo
.
add_package
(
package_a
)
repo
.
add_package
(
package_b
)
repo
.
add_package
(
package_c
)
repo
.
add_package
(
package_d
)
transaction
=
solver
.
solve
()
check_solver_result
(
transaction
,
[
{
"job"
:
"install"
,
"package"
:
package_c
},
{
"job"
:
"install"
,
"package"
:
package_d
},
{
"job"
:
"install"
,
"package"
:
package_b
},
{
"job"
:
"install"
,
"package"
:
package_a
},
],
)
def
test_solver_returns_prereleases_if_requested
(
def
test_solver_returns_prereleases_if_requested
(
solver
:
Solver
,
repo
:
Repository
,
package
:
ProjectPackage
solver
:
Solver
,
repo
:
Repository
,
package
:
ProjectPackage
):
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment