Commit a7ffb9dd by Sébastien Eustace

Fix update command without whitelisted packages

parent b283ca8d
...@@ -125,7 +125,14 @@ class Installer: ...@@ -125,7 +125,14 @@ class Installer:
def _do_install(self, local_repo): def _do_install(self, local_repo):
locked_repository = Repository() locked_repository = Repository()
if self._update: if self._update:
if self._locker.is_locked(): if self._locker.is_locked() and self._whitelist:
# If we update with a lock file present and
# we have whitelisted packages (the ones we want to update)
# we get the lock file packages to only update
# what is strictly needed.
#
# Otherwise, the lock file information is irrelevant
# since we want to update everything.
locked_repository = self._locker.locked_repository(True) locked_repository = self._locker.locked_repository(True)
# Checking extras # Checking extras
......
[[package]]
name = "A"
version = "1.1"
description = ""
category = "main"
optional = false
python-versions = "*"
platform = "*"
[metadata]
python-versions = "*"
platform = "*"
content-hash = "123456789"
[metadata.hashes]
"A" = []
...@@ -650,3 +650,38 @@ def test_run_changes_category_if_needed(installer, locker, repo, package): ...@@ -650,3 +650,38 @@ def test_run_changes_category_if_needed(installer, locker, repo, package):
expected = fixture('with-category-change') expected = fixture('with-category-change')
assert locker.written_data == expected assert locker.written_data == expected
def test_run_update_all_with_lock(installer, locker, repo, package):
locker.locked(True)
locker.mock_lock_data({
'package': [{
'name': 'A',
'version': '1.0',
'category': 'dev',
'optional': True,
'platform': '*',
'python-versions': '*',
'checksum': []
}],
'metadata': {
'python-versions': '*',
'platform': '*',
'content-hash': '123456789',
'hashes': {
'A': [],
}
}
})
package_a = get_package('A', '1.1')
repo.add_package(get_package('A', '1.0'))
repo.add_package(package_a)
package.add_dependency('A')
installer.update(True)
installer.run()
expected = fixture('update-with-lock')
assert locker.written_data == expected
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment