installer: remove unrequested extras if requires_synchronization
is set
#8621
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
tl;dr
poetry install --sync
does not remove unrequestedextras
(funny enoughpoetry install
without--sync
does remove them)installer
regardingextras
Long story
Originally, I was just poking around with python-poetry/poetry-core#613 (comment). However, I noticed that all
installer
tests still passed if one of the following lines were removed:poetry/src/poetry/installation/installer.py
Lines 386 to 388 in f5b0228
poetry/src/poetry/installation/installer.py
Lines 394 to 395 in f5b0228
Thus, I decided to improve the test coverage before trying to fix bugs. I merged some quite similar tests and used
pytest.mark.parametrize
to cover the missing cases. However,poetry/src/poetry/installation/installer.py
Lines 386 to 388 in f5b0228
After some code spelunking, I suppose that these lines became irrelevant with ea8fb8c. However, that introduced the mentioned bug. After adding
@pytest.mark.parametrize("do_sync", [False, True])
to the test and fixing the bug, the mentioned lines of code are relevant again.