diff options
| author | Wyatt Lee Baldwin <self@wyattbaldwin.com> | 2014-02-12 00:52:26 -0800 |
|---|---|---|
| committer | Wyatt Lee Baldwin <self@wyattbaldwin.com> | 2014-02-12 00:52:26 -0800 |
| commit | f2bb3b0ab09da5fc1c186765052aea8fd87a9b2b (patch) | |
| tree | 89de9634f07b2aaf4b25dc9e504302552a3abe38 /setuptools | |
| parent | 9fb3ebb7470702513ba603e8011219f44b35537b (diff) | |
| download | python-setuptools-git-f2bb3b0ab09da5fc1c186765052aea8fd87a9b2b.tar.gz | |
Add unit tests for find_packages
--HG--
extra : rebase_source : 75f5ce4d2fb9d0ccd7168739c23d9ea1eeeb9112
Diffstat (limited to 'setuptools')
| -rw-r--r-- | setuptools/tests/test_find_packages.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/setuptools/tests/test_find_packages.py b/setuptools/tests/test_find_packages.py new file mode 100644 index 00000000..f66ea333 --- /dev/null +++ b/setuptools/tests/test_find_packages.py @@ -0,0 +1,72 @@ +"""Tests for setuptools.find_packages().""" +import os +import shutil +import tempfile +import unittest + +from setuptools import find_packages + + +class TestFindPackages(unittest.TestCase): + + def setUp(self): + self.dist_dir = tempfile.mkdtemp() + self._make_pkg_structure() + + def tearDown(self): + shutil.rmtree(self.dist_dir) + + def _make_pkg_structure(self): + """Make basic package structure. + + dist/ + docs/ + conf.py + pkg/ + __pycache__/ + nspkg/ + mod.py + subpkg/ + assets/ + asset + __init__.py + setup.py + + """ + self.docs_dir = self._mkdir('docs', self.dist_dir) + self._touch('conf.py', self.docs_dir) + self.pkg_dir = self._mkdir('pkg', self.dist_dir) + self._mkdir('__pycache__', self.pkg_dir) + self.ns_pkg_dir = self._mkdir('nspkg', self.pkg_dir) + self._touch('mod.py', self.ns_pkg_dir) + self.sub_pkg_dir = self._mkdir('subpkg', self.pkg_dir) + self.asset_dir = self._mkdir('assets', self.sub_pkg_dir) + self._touch('asset', self.asset_dir) + self._touch('__init__.py', self.sub_pkg_dir) + self._touch('setup.py', self.dist_dir) + + def _mkdir(self, path, parent_dir=None): + if parent_dir: + path = os.path.join(parent_dir, path) + os.mkdir(path) + return path + + def _touch(self, path, dir_=None): + if dir_: + path = os.path.join(dir_, path) + fp = open(path, 'w') + fp.close() + return path + + def test_regular_package(self): + self._touch('__init__.py', self.pkg_dir) + packages = find_packages(self.dist_dir) + self.assertEqual(packages, ['pkg', 'pkg.subpkg']) + + def test_dir_with_dot_is_skipped(self): + shutil.rmtree(os.path.join(self.dist_dir, 'pkg/subpkg/assets')) + data_dir = self._mkdir('some.data', self.pkg_dir) + self._touch('__init__.py', data_dir) + self._touch('file.dat', data_dir) + packages = find_packages(self.dist_dir) + self.assertNotIn('pkg.some.data', packages) |
