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
b8faa51a
Commit
b8faa51a
authored
Jun 13, 2022
by
Randy Döring
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
solver: print warning if yanked release is chosen
parent
f0e55b0a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
0 deletions
+52
-0
src/poetry/puzzle/solver.py
+10
-0
tests/puzzle/test_solver.py
+42
-0
No files found.
src/poetry/puzzle/solver.py
View file @
b8faa51a
...
@@ -83,6 +83,16 @@ class Solver:
...
@@ -83,6 +83,16 @@ class Solver:
f
" {', '.join(f'({b})' for b in self._overrides)}"
f
" {', '.join(f'({b})' for b in self._overrides)}"
)
)
for
p
in
packages
:
if
p
.
yanked
:
message
=
(
f
"The locked version {p.pretty_version} for {p.pretty_name} is a"
" yanked version."
)
if
p
.
yanked_reason
:
message
+=
f
" Reason for being yanked: {p.yanked_reason}"
self
.
_io
.
write_error_line
(
f
"<warning>Warning: {message}</warning>"
)
return
Transaction
(
return
Transaction
(
self
.
_locked_packages
,
self
.
_locked_packages
,
list
(
zip
(
packages
,
depths
)),
list
(
zip
(
packages
,
depths
)),
...
...
tests/puzzle/test_solver.py
View file @
b8faa51a
...
@@ -6,6 +6,7 @@ from typing import Any
...
@@ -6,6 +6,7 @@ from typing import Any
import
pytest
import
pytest
from
cleo.io.buffered_io
import
BufferedIO
from
cleo.io.null_io
import
NullIO
from
cleo.io.null_io
import
NullIO
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.packages.dependency
import
Dependency
from
poetry.core.packages.package
import
Package
from
poetry.core.packages.package
import
Package
...
@@ -3680,3 +3681,44 @@ def test_update_with_prerelease_and_no_solution(
...
@@ -3680,3 +3681,44 @@ def test_update_with_prerelease_and_no_solution(
with
pytest
.
raises
(
SolverProblemError
):
with
pytest
.
raises
(
SolverProblemError
):
solver
.
solve
()
solver
.
solve
()
def
test_solver_yanked_warning
(
package
:
ProjectPackage
,
installed
:
InstalledRepository
,
locked
:
Repository
,
pool
:
Pool
,
repo
:
Repository
,
)
->
None
:
package
.
add_dependency
(
Factory
.
create_dependency
(
"foo"
,
"==1"
))
package
.
add_dependency
(
Factory
.
create_dependency
(
"bar"
,
"==2"
))
package
.
add_dependency
(
Factory
.
create_dependency
(
"baz"
,
"==3"
))
foo
=
get_package
(
"foo"
,
"1"
,
yanked
=
False
)
bar
=
get_package
(
"bar"
,
"2"
,
yanked
=
True
)
baz
=
get_package
(
"baz"
,
"3"
,
yanked
=
"just wrong"
)
repo
.
add_package
(
foo
)
repo
.
add_package
(
bar
)
repo
.
add_package
(
baz
)
io
=
BufferedIO
(
decorated
=
False
)
solver
=
Solver
(
package
,
pool
,
installed
.
packages
,
locked
.
packages
,
io
)
transaction
=
solver
.
solve
()
check_solver_result
(
transaction
,
[
{
"job"
:
"install"
,
"package"
:
bar
},
{
"job"
:
"install"
,
"package"
:
baz
},
{
"job"
:
"install"
,
"package"
:
foo
},
],
)
error
=
io
.
fetch_error
()
assert
"foo"
not
in
error
assert
"The locked version 2 for bar is a yanked version."
in
error
assert
(
"The locked version 3 for baz is a yanked version. Reason for being yanked:"
" just wrong"
in
error
)
assert
error
.
count
(
"is a yanked version"
)
==
2
assert
error
.
count
(
"Reason for being yanked"
)
==
1
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