Commit d8f8de7f authored by Carsten Klein's avatar Carsten Klein Committed by Paul Ganssle

Add tests for find_packages_ns()

parent 244ff322
...@@ -7,14 +7,15 @@ import platform ...@@ -7,14 +7,15 @@ import platform
import pytest import pytest
import setuptools from setuptools.extern.six import PY3
from setuptools import find_packages from setuptools import find_packages
find_420_packages = setuptools.PEP420PackageFinder.find py3_only = pytest.mark.xfail(not PY3, reason="Test runs on Python 3 only")
if PY3:
from setuptools import find_packages_ns
# modeled after CPython's test.support.can_symlink # modeled after CPython's test.support.can_symlink
def can_symlink(): def can_symlink():
TESTFN = tempfile.mktemp() TESTFN = tempfile.mktemp()
symlink_path = TESTFN + "can_symlink" symlink_path = TESTFN + "can_symlink"
...@@ -153,30 +154,35 @@ class TestFindPackages: ...@@ -153,30 +154,35 @@ class TestFindPackages:
def _assert_packages(self, actual, expected): def _assert_packages(self, actual, expected):
assert set(actual) == set(expected) assert set(actual) == set(expected)
@py3_only
def test_pep420_ns_package(self): def test_pep420_ns_package(self):
packages = find_420_packages( packages = find_packages_ns(
self.dist_dir, include=['pkg*'], exclude=['pkg.subpkg.assets']) self.dist_dir, include=['pkg*'], exclude=['pkg.subpkg.assets'])
self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg']) self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg'])
@py3_only
def test_pep420_ns_package_no_includes(self): def test_pep420_ns_package_no_includes(self):
packages = find_420_packages( packages = find_packages_ns(
self.dist_dir, exclude=['pkg.subpkg.assets']) self.dist_dir, exclude=['pkg.subpkg.assets'])
self._assert_packages(packages, ['docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg']) self._assert_packages(packages, ['docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg'])
@py3_only
def test_pep420_ns_package_no_includes_or_excludes(self): def test_pep420_ns_package_no_includes_or_excludes(self):
packages = find_420_packages(self.dist_dir) packages = find_packages_ns(self.dist_dir)
expected = [ expected = ['docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg', 'pkg.subpkg.assets']
'docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg', 'pkg.subpkg.assets']
self._assert_packages(packages, expected) self._assert_packages(packages, expected)
@py3_only
def test_regular_package_with_nested_pep420_ns_packages(self): def test_regular_package_with_nested_pep420_ns_packages(self):
self._touch('__init__.py', self.pkg_dir) self._touch('__init__.py', self.pkg_dir)
packages = find_420_packages( packages = find_packages_ns(
self.dist_dir, exclude=['docs', 'pkg.subpkg.assets']) self.dist_dir, exclude=['docs', 'pkg.subpkg.assets'])
self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg']) self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg'])
@py3_only
def test_pep420_ns_package_no_non_package_dirs(self): def test_pep420_ns_package_no_non_package_dirs(self):
shutil.rmtree(self.docs_dir) shutil.rmtree(self.docs_dir)
shutil.rmtree(os.path.join(self.dist_dir, 'pkg/subpkg/assets')) shutil.rmtree(os.path.join(self.dist_dir, 'pkg/subpkg/assets'))
packages = find_420_packages(self.dist_dir) packages = find_packages_ns(self.dist_dir)
self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg']) self._assert_packages(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg'])
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