aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/tests/namespaces.py42
-rw-r--r--setuptools/tests/test_namespaces.py47
2 files changed, 47 insertions, 42 deletions
diff --git a/setuptools/tests/namespaces.py b/setuptools/tests/namespaces.py
new file mode 100644
index 00000000..ef5ecdad
--- /dev/null
+++ b/setuptools/tests/namespaces.py
@@ -0,0 +1,42 @@
+from __future__ import absolute_import, unicode_literals
+
+import textwrap
+
+
+def build_namespace_package(tmpdir, name):
+ src_dir = tmpdir / name
+ src_dir.mkdir()
+ setup_py = src_dir / 'setup.py'
+ namespace, sep, rest = name.partition('.')
+ script = textwrap.dedent("""
+ import setuptools
+ setuptools.setup(
+ name={name!r},
+ version="1.0",
+ namespace_packages=[{namespace!r}],
+ packages=[{namespace!r}],
+ )
+ """).format(**locals())
+ setup_py.write_text(script, encoding='utf-8')
+ ns_pkg_dir = src_dir / namespace
+ ns_pkg_dir.mkdir()
+ pkg_init = ns_pkg_dir / '__init__.py'
+ tmpl = '__import__("pkg_resources").declare_namespace({namespace!r})'
+ decl = tmpl.format(**locals())
+ pkg_init.write_text(decl, encoding='utf-8')
+ pkg_mod = ns_pkg_dir / (rest + '.py')
+ some_functionality = 'name = {rest!r}'.format(**locals())
+ pkg_mod.write_text(some_functionality, encoding='utf-8')
+ return src_dir
+
+
+def make_site_dir(target):
+ """
+ Add a sitecustomize.py module in target to cause
+ target to be added to site dirs such that .pth files
+ are processed there.
+ """
+ sc = target / 'sitecustomize.py'
+ target_str = str(target)
+ tmpl = '__import__("site").addsitedir({target_str!r})'
+ sc.write_text(tmpl.format(**locals()), encoding='utf-8')
diff --git a/setuptools/tests/test_namespaces.py b/setuptools/tests/test_namespaces.py
index ad3c78b8..c148577d 100644
--- a/setuptools/tests/test_namespaces.py
+++ b/setuptools/tests/test_namespaces.py
@@ -1,52 +1,15 @@
from __future__ import absolute_import, unicode_literals
import os
-import textwrap
import sys
import subprocess
import pytest
+from . import namespaces
-class TestNamespaces:
- @staticmethod
- def build_namespace_package(tmpdir, name):
- src_dir = tmpdir / name
- src_dir.mkdir()
- setup_py = src_dir / 'setup.py'
- namespace, sep, rest = name.partition('.')
- script = textwrap.dedent("""
- import setuptools
- setuptools.setup(
- name={name!r},
- version="1.0",
- namespace_packages=[{namespace!r}],
- packages=[{namespace!r}],
- )
- """).format(**locals())
- setup_py.write_text(script, encoding='utf-8')
- ns_pkg_dir = src_dir / namespace
- ns_pkg_dir.mkdir()
- pkg_init = ns_pkg_dir / '__init__.py'
- tmpl = '__import__("pkg_resources").declare_namespace({namespace!r})'
- decl = tmpl.format(**locals())
- pkg_init.write_text(decl, encoding='utf-8')
- pkg_mod = ns_pkg_dir / (rest + '.py')
- some_functionality = 'name = {rest!r}'.format(**locals())
- pkg_mod.write_text(some_functionality, encoding='utf-8')
- return src_dir
- @staticmethod
- def make_site_dir(target):
- """
- Add a sitecustomize.py module in target to cause
- target to be added to site dirs such that .pth files
- are processed there.
- """
- sc = target / 'sitecustomize.py'
- target_str = str(target)
- tmpl = '__import__("site").addsitedir({target_str!r})'
- sc.write_text(tmpl.format(**locals()), encoding='utf-8')
+class TestNamespaces:
@pytest.mark.xfail(sys.version_info < (3, 3),
reason="Requires PEP 420")
@@ -57,8 +20,8 @@ class TestNamespaces:
should leave the namespace in tact and both packages reachable by
import.
"""
- pkg_A = self.build_namespace_package(tmpdir, 'myns.pkgA')
- pkg_B = self.build_namespace_package(tmpdir, 'myns.pkgB')
+ pkg_A = namespaces.build_namespace_package(tmpdir, 'myns.pkgA')
+ pkg_B = namespaces.build_namespace_package(tmpdir, 'myns.pkgB')
site_packages = tmpdir / 'site-packages'
path_packages = tmpdir / 'path-packages'
targets = site_packages, path_packages
@@ -71,7 +34,7 @@ class TestNamespaces:
'-t', str(site_packages),
]
subprocess.check_call(install_cmd)
- self.make_site_dir(site_packages)
+ namespaces.make_site_dir(site_packages)
install_cmd = [
'pip',
'install',