test_CI_reqs.py 876 B

12345678910111213141516171819202122232425262728293031323334
  1. import os
  2. import pprint
  3. import pytest
  4. def _get_extras_reqs_from(name):
  5. try:
  6. with open(os.path.join('requirements', name)) as fh:
  7. lines = fh.readlines()
  8. except OSError:
  9. pytest.skip('requirements dir missing, not running from dist?')
  10. else:
  11. return {
  12. line.split()[1] for line in lines
  13. if line.startswith('-r extras/')
  14. }
  15. def _get_all_extras():
  16. return set(
  17. os.path.join('extras', f)
  18. for f in os.listdir('requirements/extras/')
  19. )
  20. def test_all_reqs_enabled_in_tests():
  21. ci_default = _get_extras_reqs_from('test-ci-default.txt')
  22. ci_base = _get_extras_reqs_from('test-ci-base.txt')
  23. defined = ci_default | ci_base
  24. all_extras = _get_all_extras()
  25. diff = all_extras - defined
  26. print('Missing CI reqs:\n{0}'.format(pprint.pformat(diff)))
  27. assert not diff