test_find_distributions.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import shutil
  2. from pathlib import Path
  3. import pytest
  4. import pkg_resources
  5. TESTS_DATA_DIR = Path(__file__).parent / 'data'
  6. class TestFindDistributions:
  7. @pytest.fixture
  8. def target_dir(self, tmpdir):
  9. target_dir = tmpdir.mkdir('target')
  10. # place a .egg named directory in the target that is not an egg:
  11. target_dir.mkdir('not.an.egg')
  12. return target_dir
  13. def test_non_egg_dir_named_egg(self, target_dir):
  14. dists = pkg_resources.find_distributions(str(target_dir))
  15. assert not list(dists)
  16. def test_standalone_egg_directory(self, target_dir):
  17. shutil.copytree(
  18. TESTS_DATA_DIR / 'my-test-package_unpacked-egg',
  19. target_dir,
  20. dirs_exist_ok=True,
  21. )
  22. dists = pkg_resources.find_distributions(str(target_dir))
  23. assert [dist.project_name for dist in dists] == ['my-test-package']
  24. dists = pkg_resources.find_distributions(str(target_dir), only=True)
  25. assert not list(dists)
  26. def test_zipped_egg(self, target_dir):
  27. shutil.copytree(
  28. TESTS_DATA_DIR / 'my-test-package_zipped-egg',
  29. target_dir,
  30. dirs_exist_ok=True,
  31. )
  32. dists = pkg_resources.find_distributions(str(target_dir))
  33. assert [dist.project_name for dist in dists] == ['my-test-package']
  34. dists = pkg_resources.find_distributions(str(target_dir), only=True)
  35. assert not list(dists)
  36. def test_zipped_sdist_one_level_removed(self, target_dir):
  37. shutil.copytree(
  38. TESTS_DATA_DIR / 'my-test-package-zip', target_dir, dirs_exist_ok=True
  39. )
  40. dists = pkg_resources.find_distributions(
  41. str(target_dir / "my-test-package.zip")
  42. )
  43. assert [dist.project_name for dist in dists] == ['my-test-package']
  44. dists = pkg_resources.find_distributions(
  45. str(target_dir / "my-test-package.zip"), only=True
  46. )
  47. assert not list(dists)