diff options
Diffstat (limited to 'setuptools/tests/test_find_packages.py')
| -rw-r--r-- | setuptools/tests/test_find_packages.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/setuptools/tests/test_find_packages.py b/setuptools/tests/test_find_packages.py index c50309d2..abb0dd61 100644 --- a/setuptools/tests/test_find_packages.py +++ b/setuptools/tests/test_find_packages.py @@ -1,12 +1,16 @@ """Tests for setuptools.find_packages().""" import os import shutil +import sys import tempfile import unittest from setuptools import find_packages +PEP420 = sys.version_info[:2] >= (3, 3) + + class TestFindPackages(unittest.TestCase): def setUp(self): @@ -58,6 +62,7 @@ class TestFindPackages(unittest.TestCase): fp.close() return path + @unittest.skipIf(PEP420, 'Not a PEP 420 env') def test_regular_package(self): self._touch('__init__.py', self.pkg_dir) packages = find_packages(self.dist_dir) @@ -80,3 +85,36 @@ class TestFindPackages(unittest.TestCase): self._touch('file.dat', data_dir) packages = find_packages(self.dist_dir) self.assertTrue('pkg.some.data' not in packages) + + @unittest.skipIf(not PEP420, 'PEP 420 only') + def test_pep420_ns_package(self): + packages = find_packages( + self.dist_dir, include=['pkg*'], exclude=['pkg.subpkg.assets']) + self.assertEqual(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg']) + + @unittest.skipIf(not PEP420, 'PEP 420 only') + def test_pep420_ns_package_no_includes(self): + packages = find_packages( + self.dist_dir, exclude=['pkg.subpkg.assets']) + self.assertEqual(packages, ['docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg']) + + @unittest.skipIf(not PEP420, 'PEP 420 only') + def test_pep420_ns_package_no_includes_or_excludes(self): + packages = find_packages(self.dist_dir) + expected = [ + 'docs', 'pkg', 'pkg.nspkg', 'pkg.subpkg', 'pkg.subpkg.assets'] + self.assertEqual(packages, expected) + + @unittest.skipIf(not PEP420, 'PEP 420 only') + def test_regular_package_with_nested_pep420_ns_packages(self): + self._touch('__init__.py', self.pkg_dir) + packages = find_packages( + self.dist_dir, exclude=['docs', 'pkg.subpkg.assets']) + self.assertEqual(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg']) + + @unittest.skipIf(not PEP420, 'PEP 420 only') + def test_pep420_ns_package_no_non_package_dirs(self): + shutil.rmtree(self.docs_dir) + shutil.rmtree(os.path.join(self.dist_dir, 'pkg/subpkg/assets')) + packages = find_packages(self.dist_dir) + self.assertEqual(packages, ['pkg', 'pkg.nspkg', 'pkg.subpkg']) |
