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
ede3eca4
Unverified
Commit
ede3eca4
authored
May 14, 2023
by
Riccardo Albertazzi
Committed by
GitHub
May 14, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: poetry add --lock does not perform a full update (#7920)
parent
c564e1ca
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
6 deletions
+37
-6
src/poetry/console/commands/add.py
+2
-5
tests/console/commands/test_add.py
+34
-0
tests/fixtures/up_to_date_lock/poetry.lock
+0
-0
tests/fixtures/up_to_date_lock/pyproject.toml
+1
-1
No files found.
src/poetry/console/commands/add.py
View file @
ede3eca4
...
@@ -254,9 +254,7 @@ The add command adds required packages to your <comment>pyproject.toml</> and in
...
@@ -254,9 +254,7 @@ The add command adds required packages to your <comment>pyproject.toml</> and in
)
)
# Refresh the locker
# Refresh the locker
self
.
poetry
.
set_locker
(
self
.
poetry
.
locker
.
set_local_config
(
poetry_content
)
self
.
poetry
.
locker
.
__class__
(
self
.
poetry
.
locker
.
lock
,
poetry_content
)
)
self
.
installer
.
set_locker
(
self
.
poetry
.
locker
)
self
.
installer
.
set_locker
(
self
.
poetry
.
locker
)
# Cosmetic new line
# Cosmetic new line
...
@@ -266,8 +264,7 @@ The add command adds required packages to your <comment>pyproject.toml</> and in
...
@@ -266,8 +264,7 @@ The add command adds required packages to your <comment>pyproject.toml</> and in
self
.
installer
.
dry_run
(
self
.
option
(
"dry-run"
))
self
.
installer
.
dry_run
(
self
.
option
(
"dry-run"
))
self
.
installer
.
verbose
(
self
.
io
.
is_verbose
())
self
.
installer
.
verbose
(
self
.
io
.
is_verbose
())
self
.
installer
.
update
(
True
)
self
.
installer
.
update
(
True
)
if
self
.
option
(
"lock"
):
self
.
installer
.
execute_operations
(
not
self
.
option
(
"lock"
))
self
.
installer
.
lock
()
self
.
installer
.
whitelist
([
r
[
"name"
]
for
r
in
requirements
])
self
.
installer
.
whitelist
([
r
[
"name"
]
for
r
in
requirements
])
...
...
tests/console/commands/test_add.py
View file @
ede3eca4
...
@@ -15,6 +15,7 @@ from poetry.core.packages.package import Package
...
@@ -15,6 +15,7 @@ from poetry.core.packages.package import Package
from
poetry.console.commands.installer_command
import
InstallerCommand
from
poetry.console.commands.installer_command
import
InstallerCommand
from
poetry.puzzle.exceptions
import
SolverProblemError
from
poetry.puzzle.exceptions
import
SolverProblemError
from
poetry.repositories.legacy_repository
import
LegacyRepository
from
poetry.repositories.legacy_repository
import
LegacyRepository
from
tests.helpers
import
TestLocker
from
tests.helpers
import
get_dependency
from
tests.helpers
import
get_dependency
from
tests.helpers
import
get_package
from
tests.helpers
import
get_package
...
@@ -1506,3 +1507,36 @@ def test_add_extras_only_accepts_one_package(
...
@@ -1506,3 +1507,36 @@ def test_add_extras_only_accepts_one_package(
str
(
e
.
value
)
str
(
e
.
value
)
==
"You can only specify one package when using the --extras option"
==
"You can only specify one package when using the --extras option"
)
)
@pytest.mark.parametrize
(
"command"
,
[
"foo"
,
"foo --lock"
])
@pytest.mark.parametrize
(
(
"locked"
,
"expected_docker"
),
[(
True
,
"4.3.1"
),
(
False
,
"4.3.2"
)]
)
def
test_add_does_not_update_locked_dependencies
(
repo
:
TestRepository
,
poetry_with_up_to_date_lockfile
:
Poetry
,
tester
:
CommandTester
,
command_tester_factory
:
CommandTesterFactory
,
command
:
str
,
locked
:
bool
,
expected_docker
:
str
,
)
->
None
:
assert
isinstance
(
poetry_with_up_to_date_lockfile
.
locker
,
TestLocker
)
poetry_with_up_to_date_lockfile
.
locker
.
locked
(
locked
)
tester
=
command_tester_factory
(
"add"
,
poetry
=
poetry_with_up_to_date_lockfile
)
docker_locked
=
get_package
(
"docker"
,
"4.3.1"
)
docker_new
=
get_package
(
"docker"
,
"4.3.2"
)
docker_dep
=
get_dependency
(
"docker"
,
">=4.0.0"
)
foo
=
get_package
(
"foo"
,
"0.1.0"
)
foo
.
add_dependency
(
docker_dep
)
for
package
in
docker_locked
,
docker_new
,
foo
:
repo
.
add_package
(
package
)
tester
.
execute
(
command
)
lock_data
=
poetry_with_up_to_date_lockfile
.
locker
.
lock_data
docker_locked_after_command
=
next
(
p
for
p
in
lock_data
[
"package"
]
if
p
[
"name"
]
==
"docker"
)
assert
docker_locked_after_command
[
"version"
]
==
expected_docker
tests/fixtures/up_to_date_lock/poetry.lock
View file @
ede3eca4
This diff is collapsed.
Click to expand it.
tests/fixtures/up_to_date_lock/pyproject.toml
View file @
ede3eca4
...
@@ -6,7 +6,7 @@ authors = ["Poetry Developer <developer@python-poetry.org>"]
...
@@ -6,7 +6,7 @@ authors = ["Poetry Developer <developer@python-poetry.org>"]
[tool.poetry.dependencies]
[tool.poetry.dependencies]
python
=
"^3.8"
python
=
"^3.8"
docker
=
"4.3.1"
docker
=
"
>=
4.3.1"
[tool.poetry.dev-dependencies]
[tool.poetry.dev-dependencies]
...
...
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