1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00

test changes due to virtualenv not using distribute

This commit is contained in:
Marcus Smith 2013-06-13 22:43:26 -07:00
parent 72f0ec9419
commit ff1a79381a
9 changed files with 30 additions and 139 deletions

View file

@ -232,13 +232,6 @@ class InstallCommand(Command):
logger.warn(msg)
return
# import setuptools
# if (options.use_user_site and
# requirement_set.has_editables and
# not getattr(setuptools, '_distribute', False)):
# raise InstallationError('--user --editable not supported with setuptools, use distribute')
try:
if not options.no_download:
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)

View file

@ -22,7 +22,7 @@ class WheelCommand(Command):
Wheel is a built-package format, and offers the advantage of not recompiling your software during every install.
For more details, see the wheel docs: http://wheel.readthedocs.org/en/latest.
Requirements: distribute>=0.6.34 (not setuptools), and wheel.
Requirements: distribute>=0.6.34 or setuptools>=0.7.2, and wheel.
'pip wheel' uses the bdist_wheel setuptools extension from the wheel package to build individual wheels.
@ -78,7 +78,7 @@ class WheelCommand(Command):
def run(self, options, args):
# requirements: wheel, and distribute
# confirm requirements
try:
import wheel.bdist_wheel
except ImportError:

View file

