Commit 14c82188 authored by Benoit Pierre's avatar Benoit Pierre

test: drop pkg_resources tests dependency on easy_install

parent 7956986e
import setuptools
setuptools.setup(
name="my-test-package",
version="1.0",
zip_safe=True,
)
Metadata-Version: 1.0
Name: my-test-package
Version: 1.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN
setup.cfg
setup.py
my_test_package.egg-info/PKG-INFO
my_test_package.egg-info/SOURCES.txt
my_test_package.egg-info/dependency_links.txt
my_test_package.egg-info/top_level.txt
my_test_package.egg-info/zip-safe
\ No newline at end of file
import subprocess import py
import sys
import pytest import pytest
import pkg_resources import pkg_resources
SETUP_TEMPLATE = """
import setuptools TESTS_DATA_DIR = py.path.local(__file__).dirpath('data')
setuptools.setup(
name="my-test-package",
version="1.0",
zip_safe=True,
)
""".lstrip()
class TestFindDistributions: class TestFindDistributions:
...@@ -21,46 +13,22 @@ class TestFindDistributions: ...@@ -21,46 +13,22 @@ class TestFindDistributions:
target_dir = tmpdir.mkdir('target') target_dir = tmpdir.mkdir('target')
# place a .egg named directory in the target that is not an egg: # place a .egg named directory in the target that is not an egg:
target_dir.mkdir('not.an.egg') target_dir.mkdir('not.an.egg')
return str(target_dir) return target_dir
@pytest.fixture
def project_dir(self, tmpdir):
project_dir = tmpdir.mkdir('my-test-package')
(project_dir / "setup.py").write(SETUP_TEMPLATE)
return str(project_dir)
def test_non_egg_dir_named_egg(self, target_dir): def test_non_egg_dir_named_egg(self, target_dir):
dists = pkg_resources.find_distributions(target_dir) dists = pkg_resources.find_distributions(str(target_dir))
assert not list(dists) assert not list(dists)
def test_standalone_egg_directory(self, project_dir, target_dir): def test_standalone_egg_directory(self, target_dir):
# install this distro as an unpacked egg: (TESTS_DATA_DIR / 'my-test-package_unpacked-egg').copy(target_dir)
args = [ dists = pkg_resources.find_distributions(str(target_dir))
sys.executable,
'-c', 'from setuptools.command.easy_install import main; main()',
'-mNx',
'-d', target_dir,
'--always-unzip',
project_dir,
]
subprocess.check_call(args)
dists = pkg_resources.find_distributions(target_dir)
assert [dist.project_name for dist in dists] == ['my-test-package'] assert [dist.project_name for dist in dists] == ['my-test-package']
dists = pkg_resources.find_distributions(target_dir, only=True) dists = pkg_resources.find_distributions(str(target_dir), only=True)
assert not list(dists) assert not list(dists)
def test_zipped_egg(self, project_dir, target_dir): def test_zipped_egg(self, target_dir):
# install this distro as an unpacked egg: (TESTS_DATA_DIR / 'my-test-package_zipped-egg').copy(target_dir)
args = [ dists = pkg_resources.find_distributions(str(target_dir))
sys.executable,
'-c', 'from setuptools.command.easy_install import main; main()',
'-mNx',
'-d', target_dir,
'--zip-ok',
project_dir,
]
subprocess.check_call(args)
dists = pkg_resources.find_distributions(target_dir)
assert [dist.project_name for dist in dists] == ['my-test-package'] assert [dist.project_name for dist in dists] == ['my-test-package']
dists = pkg_resources.find_distributions(target_dir, only=True) dists = pkg_resources.find_distributions(str(target_dir), only=True)
assert not list(dists) assert not list(dists)
[pytest] [pytest]
addopts=--doctest-modules --doctest-glob=pkg_resources/api_tests.txt -r sxX addopts=--doctest-modules --doctest-glob=pkg_resources/api_tests.txt -r sxX
norecursedirs=dist build *.egg setuptools/extern pkg_resources/extern tools .* norecursedirs=dist build *.egg setuptools/extern pkg_resources/extern pkg_resources/tests/data tools .*
flake8-ignore = flake8-ignore =
setuptools/site-patch.py F821 setuptools/site-patch.py F821
setuptools/py*compat.py F811 setuptools/py*compat.py F811
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment