Merge pull request #8623 from sbidoul/remove-egg-info-tests-1-sbi

Reduce reliance on .egg-info directories in test suite
This commit is contained in:
Stéphane Bidoul 2020-07-25 16:11:18 +02:00 committed by GitHub
commit aff33ffc4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 165 additions and 153 deletions

View File

@ -188,7 +188,8 @@ def test_pep518_forkbombs(script, data, common_wheels, command, package):
@pytest.mark.network
def test_pip_second_command_line_interface_works(
script, pip_src, data, common_wheels, deprecated_python):
script, pip_src, data, common_wheels, deprecated_python, with_wheel
):
"""
Check if ``pip<PYVERSION>`` commands behaves equally
"""
@ -204,12 +205,12 @@ def test_pip_second_command_line_interface_works(
args.extend(['install', 'INITools==0.2'])
args.extend(['-f', data.packages])
result = script.run(*args, **kwargs)
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'INITools-0.2-py{pyversion}.egg-info'.format(**globals())
'INITools-0.2.dist-info'
)
initools_folder = script.site_packages / 'initools'
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
result.did_create(initools_folder)
@ -231,17 +232,17 @@ def test_install_exit_status_code_when_blank_requirements_file(script):
@pytest.mark.network
def test_basic_install_from_pypi(script):
def test_basic_install_from_pypi(script, with_wheel):
"""
Test installing a package from PyPI.
"""
result = script.pip('install', 'INITools==0.2')
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'INITools-0.2-py{pyversion}.egg-info'.format(**globals())
'INITools-0.2.dist-info'
)
initools_folder = script.site_packages / 'initools'
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
result.did_create(initools_folder)
# Should not display where it's looking for files
@ -406,7 +407,9 @@ def test_vcs_url_urlquote_normalization(script, tmpdir):
@pytest.mark.parametrize("resolver", ["", "--use-feature=2020-resolver"])
def test_basic_install_from_local_directory(script, data, resolver):
def test_basic_install_from_local_directory(
script, data, resolver, with_wheel
):
"""
Test installing from a local directory.
"""
@ -417,12 +420,12 @@ def test_basic_install_from_local_directory(script, data, resolver):
args.append(to_install)
result = script.pip(*args)
fspkg_folder = script.site_packages / 'fspkg'
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
'FSPkg-0.1.dev0.dist-info'
)
result.did_create(fspkg_folder)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
@pytest.mark.parametrize("test_type,editable", [
@ -433,13 +436,15 @@ def test_basic_install_from_local_directory(script, data, resolver):
("embedded_rel_path", False),
("embedded_rel_path", True),
])
def test_basic_install_relative_directory(script, data, test_type, editable):
def test_basic_install_relative_directory(
script, data, test_type, editable, with_wheel
):
"""
Test installing a requirement using a relative path.
"""
egg_info_file = (
dist_info_folder = (
script.site_packages /
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
'FSPkg-0.1.dev0.dist-info'
)
egg_link_file = (
script.site_packages / 'FSPkg.egg-link'
@ -465,7 +470,7 @@ def test_basic_install_relative_directory(script, data, test_type, editable):
if not editable:
result = script.pip('install', req_path,
cwd=script.scratch_path)
result.did_create(egg_info_file)
result.did_create(dist_info_folder)
result.did_create(package_folder)
else:
# Editable install.
@ -562,29 +567,32 @@ def test_hashed_install_failure_later_flag(script, tmpdir):
def test_install_from_local_directory_with_symlinks_to_directories(
script, data):
script, data, with_wheel
):
"""
Test installing from a local directory containing symlinks to directories.
"""
to_install = data.packages.joinpath("symlinks")
result = script.pip('install', to_install)
pkg_folder = script.site_packages / 'symlinks'
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'symlinks-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
'symlinks-0.1.dev0.dist-info'
)
result.did_create(pkg_folder)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
@pytest.mark.skipif("sys.platform == 'win32' or sys.version_info < (3,)")
def test_install_from_local_directory_with_socket_file(script, data, tmpdir):
def test_install_from_local_directory_with_socket_file(
script, data, tmpdir, with_wheel
):
"""
Test installing from a local directory containing a socket file.
"""
egg_info_file = (
dist_info_folder = (
script.site_packages /
"FSPkg-0.1.dev0-py{pyversion}.egg-info".format(**globals())
"FSPkg-0.1.dev0.dist-info"
)
package_folder = script.site_packages / "fspkg"
to_copy = data.packages.joinpath("FSPkg")
@ -597,7 +605,7 @@ def test_install_from_local_directory_with_socket_file(script, data, tmpdir):
result = script.pip("install", "--verbose", to_install)
result.did_create(package_folder)
result.did_create(egg_info_file)
result.did_create(dist_info_folder)
assert str(socket_file_path) in result.stderr
@ -673,7 +681,7 @@ def test_upgrade_argparse_shadowed(script):
assert "Not uninstalling argparse" not in result.stdout
def test_install_curdir(script, data):
def test_install_curdir(script, data, with_wheel):
"""
Test installing current directory ('.').
"""
@ -684,27 +692,27 @@ def test_install_curdir(script, data):
rmtree(egg_info)
result = script.pip('install', curdir, cwd=run_from)
fspkg_folder = script.site_packages / 'fspkg'
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
'FSPkg-0.1.dev0.dist-info'
)
result.did_create(fspkg_folder)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
def test_install_pardir(script, data):
def test_install_pardir(script, data, with_wheel):
"""
Test installing parent directory ('..').
"""
run_from = data.packages.joinpath("FSPkg", "fspkg")
result = script.pip('install', pardir, cwd=run_from)
fspkg_folder = script.site_packages / 'fspkg'
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
'FSPkg-0.1.dev0.dist-info'
)
result.did_create(fspkg_folder)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
@pytest.mark.network
@ -765,17 +773,17 @@ def test_install_global_option_using_editable(script, tmpdir):
@pytest.mark.network
def test_install_package_with_same_name_in_curdir(script):
def test_install_package_with_same_name_in_curdir(script, with_wheel):
"""
Test installing a package with the same name of a local folder
"""
script.scratch_path.joinpath("mock==0.6").mkdir()
result = script.pip('install', 'mock==0.6')
egg_folder = (
dist_info_folder = (
script.site_packages /
'mock-0.6.0-py{pyversion}.egg-info'.format(**globals())
'mock-0.6.0.dist-info'
)
result.did_create(egg_folder)
result.did_create(dist_info_folder)
mock100_setup_py = textwrap.dedent('''\
@ -784,7 +792,7 @@ mock100_setup_py = textwrap.dedent('''\
version='100.1')''')
def test_install_folder_using_dot_slash(script):
def test_install_folder_using_dot_slash(script, with_wheel):
"""
Test installing a folder using pip install ./foldername
"""
@ -792,14 +800,14 @@ def test_install_folder_using_dot_slash(script):
pkg_path = script.scratch_path / 'mock'
pkg_path.joinpath("setup.py").write_text(mock100_setup_py)
result = script.pip('install', './mock')
egg_folder = (
dist_info_folder = (
script.site_packages /
'mock-100.1-py{pyversion}.egg-info'.format(**globals())
'mock-100.1.dist-info'
)
result.did_create(egg_folder)
result.did_create(dist_info_folder)
def test_install_folder_using_slash_in_the_end(script):
def test_install_folder_using_slash_in_the_end(script, with_wheel):
r"""
Test installing a folder using pip install foldername/ or foldername\
"""
@ -807,14 +815,14 @@ def test_install_folder_using_slash_in_the_end(script):
pkg_path = script.scratch_path / 'mock'
pkg_path.joinpath("setup.py").write_text(mock100_setup_py)
result = script.pip('install', 'mock' + os.path.sep)
egg_folder = (
dist_info_folder = (
script.site_packages /
'mock-100.1-py{pyversion}.egg-info'.format(**globals())
'mock-100.1.dist-info'
)
result.did_create(egg_folder)
result.did_create(dist_info_folder)
def test_install_folder_using_relative_path(script):
def test_install_folder_using_relative_path(script, with_wheel):
"""
Test installing a folder using pip install folder1/folder2
"""
@ -823,29 +831,29 @@ def test_install_folder_using_relative_path(script):
pkg_path = script.scratch_path / 'initools' / 'mock'
pkg_path.joinpath("setup.py").write_text(mock100_setup_py)
result = script.pip('install', Path('initools') / 'mock')
egg_folder = (
dist_info_folder = (
script.site_packages /
'mock-100.1-py{pyversion}.egg-info'.format(**globals())
'mock-100.1.dist-info'.format(**globals())
)
result.did_create(egg_folder)
result.did_create(dist_info_folder)
@pytest.mark.network
def test_install_package_which_contains_dev_in_name(script):
def test_install_package_which_contains_dev_in_name(script, with_wheel):
"""
Test installing package from PyPI which contains 'dev' in name
"""
result = script.pip('install', 'django-devserver==0.0.4')
devserver_folder = script.site_packages / 'devserver'
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'django_devserver-0.0.4-py{pyversion}.egg-info'.format(**globals())
'django_devserver-0.0.4.dist-info'
)
result.did_create(devserver_folder)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
def test_install_package_with_target(script):
def test_install_package_with_target(script, with_wheel):
"""
Test installing a package using pip install --target
"""
@ -863,10 +871,11 @@ def test_install_package_with_target(script):
result = script.pip_install_local('--upgrade', '-t',
target_dir, "simple==2.0")
result.did_update(Path('scratch') / 'target' / 'simple')
egg_folder = (
dist_info_folder = (
Path('scratch') / 'target' /
'simple-2.0-py{pyversion}.egg-info'.format(**globals()))
result.did_create(egg_folder)
'simple-2.0.dist-info'
)
result.did_create(dist_info_folder)
# Test install and upgrade of single-module package
result = script.pip_install_local('-t', target_dir, 'singlemodule==0.0.0')
@ -990,7 +999,7 @@ def test_install_with_target_and_scripts_no_warning(script, with_wheel):
assert "--no-warn-script-location" not in result.stderr, str(result)
def test_install_package_with_root(script, data):
def test_install_package_with_root(script, data, with_wheel):
"""
Test installing a package using pip install --root
"""
@ -1001,7 +1010,7 @@ def test_install_package_with_root(script, data):
)
normal_install_path = (
script.base_path / script.site_packages /
'simple-1.0-py{pyversion}.egg-info'.format(**globals())
'simple-1.0.dist-info'
)
# use distutils to change the root exactly how the --root option does it
from distutils.util import change_root
@ -1029,6 +1038,7 @@ def test_install_package_with_prefix(script, data):
rel_prefix_path = script.scratch / 'prefix'
install_path = (
distutils.sysconfig.get_python_lib(prefix=rel_prefix_path) /
# we still test for egg-info because no-binary implies setup.py install
'simple-1.0-py{}.egg-info'.format(pyversion)
)
result.did_create(install_path)
@ -1109,7 +1119,7 @@ def test_install_package_with_latin1_setup(script, data):
script.pip('install', to_install)
def test_url_req_case_mismatch_no_index(script, data):
def test_url_req_case_mismatch_no_index(script, data, with_wheel):
"""
tar ball url requirements (with no egg fragment), that happen to have upper
case project names, should be considered equal to later requirements that
@ -1124,15 +1134,15 @@ def test_url_req_case_mismatch_no_index(script, data):
)
# only Upper-1.0.tar.gz should get installed.
egg_folder = script.site_packages / \
'Upper-1.0-py{pyversion}.egg-info'.format(**globals())
result.did_create(egg_folder)
egg_folder = script.site_packages / \
'Upper-2.0-py{pyversion}.egg-info'.format(**globals())
result.did_not_create(egg_folder)
dist_info_folder = script.site_packages / \
'Upper-1.0.dist-info'
result.did_create(dist_info_folder)
dist_info_folder = script.site_packages / \
'Upper-2.0.dist-info'
result.did_not_create(dist_info_folder)
def test_url_req_case_mismatch_file_index(script, data):
def test_url_req_case_mismatch_file_index(script, data, with_wheel):
"""
tar ball url requirements (with no egg fragment), that happen to have upper
case project names, should be considered equal to later requirements that
@ -1153,15 +1163,15 @@ def test_url_req_case_mismatch_file_index(script, data):
)
# only Upper-1.0.tar.gz should get installed.
egg_folder = script.site_packages / \
'Dinner-1.0-py{pyversion}.egg-info'.format(**globals())
result.did_create(egg_folder)
egg_folder = script.site_packages / \
'Dinner-2.0-py{pyversion}.egg-info'.format(**globals())
result.did_not_create(egg_folder)
dist_info_folder = script.site_packages / \
'Dinner-1.0.dist-info'
result.did_create(dist_info_folder)
dist_info_folder = script.site_packages / \
'Dinner-2.0.dist-info'
result.did_not_create(dist_info_folder)
def test_url_incorrect_case_no_index(script, data):
def test_url_incorrect_case_no_index(script, data, with_wheel):
"""
Same as test_url_req_case_mismatch_no_index, except testing for the case
where the incorrect case is given in the name of the package to install
@ -1172,15 +1182,15 @@ def test_url_incorrect_case_no_index(script, data):
)
# only Upper-2.0.tar.gz should get installed.
egg_folder = script.site_packages / \
'Upper-1.0-py{pyversion}.egg-info'.format(**globals())
result.did_not_create(egg_folder)
egg_folder = script.site_packages / \
'Upper-2.0-py{pyversion}.egg-info'.format(**globals())
result.did_create(egg_folder)
dist_info_folder = script.site_packages / \
'Upper-1.0.dist-info'
result.did_not_create(dist_info_folder)
dist_info_folder = script.site_packages / \
'Upper-2.0.dist-info'
result.did_create(dist_info_folder)
def test_url_incorrect_case_file_index(script, data):
def test_url_incorrect_case_file_index(script, data, with_wheel):
"""
Same as test_url_req_case_mismatch_file_index, except testing for the case
where the incorrect case is given in the name of the package to install
@ -1192,12 +1202,12 @@ def test_url_incorrect_case_file_index(script, data):
)
# only Upper-2.0.tar.gz should get installed.
egg_folder = script.site_packages / \
'Dinner-1.0-py{pyversion}.egg-info'.format(**globals())
result.did_not_create(egg_folder)
egg_folder = script.site_packages / \
'Dinner-2.0-py{pyversion}.egg-info'.format(**globals())
result.did_create(egg_folder)
dist_info_folder = script.site_packages / \
'Dinner-1.0.dist-info'
result.did_not_create(dist_info_folder)
dist_info_folder = script.site_packages / \
'Dinner-2.0.dist-info'
result.did_create(dist_info_folder)
# Should show index-url location in output
assert "Looking in indexes: " in result.stdout

View File

@ -3,10 +3,8 @@ import textwrap
from pip._vendor.six.moves.urllib import parse as urllib_parse
from tests.lib import pyversion
def test_find_links_relative_path(script, data):
def test_find_links_relative_path(script, data, with_wheel):
"""Test find-links as a relative path."""
result = script.pip(
'install',
@ -16,15 +14,15 @@ def test_find_links_relative_path(script, data):
'packages/',
cwd=data.root,
)
egg_info_folder = (
script.site_packages / 'parent-0.1-py{}.egg-info'.format(pyversion)
dist_info_folder = (
script.site_packages / 'parent-0.1.dist-info'
)
initools_folder = script.site_packages / 'parent'
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
result.did_create(initools_folder)
def test_find_links_requirements_file_relative_path(script, data):
def test_find_links_requirements_file_relative_path(script, data, with_wheel):
"""Test find-links as a relative path to a reqs file."""
script.scratch_path.joinpath("test-req.txt").write_text(textwrap.dedent("""
--no-index
@ -37,27 +35,27 @@ def test_find_links_requirements_file_relative_path(script, data):
script.scratch_path / "test-req.txt",
cwd=data.root,
)
egg_info_folder = (
script.site_packages / 'parent-0.1-py{}.egg-info'.format(pyversion)
dist_info_folder = (
script.site_packages / 'parent-0.1.dist-info'
)
initools_folder = script.site_packages / 'parent'
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
result.did_create(initools_folder)
def test_install_from_file_index_hash_link(script, data):
def test_install_from_file_index_hash_link(script, data, with_wheel):
"""
Test that a pkg can be installed from a file:// index using a link with a
hash
"""
result = script.pip('install', '-i', data.index_url(), 'simple==1.0')
egg_info_folder = (
script.site_packages / 'simple-1.0-py{}.egg-info'.format(pyversion)
dist_info_folder = (
script.site_packages / 'simple-1.0.dist-info'
)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
def test_file_index_url_quoting(script, data):
def test_file_index_url_quoting(script, data, with_wheel):
"""
Test url quoting of file index url with a space
"""
@ -67,5 +65,5 @@ def test_file_index_url_quoting(script, data):
)
result.did_create(script.site_packages / 'simple')
result.did_create(
script.site_packages / 'simple-1.0-py{}.egg-info'.format(pyversion)
script.site_packages / 'simple-1.0.dist-info'
)

View File

@ -10,7 +10,6 @@ from tests.lib import (
create_basic_wheel_for_package,
need_svn,
path_to_url,
pyversion,
requirements_file,
)
from tests.lib.local_repos import local_checkout
@ -63,7 +62,7 @@ def arg_recording_sdist_maker(script):
@pytest.mark.network
def test_requirements_file(script):
def test_requirements_file(script, with_wheel):
"""
Test installing from a requirements file.
@ -78,12 +77,12 @@ def test_requirements_file(script):
'install', '-r', script.scratch_path / 'initools-req.txt'
)
result.did_create(
script.site_packages / 'INITools-0.2-py{}.egg-info'.format(pyversion)
script.site_packages / 'INITools-0.2.dist-info'
)
result.did_create(script.site_packages / 'initools')
assert result.files_created[script.site_packages / other_lib_name].dir
fn = '{}-{}-py{}.egg-info'.format(
other_lib_name, other_lib_version, pyversion)
fn = '{}-{}.dist-info'.format(
other_lib_name, other_lib_version)
assert result.files_created[script.site_packages / fn].dir
@ -113,15 +112,17 @@ def test_schema_check_in_requirements_file(script):
("embedded_rel_path", False),
("embedded_rel_path", True),
])
def test_relative_requirements_file(script, data, test_type, editable):
def test_relative_requirements_file(
script, data, test_type, editable, with_wheel
):
"""
Test installing from a requirements file with a relative path. For path
URLs, use an egg= definition.
"""
egg_info_file = (
dist_info_folder = (
script.site_packages /
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
'FSPkg-0.1.dev0.dist-info'
)
egg_link_file = (
script.site_packages / 'FSPkg.egg-link'
@ -148,7 +149,7 @@ def test_relative_requirements_file(script, data, test_type, editable):
script.scratch_path) as reqs_file:
result = script.pip('install', '-vvv', '-r', reqs_file.name,
cwd=script.scratch_path)
result.did_create(egg_info_file)
result.did_create(dist_info_folder)
result.did_create(package_folder)
else:
with requirements_file('-e ' + req_path + '\n',
@ -160,7 +161,7 @@ def test_relative_requirements_file(script, data, test_type, editable):
@pytest.mark.network
@need_svn
def test_multiple_requirements_files(script, tmpdir):
def test_multiple_requirements_files(script, tmpdir, with_wheel):
"""
Test installing from multiple nested requirements files.
@ -184,8 +185,7 @@ def test_multiple_requirements_files(script, tmpdir):
'install', '-r', script.scratch_path / 'initools-req.txt'
)
assert result.files_created[script.site_packages / other_lib_name].dir
fn = '{other_lib_name}-{other_lib_version}-py{pyversion}.egg-info'.format(
pyversion=pyversion, **locals())
fn = '{other_lib_name}-{other_lib_version}.dist-info'.format(**locals())
assert result.files_created[script.site_packages / fn].dir
result.did_create(script.venv / 'src' / 'initools')

View File

@ -38,7 +38,8 @@ def test_invalid_upgrade_strategy_causes_error(script):
def test_only_if_needed_does_not_upgrade_deps_when_satisfied(
script,
use_new_resolver
use_new_resolver,
with_wheel
):
"""
It doesn't upgrade a dependency if it already satisfies the requirements.
@ -50,13 +51,11 @@ def test_only_if_needed_does_not_upgrade_deps_when_satisfied(
)
assert (
(script.site_packages / 'require_simple-1.0-py{pyversion}.egg-info'
.format(**globals()))
(script.site_packages / 'require_simple-1.0.dist-info')
not in result.files_deleted
), "should have installed require_simple==1.0"
assert (
(script.site_packages / 'simple-2.0-py{pyversion}.egg-info'
.format(**globals()))
(script.site_packages / 'simple-2.0.dist-info')
not in result.files_deleted
), "should not have uninstalled simple==2.0"
@ -68,7 +67,9 @@ def test_only_if_needed_does_not_upgrade_deps_when_satisfied(
), "did not print correct message for not-upgraded requirement"
def test_only_if_needed_does_upgrade_deps_when_no_longer_satisfied(script):
def test_only_if_needed_does_upgrade_deps_when_no_longer_satisfied(
script, with_wheel
):
"""
It does upgrade a dependency if it no longer satisfies the requirements.
@ -79,25 +80,26 @@ def test_only_if_needed_does_upgrade_deps_when_no_longer_satisfied(script):
)
assert (
(script.site_packages / 'require_simple-1.0-py{pyversion}.egg-info'
.format(**globals()))
(script.site_packages / 'require_simple-1.0.dist-info')
not in result.files_deleted
), "should have installed require_simple==1.0"
expected = (
script.site_packages /
'simple-3.0-py{pyversion}.egg-info'.format(**globals())
'simple-3.0.dist-info'
)
result.did_create(expected, message="should have installed simple==3.0")
expected = (
script.site_packages /
'simple-1.0-py{pyversion}.egg-info'.format(**globals())
'simple-1.0.dist-info'
)
assert (
expected in result.files_deleted
), "should have uninstalled simple==1.0"
def test_eager_does_upgrade_dependecies_when_currently_satisfied(script):
def test_eager_does_upgrade_dependecies_when_currently_satisfied(
script, with_wheel
):
"""
It does upgrade a dependency even if it already satisfies the requirements.
@ -109,17 +111,19 @@ def test_eager_does_upgrade_dependecies_when_currently_satisfied(script):
assert (
(script.site_packages /
'require_simple-1.0-py{pyversion}.egg-info'.format(**globals()))
'require_simple-1.0.dist-info')
not in result.files_deleted
), "should have installed require_simple==1.0"
assert (
(script.site_packages /
'simple-2.0-py{pyversion}.egg-info'.format(**globals()))
'simple-2.0.dist-info')
in result.files_deleted
), "should have uninstalled simple==2.0"
def test_eager_does_upgrade_dependecies_when_no_longer_satisfied(script):
def test_eager_does_upgrade_dependecies_when_no_longer_satisfied(
script, with_wheel
):
"""
It does upgrade a dependency if it no longer satisfies the requirements.
@ -130,24 +134,21 @@ def test_eager_does_upgrade_dependecies_when_no_longer_satisfied(script):
)
assert (
(script.site_packages /
'require_simple-1.0-py{pyversion}.egg-info'.format(**globals()))
(script.site_packages / 'require_simple-1.0.dist-info')
not in result.files_deleted
), "should have installed require_simple==1.0"
result.did_create(
script.site_packages /
'simple-3.0-py{pyversion}.egg-info'.format(**globals()),
script.site_packages / 'simple-3.0.dist-info',
message="should have installed simple==3.0"
)
assert (
script.site_packages /
'simple-1.0-py{pyversion}.egg-info'.format(**globals())
script.site_packages / 'simple-1.0.dist-info'
in result.files_deleted
), "should have uninstalled simple==1.0"
@pytest.mark.network
def test_upgrade_to_specific_version(script):
def test_upgrade_to_specific_version(script, with_wheel):
"""
It does upgrade to specific version requested.
@ -158,18 +159,16 @@ def test_upgrade_to_specific_version(script):
'pip install with specific version did not upgrade'
)
assert (
script.site_packages / 'INITools-0.1-py{pyversion}.egg-info'
.format(**globals())
script.site_packages / 'INITools-0.1.dist-info'
in result.files_deleted
)
result.did_create(
script.site_packages / 'INITools-0.2-py{pyversion}.egg-info'
.format(**globals())
script.site_packages / 'INITools-0.2.dist-info'
)
@pytest.mark.network
def test_upgrade_if_requested(script):
def test_upgrade_if_requested(script, with_wheel):
"""
And it does upgrade if requested.
@ -179,7 +178,7 @@ def test_upgrade_if_requested(script):
assert result.files_created, 'pip install --upgrade did not upgrade'
result.did_not_create(
script.site_packages /
'INITools-0.1-py{pyversion}.egg-info'.format(**globals())
'INITools-0.1.dist-info'
)
@ -327,7 +326,7 @@ def test_uninstall_rollback(script, data):
@pytest.mark.network
def test_should_not_install_always_from_cache(script):
def test_should_not_install_always_from_cache(script, with_wheel):
"""
If there is an old cached package, pip should download the newer version
Related to issue #175
@ -337,16 +336,16 @@ def test_should_not_install_always_from_cache(script):
result = script.pip('install', 'INITools==0.1')
result.did_not_create(
script.site_packages /
'INITools-0.2-py{pyversion}.egg-info'.format(**globals())
'INITools-0.2.dist-info'
)
result.did_create(
script.site_packages /
'INITools-0.1-py{pyversion}.egg-info'.format(**globals())
'INITools-0.1.dist-info'
)
@pytest.mark.network
def test_install_with_ignoreinstalled_requested(script):
def test_install_with_ignoreinstalled_requested(script, with_wheel):
"""
Test old conflicting package is completely ignored
"""
@ -356,11 +355,11 @@ def test_install_with_ignoreinstalled_requested(script):
# both the old and new metadata should be present.
assert os.path.exists(
script.site_packages_path /
'INITools-0.1-py{pyversion}.egg-info'.format(**globals())
'INITools-0.1.dist-info'
)
assert os.path.exists(
script.site_packages_path /
'INITools-0.3-py{pyversion}.egg-info'.format(**globals())
'INITools-0.3.dist-info'
)

View File

@ -115,6 +115,7 @@ class Tests_UserSite:
'install', '--user', 'INITools==0.1', '--no-binary=:all:')
# usersite has 0.1
# we still test for egg-info because no-binary implies setup.py install
egg_info_folder = (
script.user_site /
'INITools-0.1-py{pyversion}.egg-info'.format(**globals())
@ -142,6 +143,7 @@ class Tests_UserSite:
'install', '--user', 'INITools==0.1', '--no-binary=:all:')
# usersite has 0.1
# we still test for egg-info because no-binary implies setup.py install
egg_info_folder = (
script.user_site /
'INITools-0.1-py{pyversion}.egg-info'.format(**globals())
@ -173,6 +175,7 @@ class Tests_UserSite:
'install', '--user', '--upgrade', 'INITools', '--no-binary=:all:')
# usersite has 0.3.1
# we still test for egg-info because no-binary implies setup.py install
egg_info_folder = (
script.user_site /
'INITools-0.3.1-py{pyversion}.egg-info'.format(**globals())
@ -207,6 +210,7 @@ class Tests_UserSite:
'install', '--user', 'INITools==0.1', '--no-binary=:all:')
# usersite has 0.1
# we still test for egg-info because no-binary implies setup.py install
egg_info_folder = (
script.user_site /
'INITools-0.1-py{pyversion}.egg-info'.format(**globals())

View File

@ -160,7 +160,7 @@ def test_install_editable_from_git_with_https(script, tmpdir):
@pytest.mark.network
def test_install_noneditable_git(script, tmpdir):
def test_install_noneditable_git(script, tmpdir, with_wheel):
"""
Test installing from a non-editable git URL with a given tag.
"""
@ -169,14 +169,14 @@ def test_install_noneditable_git(script, tmpdir):
'git+https://github.com/pypa/pip-test-package.git'
'@0.1.1#egg=pip-test-package'
)
egg_info_folder = (
dist_info_folder = (
script.site_packages /
'pip_test_package-0.1.1-py{pyversion}.egg-info'.format(**globals())
'pip_test_package-0.1.1.dist-info'
)
result.assert_installed('piptestpackage',
without_egg_link=True,
editable=False)
result.did_create(egg_info_folder)
result.did_create(dist_info_folder)
def test_git_with_sha1_revisions(script):

View File

@ -340,8 +340,8 @@ def test_install_user_wheel(script, shared_data, with_wheel, tmpdir):
'install', 'has.script==1.0', '--user', '--no-index',
'--find-links', tmpdir,
)
egg_info_folder = script.user_site / 'has.script-1.0.dist-info'
result.did_create(egg_info_folder)
dist_info_folder = script.user_site / 'has.script-1.0.dist-info'
result.did_create(dist_info_folder)
script_file = script.user_bin / 'script.py'
result.did_create(script_file)

View File

@ -43,6 +43,7 @@ class Tests_UninstallUserSite:
assert_all_changes(result2, result3, [script.venv / 'build', 'cache'])
# site still has 0.2 (can't look in result1; have to check)
# keep checking for egg-info because no-binary implies setup.py install
egg_info_folder = (
script.base_path / script.site_packages /
'pip_test_package-0.1-py{pyversion}.egg-info'.format(**globals())