Pytest plugin that tests if requirements are frozen.
**/req*.txt and **/req*.pip are the patterns of path to match.
Django<2.2 # ok
Django>=1.0 # not ok
requests # not ok
requests>1.0,<2.3 # ok
-e git://github.com/org/pkg.git#egg=pkg # not ok
-e git://github.com/org/pkg.git@{revision}#egg=pkg # ok
-e /local/file # ok
================================== FAILURES ===================================
_________________ requirement: Django is not frozen properly. _________________
requirement freeze test failed
improperly frozen requirement: 'Django': [('>', '1.0')]
try adding pkg==version, or git@revision
________________ requirement: requests is not frozen properly. ________________
requirement freeze test failed
improperly frozen requirement: 'requests': []
try adding pkg==version, or git@revision
________________ requirement: pkg is not frozen properly. _____________________
requirement freeze test failed
improperly frozen requirement: 'pkg': '[no revision]'
try adding pkg==version, or git@revision
# just add --freeze_reqs arg to pytest
pytest --freeze_reqs
# if you want to run only freeze_reqs tests
pytest -m freeze_reqs --freeze_reqs
# here you can configure paths/files to ignore
# these are checked with contain.
freeze-reqs-ignore-paths=requirement_local.txt
requirements/req_dev.txt
# here you can configure paths/files to include
# these are checked with contain.
freeze-reqs-include-paths=requirements/base.txt
requirements/development.txt