@ -27,7 +27,7 @@ def test_find_links_requirements_file_relative_path():
e = reset_env()
write_file('test-req.txt', textwrap.dedent("""
--no-index
--find-links=../../../../data/packages/
--find-links=../../../data/packages/
parent==0.1
"""))
result = run_pip(

View file

@ -38,26 +38,11 @@ class Tests_UserSite:
assert 'INITools'== project_name, "'%s' should be 'INITools'" %project_name
def test_install_subversion_usersite_editable_with_setuptools_fails(self):
"""
Test installing current directory ('.') into usersite using setuptools fails
"""
# We don't try to use setuptools for 3.X.
if sys.version_info >= (3,):
raise SkipTest()
env = reset_env(use_distribute=False, system_site_packages=True)
result = run_pip('install', '--user', '-e',
'%s#egg=initools-dev' %
local_checkout('svn+http://svn.colorstudy.com/INITools/trunk'),
expect_error=True)
assert '--user --editable not supported with setuptools, use distribute' in result.stdout
def test_install_subversion_usersite_editable_with_distribute(self):
"""
Test installing current directory ('.') into usersite after installing distribute
"""
env = reset_env(use_distribute=True, system_site_packages=True)
env = reset_env(system_site_packages=True)
result = run_pip('install', '--user', '-e',
'%s#egg=initools-dev' %
local_checkout('svn+http://svn.colorstudy.com/INITools/trunk'))
@ -68,7 +53,7 @@ class Tests_UserSite:
"""
Test installing current directory ('.') into usersite
"""
env = reset_env(use_distribute=True, system_site_packages=True)
env = reset_env(system_site_packages=True)
run_from = abspath(join(tests_data, 'packages', 'FSPkg'))
result = run_pip('install', '--user', curdir, cwd=run_from, expect_error=False)
fspkg_folder = env.user_site/'fspkg'
@ -225,7 +210,7 @@ class Tests_UserSite:
"""
Test uninstall editable local user install
"""
env = reset_env(use_distribute=True, system_site_packages=True)
env = reset_env(, system_site_packages=True)
#install
to_install = abspath(join(tests_data, 'packages', 'FSPkg'))
@ -245,7 +230,7 @@ class Tests_UserSite:
"""
Test user install from wheel
"""
env = reset_env(system_site_packages=True, use_distribute=True)
env = reset_env(system_site_packages=True)
pip_install_local('wheel')
result = run_pip('install', 'simple.dist==0.1', '--user', '--use-wheel',
'--no-index', '--find-links='+find_links)

View file

@ -9,7 +9,7 @@ def test_install_from_wheel():
"""
Test installing from a wheel.
"""
env = reset_env(use_distribute=True)
env = reset_env()
result = run_pip('install', 'simple.dist', '--use-wheel',
'--no-index', '--find-links='+find_links,
expect_error=False)
@ -27,7 +27,7 @@ def test_install_from_wheel_with_extras():
import ast
except ImportError:
raise SkipTest("Need ast module to interpret wheel extras")
env = reset_env(use_distribute=True)
env = reset_env()
result = run_pip('install', 'complex-dist[simple]', '--use-wheel',
'--no-index', '--find-links='+find_links,
expect_error=False)
@ -45,7 +45,7 @@ def test_install_from_wheel_file():
"""
Test installing directly from a wheel file.
"""
env = reset_env(use_distribute=True)
env = reset_env()
package = abspath(join(tests_data,
'packages',
'headers.dist-0.1-py2.py3-none-any.whl'))
@ -60,7 +60,7 @@ def test_install_wheel_with_target():
"""
Test installing a wheel using pip install --target
"""
env = reset_env(use_distribute=True)
env = reset_env()
pip_install_local('wheel')
target_dir = env.scratch_path/'target'
result = run_pip('install', 'simple.dist==0.1', '-t', target_dir, '--use-wheel',
@ -73,7 +73,7 @@ def test_install_from_wheel_installs_deps():
Test can install dependencies of wheels
"""
# 'requires_source' depends on the 'source' project
env = reset_env(use_distribute=True)
env = reset_env()
package = abspath(join(tests_data,
'packages',
'requires_source-1.0-py2.py3-none-any.whl'))
@ -86,7 +86,7 @@ def test_install_from_wheel_no_deps():
Test --no-deps works with wheel installs
"""
# 'requires_source' depends on the 'source' project
env = reset_env(use_distribute=True)
env = reset_env()
package = abspath(join(tests_data,
'packages',
'requires_source-1.0-py2.py3-none-any.whl'))

View file

@ -80,7 +80,7 @@ def test_search_missing_argument():
"""
Test missing required argument for search
"""
env = reset_env(use_distribute=True)
env = reset_env()
result = run_pip('search', expect_error=True)
assert 'ERROR: Missing required argument (search query).' in result.stdout
@ -111,7 +111,7 @@ def test_search_should_exit_status_code_zero_when_find_packages():
"""
Test search exit status code for package found
"""
env = reset_env(use_distribute=True)
env = reset_env()
result = run_pip('search', 'pip')
assert result.returncode == SUCCESS
@ -120,6 +120,6 @@ def test_search_exit_status_code_when_finds_no_package():
"""
Test search exit status code for no matches
"""
env = reset_env(use_distribute=True)
env = reset_env()
result = run_pip('search', 'non-existant-package', expect_error=True)
assert result.returncode == NO_MATCHES_FOUND, result.returncode

View file

@ -14,27 +14,15 @@ def test_pip_wheel_fails_without_wheel():
"""
Test 'pip wheel' fails without wheel
"""
env = reset_env(use_distribute=True)
env = reset_env()
result = run_pip('wheel', '--no-index', '-f', find_links, 'simple==3.0', expect_error=True)
assert "'pip wheel' requires bdist_wheel" in result.stdout
def test_pip_wheel_setuptools_fails():
"""
Test 'pip wheel' fails with setuptools
"""
if sys.version_info >= (3, 0):
# virtualenv installs distribute in py3
raise SkipTest()
env = reset_env(use_distribute=False)
pip_install_local('wheel')
result = run_pip('wheel', '--no-index', '-f', find_links, 'simple==3.0', expect_error=True)
assert "'pip wheel' requires %s" % wheel.distribute_requirement in result.stdout, result.stdout
def test_pip_wheel_success():
"""
Test 'pip wheel' success.
"""
env = reset_env(use_distribute=True)
env = reset_env()
pip_install_local('wheel')
result = run_pip('wheel', '--no-index', '-f', find_links, 'simple==3.0')
wheel_file_name = 'simple-3.0-py%s-none-any.whl' % pyversion_nodot
@ -47,7 +35,7 @@ def test_pip_wheel_fail():
"""
Test 'pip wheel' failure.
"""
env = reset_env(use_distribute=True)
env = reset_env()
pip_install_local('wheel')
result = run_pip('wheel', '--no-index', '-f', find_links, 'wheelbroken==0.1')
wheel_file_name = 'wheelbroken-0.1-py%s-none-any.whl' % pyversion_nodot
@ -61,7 +49,7 @@ def test_pip_wheel_ignore_wheels_editables():
"""
Test 'pip wheel' ignores editables and *.whl files in requirements
"""
env = reset_env(use_distribute=True)
env = reset_env()
pip_install_local('wheel')
local_wheel = '%s/simple.dist-0.1-py2.py3-none-any.whl' % find_links
@ -89,7 +77,7 @@ def test_no_clean_option_blocks_cleaning_after_wheel():
"""
Test --no-clean option blocks cleaning after wheel build
"""
env = reset_env(use_distribute=True)
env = reset_env()
pip_install_local('wheel')
result = run_pip('wheel', '--no-clean', '--no-index', '--find-links=%s' % find_links, 'simple')
build = env.venv_path/'build'/'simple'
@ -101,7 +89,7 @@ def test_pip_wheel_source_deps():
Test 'pip wheel --use-wheel' finds and builds source archive dependencies of wheels
"""
# 'requires_source' is a wheel that depends on the 'source' project
env = reset_env(use_distribute=True)
env = reset_env()
pip_install_local('wheel')
result = run_pip('wheel', '--use-wheel', '--no-index', '-f', find_links, 'requires_source')
wheel_file_name = 'source-1.0-py%s-none-any.whl' % pyversion_nodot

View file

@ -55,12 +55,10 @@ def demand_dirs(path):
sys.path = [src_folder] + sys.path
def create_virtualenv(where, distribute=False):
def create_virtualenv(where):
import virtualenv
if sys.version_info[0] > 2:
distribute = True
virtualenv.create_environment(
where, use_distribute=distribute, unzip_setuptools=True)
where, unzip_setuptools=True)
return virtualenv.path_locations(where)
@ -90,26 +88,9 @@ def clear_environ(environ):
return dict(((k, v) for k, v in environ.items()
if not k.lower().startswith('pip_')))
def install_setuptools(env):
easy_install = os.path.join(env.bin_path, 'easy_install')
version = 'setuptools==0.6c11'
if sys.platform != 'win32':
return env.run(easy_install, version)
tempdir = tempfile.mkdtemp()
try:
for f in glob.glob(easy_install+'*'):
shutil.copy2(f, tempdir)
return env.run(os.path.join(tempdir, 'easy_install'), version)
finally:
rmtree(tempdir)
env = None
def reset_env(environ=None,
use_distribute=False,
system_site_packages=False,
sitecustomize=None,
insecure=True):
@ -117,24 +98,15 @@ def reset_env(environ=None,
Keyword arguments:
environ: an environ object to use.
use_distribute: use distribute, not setuptools.
system_site_packages: create a virtualenv that simulates --system-site-packages.
sitecustomize: a string containing python code to add to sitecustomize.py.
insecure: how to set the --insecure option for py25 tests.
"""
if sys.version_info >= (3,):
use_distribute = True
global env
if use_distribute:
test_class = TestPipEnvironmentD
else:
test_class = TestPipEnvironment
env = test_class(environ, sitecustomize=sitecustomize)
test_class.rebuild_venv = False
env = TestPipEnvironment(environ, sitecustomize=sitecustomize)
TestPipEnvironment.rebuild_venv = False
if system_site_packages:
#testing often occurs starting from a private virtualenv (e.g. with tox)
@ -142,7 +114,7 @@ def reset_env(environ=None,
#to create a 'system-site-packages' virtualenv
#hence, this workaround
(env.lib_path/'no-global-site-packages.txt').rm()
test_class.rebuild_venv = True
TestPipEnvironment.rebuild_venv = True
return env
@ -303,16 +275,13 @@ class TestPipEnvironment(TestFileEnvironment):
exe = sys.platform == 'win32' and '.exe' or ''
verbose = False
use_distribute = False
# Keep short to undercut windows path length issues
setuptools = 's'
rebuild_venv = True
def __init__(self, environ=None, sitecustomize=None):
import virtualenv
self.root_path = fast_test_env_root / self.setuptools
self.backup_path = fast_test_env_backup / self.setuptools
self.root_path = fast_test_env_root
self.backup_path = fast_test_env_backup
self.scratch_path = self.root_path / self.scratch
@ -366,7 +335,7 @@ class TestPipEnvironment(TestFileEnvironment):
demand_dirs(self.scratch_path)
# Create a virtualenv and remember where it's putting things.
create_virtualenv(self.venv_path, distribute=self.use_distribute)
create_virtualenv(self.venv_path)
demand_dirs(self.user_site_path)
@ -382,10 +351,6 @@ class TestPipEnvironment(TestFileEnvironment):
"Oops! 'python' in our test environment runs %r"
" rather than expected %r" % (pythonbin, self.bin_path/'python'))
# make sure we have current setuptools to avoid svn incompatibilities
if not self.use_distribute:
install_setuptools(self)
# Uninstall whatever version of pip came with the virtualenv.
# Earlier versions of pip were incapable of
# self-uninstallation on Windows, so we use the one we're testing.
@ -469,16 +434,6 @@ class TestPipEnvironment(TestFileEnvironment):
os.remove(cache_path)
class TestPipEnvironmentD(TestPipEnvironment):
"""A specialized TestFileEnvironment that contains distribute"""
use_distribute = True
# Keep short to undercut windows path length issues
setuptools = 'd'
rebuild_venv = True
def run_pip(*args, **kw):
result = env.run('pip', *args, **kw)
ignore = []

View file

@ -44,17 +44,9 @@ class Test_reset_env:
f = open(self.test_file, 'w')
f.close()
# create a TestPipEnvironmentD env and add a file to the backup
self.envD = reset_env(use_distribute=True)
self.test_fileD = self.envD.backup_path / self.envD.venv / 'test_fileD'
f = open(self.test_fileD, 'w')
f.close()
def teardown(self):
if os.path.isfile(self.test_file):
self.test_file.rm()
if os.path.isfile(self.test_fileD):
self.test_fileD.rm()
def test_cache_venv(self):
"""
@ -62,18 +54,7 @@ class Test_reset_env:
"""
env = reset_env()
assert os.path.isfile(self.test_file)
env = reset_env(use_distribute=True)
assert os.path.isfile(self.test_fileD)
def test_reset_env_seperate(self):
"""
Test TestPipEnvironment and TestPipEnvironmentD classes maintain seperate caches in py2
"""
# skip for py3 because both classes use the distribute cache
if sys.version_info > (3, 0):
raise SkipTest()
assert not os.path.isfile(self.env.backup_path / self.env.venv / 'test_fileD')
assert not os.path.isfile(self.envD.backup_path / self.envD.venv / 'test_file')
def test_reset_env_system_site_packages(self):
"""
@ -127,17 +108,6 @@ def test_sitecustomize_not_growing_in_fast_environment():
def test_tmp_dir_exists_in_env():
"""
Test that $TMPDIR == env.temp_path and path exists, and env.assert_no_temp() passes
"""
#need these tests to ensure the assert_no_temp feature of scripttest is working
env = reset_env(use_distribute=True)
env.assert_no_temp() #this fails if env.tmp_path doesn't exist
assert env.environ['TMPDIR'] == env.temp_path
assert isdir(env.temp_path)
def test_tmp_dir_exists_in_fast_env():
"""
Test that $TMPDIR == env.temp_path and path exists and env.assert_no_temp() passes (in fast env)
"""