Download lib/python3.12/site-packages/setuptools/tests/test_develop.py from parallel-reasoner/env-full: direct link, hf CLI and curl.
- Browser
- Download file 3.07 kB
-
https://huggingface.co/parallel-reasoner/env-full/resolve/a2585bd5ca1cf640fa361bd20177ded829caaa8d/lib/python3.12/site-packages/setuptools/tests/test_develop.py
- Command line
-
hf download hf://parallel-reasoner/env-full@a2585bd5ca1cf640fa361bd20177ded829caaa8d/lib/python3.12/site-packages/setuptools/tests/test_develop.py
-
curl -L -o test_develop.py https://huggingface.co/parallel-reasoner/env-full/resolve/a2585bd5ca1cf640fa361bd20177ded829caaa8d/lib/python3.12/site-packages/setuptools/tests/test_develop.py
3.07 kB
| """develop tests""" | |
| import os | |
| import platform | |
| import subprocess | |
| import sys | |
| import pytest | |
| from setuptools._path import paths_on_pythonpath | |
| from . import contexts, namespaces | |
| SETUP_PY = """\ | |
| from setuptools import setup | |
| setup(name='foo', | |
| packages=['foo'], | |
| ) | |
| """ | |
| INIT_PY = """print "foo" | |
| """ | |
| def temp_user(monkeypatch): | |
| with contexts.tempdir() as user_base: | |
| with contexts.tempdir() as user_site: | |
| monkeypatch.setattr('site.USER_BASE', user_base) | |
| monkeypatch.setattr('site.USER_SITE', user_site) | |
| yield | |
| def test_env(tmpdir, temp_user): | |
| target = tmpdir | |
| foo = target.mkdir('foo') | |
| setup = target / 'setup.py' | |
| if setup.isfile(): | |
| raise ValueError(dir(target)) | |
| with setup.open('w') as f: | |
| f.write(SETUP_PY) | |
| init = foo / '__init__.py' | |
| with init.open('w') as f: | |
| f.write(INIT_PY) | |
| with target.as_cwd(): | |
| yield target | |
| class TestNamespaces: | |
| def install_develop(src_dir, target): | |
| develop_cmd = [ | |
| sys.executable, | |
| 'setup.py', | |
| 'develop', | |
| '--install-dir', | |
| str(target), | |
| ] | |
| with src_dir.as_cwd(): | |
| with paths_on_pythonpath([str(target)]): | |
| subprocess.check_call(develop_cmd) | |
| def test_namespace_package_importable(self, tmpdir): | |
| """ | |
| Installing two packages sharing the same namespace, one installed | |
| naturally using pip or `--single-version-externally-managed` | |
| and the other installed using `develop` should leave the namespace | |
| in tact and both packages reachable by import. | |
| """ | |
| pkg_A = namespaces.build_namespace_package(tmpdir, 'myns.pkgA') | |
| pkg_B = namespaces.build_namespace_package(tmpdir, 'myns.pkgB') | |
| target = tmpdir / 'packages' | |
| # use pip to install to the target directory | |
| install_cmd = [ | |
| sys.executable, | |
| '-m', | |
| 'pip', | |
| 'install', | |
| str(pkg_A), | |
| '-t', | |
| str(target), | |
| ] | |
| subprocess.check_call(install_cmd) | |
| self.install_develop(pkg_B, target) | |
| namespaces.make_site_dir(target) | |
| try_import = [ | |
| sys.executable, | |
| '-c', | |
| 'import myns.pkgA; import myns.pkgB', | |
| ] | |
| with paths_on_pythonpath([str(target)]): | |
| subprocess.check_call(try_import) | |
| # additionally ensure that pkg_resources import works | |
| pkg_resources_imp = [ | |
| sys.executable, | |
| '-c', | |
| 'import pkg_resources', | |
| ] | |
| with paths_on_pythonpath([str(target)]): | |
| subprocess.check_call(pkg_resources_imp) | |