def check_requirements_integrity():
raw_requirements = _get_all_raw_requirements()
if not raw_requirements:
raise AssertionError(
'check-requirements expects at least requirements-minimal.txt '
'and requirements.txt',
)
incorrect = []
for req, filename in raw_requirements:
version = to_version(req)
if version is None: # Not pinned, just skip
continue
if req.key not in installed_things:
raise AssertionError(
'{} is required in {}, but is not installed'.format(
req.key, filename,
)
)
installed_version = to_version(parse_requirement('{}=={}'.format(
req.key, installed_things[req.key].version,
)))
if installed_version != version:
incorrect.append((filename, req.key, version, installed_version))
if incorrect:
raise AssertionError(
'Installed requirements do not match requirement files!\n'
'Rebuild your virtualenv:\n{}'.format(''.join(
' - ({}) {}=={} (installed) {}=={}\n'.format(
filename, pkg, depped, pkg, installed,
)
for filename, pkg, depped, installed in incorrect
))
)
评论列表
文章目录