summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_find_packages.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/tests/test_find_packages.py')
-rw-r--r--setuptools/tests/test_find_packages.py38
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'])