Report an errror if a package has duplicates allowed but there are no duplicates

Resolves: #19306
This commit is contained in:
Maxim Novikov 2017-11-21 19:21:07 +01:00
parent 83c7f80baa
commit e6d9fd8a4f
2 changed files with 27 additions and 2 deletions

View file

@ -339,10 +339,17 @@ def check_lock(file_name, contents):
packages_by_name.setdefault(package["name"], []).append((package["version"], source))
for (name, packages) in packages_by_name.iteritems():
if name in exceptions or len(packages) <= 1:
has_duplicates = len(packages) > 1
duplicates_allowed = name in exceptions
if has_duplicates == duplicates_allowed:
continue
message = "duplicate versions for package `{}`".format(name)
if duplicates_allowed:
message = 'duplicates for `{}` are allowed, but only single version found'.format(name)
else:
message = "duplicate versions for package `{}`".format(name)
packages.sort()
packages_dependencies = list(find_reverse_dependencies(name, content))
for version, source in packages: