diff --git a/news/52ff07b1-69ed-4bbe-a3be-913e0e247cee.trivial.rst b/news/52ff07b1-69ed-4bbe-a3be-913e0e247cee.trivial.rst new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/functional/test_download.py b/tests/functional/test_download.py index 1938a109a1dbce07c209f974aa253953b1c293ad..d41ec7f495430b24777d625b3db1fbf0248b67be 100644 --- a/tests/functional/test_download.py +++ b/tests/functional/test_download.py @@ -622,11 +622,8 @@ def make_wheel_with_python_requires(script, package_name, python_requires): return package_dir / "dist" / file_name -def test_download__python_version_used_for_python_requires( - script, - data, - with_wheel, -): +@pytest.mark.usefixtures("with_wheel") +def test_download__python_version_used_for_python_requires(script, data): """ Test that --python-version is used for the Requires-Python check. """ @@ -664,10 +661,8 @@ def test_download__python_version_used_for_python_requires( script.pip(*args) # no exception -def test_download_ignore_requires_python_dont_fail_with_wrong_python( - script, - with_wheel, -): +@pytest.mark.usefixtures("with_wheel") +def test_download_ignore_requires_python_dont_fail_with_wrong_python(script): """ Test that --ignore-requires-python ignores Requires-Python check. """ diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py index 59f35eac1d4b9c8abcaddfbd69d54fa7d1bf70d6..2ece866ba5cbc5252ec2f689ca0c416b7c752823 100644 --- a/tests/functional/test_freeze.py +++ b/tests/functional/test_freeze.py @@ -99,7 +99,8 @@ def test_exclude_and_normalization(script, tmpdir): assert "Normalizable_Name" not in result.stdout -def test_freeze_multiple_exclude_with_all(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_freeze_multiple_exclude_with_all(script): result = script.pip("freeze", "--all") assert "pip==" in result.stdout assert "wheel==" in result.stdout @@ -936,7 +937,8 @@ def test_freeze_path_multiple(tmpdir, script, data): _check_output(result.stdout, expected) -def test_freeze_direct_url_archive(script, shared_data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_freeze_direct_url_archive(script, shared_data): req = "simple @ " + path_to_url(shared_data.packages / "simple-2.0.tar.gz") assert req.startswith("simple @ file://") script.pip("install", req) diff --git a/tests/functional/test_install.py b/tests/functional/test_install.py index 3cc54c9c7b1b5fffa0a868a4c3bb9b75225f0d3d..3af75cb5639013bd052ab34a4e1bcbc2885a8796 100644 --- a/tests/functional/test_install.py +++ b/tests/functional/test_install.py @@ -222,8 +222,9 @@ def test_pep518_forkbombs(script, data, common_wheels, command, package): @pytest.mark.network +@pytest.mark.usefixtures("with_wheel") def test_pip_second_command_line_interface_works( - script, pip_src, data, common_wheels, deprecated_python, with_wheel + script, pip_src, data, common_wheels, deprecated_python ): """ Check if ``pip`` commands behaves equally @@ -258,7 +259,8 @@ def test_install_exit_status_code_when_blank_requirements_file(script): @pytest.mark.network -def test_basic_install_from_pypi(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_basic_install_from_pypi(script): """ Test installing a package from PyPI. """ @@ -316,7 +318,8 @@ def test_basic_install_editable_from_git(script): _test_install_editable_from_git(script) -def test_install_editable_from_git_autobuild_wheel(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_editable_from_git_autobuild_wheel(script): _test_install_editable_from_git(script) @@ -434,7 +437,8 @@ def test_vcs_url_urlquote_normalization(script, tmpdir): @pytest.mark.parametrize("resolver", ["", "--use-deprecated=legacy-resolver"]) -def test_basic_install_from_local_directory(script, data, resolver, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_basic_install_from_local_directory(script, data, resolver): """ Test installing from a local directory. """ @@ -461,9 +465,8 @@ def test_basic_install_from_local_directory(script, data, resolver, with_wheel): ("embedded_rel_path", True), ], ) -def test_basic_install_relative_directory( - script, data, test_type, editable, with_wheel -): +@pytest.mark.usefixtures("with_wheel") +def test_basic_install_relative_directory(script, data, test_type, editable): """ Test installing a requirement using a relative path. """ @@ -578,9 +581,8 @@ def test_hashed_install_failure_later_flag(script, tmpdir): ) -def test_install_from_local_directory_with_symlinks_to_directories( - script, data, with_wheel -): +@pytest.mark.usefixtures("with_wheel") +def test_install_from_local_directory_with_symlinks_to_directories(script, data): """ Test installing from a local directory containing symlinks to directories. """ @@ -592,7 +594,8 @@ def test_install_from_local_directory_with_symlinks_to_directories( result.did_create(dist_info_folder) -def test_install_from_local_directory_with_in_tree_build(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_from_local_directory_with_in_tree_build(script, data): """ Test installing from a local directory with --use-feature=in-tree-build. """ @@ -610,9 +613,8 @@ def test_install_from_local_directory_with_in_tree_build(script, data, with_whee @pytest.mark.skipif("sys.platform == 'win32'") -def test_install_from_local_directory_with_socket_file( - script, data, tmpdir, with_wheel -): +@pytest.mark.usefixtures("with_wheel") +def test_install_from_local_directory_with_socket_file(script, data, tmpdir): """ Test installing from a local directory containing a socket file. """ @@ -689,7 +691,8 @@ def test_upgrade_argparse_shadowed(script): assert "Not uninstalling argparse" not in result.stdout -def test_install_curdir(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_curdir(script, data): """ Test installing current directory ('.'). """ @@ -705,7 +708,8 @@ def test_install_curdir(script, data, with_wheel): result.did_create(dist_info_folder) -def test_install_pardir(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_pardir(script, data): """ Test installing parent directory ('..'). """ @@ -780,7 +784,8 @@ def test_install_global_option_using_editable(script, tmpdir): @pytest.mark.network -def test_install_package_with_same_name_in_curdir(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_package_with_same_name_in_curdir(script): """ Test installing a package with the same name of a local folder """ @@ -798,7 +803,8 @@ mock100_setup_py = textwrap.dedent( ) -def test_install_folder_using_dot_slash(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_folder_using_dot_slash(script): """ Test installing a folder using pip install ./foldername """ @@ -810,7 +816,8 @@ def test_install_folder_using_dot_slash(script, with_wheel): result.did_create(dist_info_folder) -def test_install_folder_using_slash_in_the_end(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_folder_using_slash_in_the_end(script): r""" Test installing a folder using pip install foldername/ or foldername\ """ @@ -822,7 +829,8 @@ def test_install_folder_using_slash_in_the_end(script, with_wheel): result.did_create(dist_info_folder) -def test_install_folder_using_relative_path(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_folder_using_relative_path(script): """ Test installing a folder using pip install folder1/folder2 """ @@ -836,7 +844,8 @@ def test_install_folder_using_relative_path(script, with_wheel): @pytest.mark.network -def test_install_package_which_contains_dev_in_name(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_package_which_contains_dev_in_name(script): """ Test installing package from PyPI which contains 'dev' in name """ @@ -847,7 +856,8 @@ def test_install_package_which_contains_dev_in_name(script, with_wheel): result.did_create(dist_info_folder) -def test_install_package_with_target(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_package_with_target(script): """ Test installing a package using pip install --target """ @@ -975,7 +985,8 @@ def test_install_nonlocal_compatible_wheel_path( @pytest.mark.parametrize("opt", ("--target", "--prefix")) -def test_install_with_target_or_prefix_and_scripts_no_warning(opt, script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_with_target_or_prefix_and_scripts_no_warning(opt, script): """ Test that installing with --target does not trigger the "script not in PATH" warning (issue #5201) @@ -1011,7 +1022,8 @@ def test_install_with_target_or_prefix_and_scripts_no_warning(opt, script, with_ assert "--no-warn-script-location" not in result.stderr, str(result) -def test_install_package_with_root(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_package_with_root(script, data): """ Test installing a package using pip install --root """ @@ -1194,7 +1206,8 @@ def test_install_package_with_latin1_setup(script, data): script.pip("install", to_install) -def test_url_req_case_mismatch_no_index(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_url_req_case_mismatch_no_index(script, data): """ tar ball url requirements (with no egg fragment), that happen to have upper case project names, should be considered equal to later requirements that @@ -1215,7 +1228,8 @@ def test_url_req_case_mismatch_no_index(script, data, with_wheel): result.did_not_create(dist_info_folder) -def test_url_req_case_mismatch_file_index(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_url_req_case_mismatch_file_index(script, data): """ tar ball url requirements (with no egg fragment), that happen to have upper case project names, should be considered equal to later requirements that @@ -1242,7 +1256,8 @@ def test_url_req_case_mismatch_file_index(script, data, with_wheel): result.did_not_create(dist_info_folder) -def test_url_incorrect_case_no_index(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_url_incorrect_case_no_index(script, data): """ 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 @@ -1263,7 +1278,8 @@ def test_url_incorrect_case_no_index(script, data, with_wheel): result.did_create(dist_info_folder) -def test_url_incorrect_case_file_index(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_url_incorrect_case_file_index(script, data): """ 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 @@ -1408,12 +1424,14 @@ def test_install_topological_sort(script, data): assert order1 in res or order2 in res, res -def test_install_wheel_broken(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_wheel_broken(script): res = script.pip_install_local("wheelbroken", expect_stderr=True) assert "Successfully installed wheelbroken-0.1" in str(res), str(res) -def test_cleanup_after_failed_wheel(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_cleanup_after_failed_wheel(script): res = script.pip_install_local("wheelbrokenafter", expect_stderr=True) # One of the effects of not cleaning up is broken scripts: script_py = script.bin_path / "script.py" @@ -1426,7 +1444,8 @@ def test_cleanup_after_failed_wheel(script, with_wheel): assert "Running setup.py clean for wheelbrokenafter" in str(res), str(res) -def test_install_builds_wheels(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_builds_wheels(script, data): # We need to use a subprocess to get the right value on Windows. res = script.run( "python", @@ -1473,7 +1492,8 @@ def test_install_builds_wheels(script, data, with_wheel): ] -def test_install_no_binary_disables_building_wheels(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_no_binary_disables_building_wheels(script, data): to_install = data.packages.joinpath("requires_wheelbroken_upper") res = script.pip( "install", @@ -1504,7 +1524,8 @@ def test_install_no_binary_disables_building_wheels(script, data, with_wheel): @pytest.mark.network -def test_install_no_binary_builds_pep_517_wheel(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_no_binary_builds_pep_517_wheel(script, data): to_install = data.packages.joinpath("pep517_setup_and_pyproject") res = script.pip("install", "--no-binary=:all:", "-f", data.find_links, to_install) expected = "Successfully installed pep517-setup-and-pyproject" @@ -1516,7 +1537,8 @@ def test_install_no_binary_builds_pep_517_wheel(script, data, with_wheel): @pytest.mark.network -def test_install_no_binary_uses_local_backend(script, data, with_wheel, tmpdir): +@pytest.mark.usefixtures("with_wheel") +def test_install_no_binary_uses_local_backend(script, data, tmpdir): to_install = data.packages.joinpath("pep517_wrapper_buildsys") script.environ["PIP_TEST_MARKER_FILE"] = marker = str(tmpdir / "marker") res = script.pip("install", "--no-binary=:all:", "-f", data.find_links, to_install) @@ -1527,7 +1549,8 @@ def test_install_no_binary_uses_local_backend(script, data, with_wheel, tmpdir): assert os.path.isfile(marker), "Local PEP 517 backend not used" -def test_install_no_binary_disables_cached_wheels(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_no_binary_disables_cached_wheels(script, data): # Seed the cache script.pip("install", "--no-index", "-f", data.find_links, "upper") script.pip("uninstall", "upper", "-y") @@ -1659,7 +1682,8 @@ def test_install_incompatible_python_requires_editable(script): assert _get_expected_error_text() in result.stderr, str(result) -def test_install_incompatible_python_requires_wheel(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_incompatible_python_requires_wheel(script): script.scratch_path.joinpath("pkga").mkdir() pkga_path = script.scratch_path / "pkga" pkga_path.joinpath("setup.py").write_text( diff --git a/tests/functional/test_install_cleanup.py b/tests/functional/test_install_cleanup.py index a11a901c56b11ad466bb72fcf383075ea64f9129..02b2a1967b04e2d8b366a2897493a6b416b9d54f 100644 --- a/tests/functional/test_install_cleanup.py +++ b/tests/functional/test_install_cleanup.py @@ -27,7 +27,8 @@ def test_no_clean_option_blocks_cleaning_after_install(script, data): @pytest.mark.network -def test_pep517_no_legacy_cleanup(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_pep517_no_legacy_cleanup(script, data): """Test a PEP 517 failed build does not attempt a legacy cleanup""" to_install = data.packages.joinpath("pep517_wrapper_buildsys") script.environ["PIP_TEST_FAIL_BUILD_WHEEL"] = "1" diff --git a/tests/functional/test_install_config.py b/tests/functional/test_install_config.py index b9348d2715975b718bf0a3999535de2b4b791034..20fdc62bc658dd7ce7f4c46de962464b96c9a53b 100644 --- a/tests/functional/test_install_config.py +++ b/tests/functional/test_install_config.py @@ -222,7 +222,8 @@ def test_options_from_venv_config(script, virtualenv): assert msg.lower() in result.stdout.lower(), str(result) -def test_install_no_binary_via_config_disables_cached_wheels(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_no_binary_via_config_disables_cached_wheels(script, data): config_file = tempfile.NamedTemporaryFile(mode="wt", delete=False) try: script.environ["PIP_CONFIG_FILE"] = config_file.name diff --git a/tests/functional/test_install_direct_url.py b/tests/functional/test_install_direct_url.py index baa5a3f2c28f82f9ced3ef1b712339bfdae18a10..5dd7482cf78ebc02f04fe2b12ddc988e697b21fb 100644 --- a/tests/functional/test_install_direct_url.py +++ b/tests/functional/test_install_direct_url.py @@ -4,12 +4,14 @@ from tests.lib import _create_test_package, path_to_url from tests.lib.direct_url import get_created_direct_url -def test_install_find_links_no_direct_url(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_find_links_no_direct_url(script): result = script.pip_install_local("simple") assert not get_created_direct_url(result, "simple") -def test_install_vcs_editable_no_direct_url(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_vcs_editable_no_direct_url(script): pkg_path = _create_test_package(script, name="testpkg") args = ["install", "-e", "git+%s#egg=testpkg" % path_to_url(pkg_path)] result = script.pip(*args) @@ -18,7 +20,8 @@ def test_install_vcs_editable_no_direct_url(script, with_wheel): assert not get_created_direct_url(result, "testpkg") -def test_install_vcs_non_editable_direct_url(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_vcs_non_editable_direct_url(script): pkg_path = _create_test_package(script, name="testpkg") url = path_to_url(pkg_path) args = ["install", f"git+{url}#egg=testpkg"] @@ -29,7 +32,8 @@ def test_install_vcs_non_editable_direct_url(script, with_wheel): assert direct_url.info.vcs == "git" -def test_install_archive_direct_url(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_archive_direct_url(script, data): req = "simple @ " + path_to_url(data.packages / "simple-2.0.tar.gz") assert req.startswith("simple @ file://") result = script.pip("install", req) @@ -37,7 +41,8 @@ def test_install_archive_direct_url(script, data, with_wheel): @pytest.mark.network -def test_install_vcs_constraint_direct_url(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_vcs_constraint_direct_url(script): constraints_file = script.scratch_path / "constraints.txt" constraints_file.write_text( "git+https://github.com/pypa/pip-test-package" @@ -48,7 +53,8 @@ def test_install_vcs_constraint_direct_url(script, with_wheel): assert get_created_direct_url(result, "pip_test_package") -def test_install_vcs_constraint_direct_file_url(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_vcs_constraint_direct_file_url(script): pkg_path = _create_test_package(script, name="testpkg") url = path_to_url(pkg_path) constraints_file = script.scratch_path / "constraints.txt" diff --git a/tests/functional/test_install_index.py b/tests/functional/test_install_index.py index 3b8e36c79c637c36d4dbe25c18c82b3f9ccb0c0f..962a64008db9b3eea5d75f24fca5bc023218862f 100644 --- a/tests/functional/test_install_index.py +++ b/tests/functional/test_install_index.py @@ -2,8 +2,11 @@ import os import textwrap import urllib.parse +import pytest -def test_find_links_relative_path(script, data, with_wheel): + +@pytest.mark.usefixtures("with_wheel") +def test_find_links_relative_path(script, data): """Test find-links as a relative path.""" result = script.pip( "install", @@ -19,7 +22,8 @@ def test_find_links_relative_path(script, data, with_wheel): result.did_create(initools_folder) -def test_find_links_requirements_file_relative_path(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_find_links_requirements_file_relative_path(script, data): """Test find-links as a relative path to a reqs file.""" script.scratch_path.joinpath("test-req.txt").write_text( textwrap.dedent( @@ -44,7 +48,8 @@ def test_find_links_requirements_file_relative_path(script, data, with_wheel): result.did_create(initools_folder) -def test_install_from_file_index_hash_link(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_from_file_index_hash_link(script, data): """ Test that a pkg can be installed from a file:// index using a link with a hash @@ -54,7 +59,8 @@ def test_install_from_file_index_hash_link(script, data, with_wheel): result.did_create(dist_info_folder) -def test_file_index_url_quoting(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_file_index_url_quoting(script, data): """ Test url quoting of file index url with a space """ diff --git a/tests/functional/test_install_reqs.py b/tests/functional/test_install_reqs.py index b8f8925ce30aa367212a89c86491c6a2162e99ef..049cd7ab54596a1ab455782a29938a846539dc71 100644 --- a/tests/functional/test_install_reqs.py +++ b/tests/functional/test_install_reqs.py @@ -57,7 +57,8 @@ def arg_recording_sdist_maker(script): @pytest.mark.network -def test_requirements_file(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_requirements_file(script): """ Test installing from a requirements file. @@ -107,7 +108,8 @@ def test_schema_check_in_requirements_file(script): ("embedded_rel_path", True), ], ) -def test_relative_requirements_file(script, data, test_type, editable, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_relative_requirements_file(script, data, test_type, editable): """ Test installing from a requirements file with a relative path. For path URLs, use an egg= definition. @@ -152,7 +154,8 @@ def test_relative_requirements_file(script, data, test_type, editable, with_whee @pytest.mark.xfail @pytest.mark.network @need_svn -def test_multiple_requirements_files(script, tmpdir, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_multiple_requirements_files(script, tmpdir): """ Test installing from multiple nested requirements files. @@ -290,7 +293,8 @@ def test_install_local_with_subdirectory(script): @pytest.mark.incompatible_with_test_venv -def test_wheel_user_with_prefix_in_pydistutils_cfg(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_wheel_user_with_prefix_in_pydistutils_cfg(script, data): if os.name == "posix": user_filename = ".pydistutils.cfg" else: @@ -482,7 +486,8 @@ def test_constrained_to_url_install_same_url(script, data): assert "Running setup.py install for singlemodule" in result.stdout, str(result) -def test_double_install_spurious_hash_mismatch(script, tmpdir, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_double_install_spurious_hash_mismatch(script, tmpdir, data): """Make sure installing the same hashed sdist twice doesn't throw hash mismatch errors. diff --git a/tests/functional/test_install_requested.py b/tests/functional/test_install_requested.py index 1f3977078ed4430423812903efd71da47c233dfd..d7a6ea11082ceb17d0c1a577646d4bb7ffc877e1 100644 --- a/tests/functional/test_install_requested.py +++ b/tests/functional/test_install_requested.py @@ -1,3 +1,6 @@ +import pytest + + def _assert_requested_present(script, result, name, version): dist_info = script.site_packages / name + "-" + version + ".dist-info" requested = dist_info / "REQUESTED" @@ -12,7 +15,8 @@ def _assert_requested_absent(script, result, name, version): assert requested not in result.files_created -def test_install_requested_basic(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_requested_basic(script, data): result = script.pip( "install", "--no-index", "-f", data.find_links, "require_simple" ) @@ -21,7 +25,8 @@ def test_install_requested_basic(script, data, with_wheel): _assert_requested_absent(script, result, "simple", "3.0") -def test_install_requested_requirements(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_requested_requirements(script, data): script.scratch_path.joinpath("requirements.txt").write_text("require_simple\n") result = script.pip( "install", @@ -35,7 +40,8 @@ def test_install_requested_requirements(script, data, with_wheel): _assert_requested_absent(script, result, "simple", "3.0") -def test_install_requested_dep_in_requirements(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_requested_dep_in_requirements(script, data): script.scratch_path.joinpath("requirements.txt").write_text( "require_simple\nsimple<3\n" ) @@ -52,7 +58,8 @@ def test_install_requested_dep_in_requirements(script, data, with_wheel): _assert_requested_present(script, result, "simple", "2.0") -def test_install_requested_reqs_and_constraints(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_requested_reqs_and_constraints(script, data): script.scratch_path.joinpath("requirements.txt").write_text("require_simple\n") script.scratch_path.joinpath("constraints.txt").write_text("simple<3\n") result = script.pip( @@ -70,7 +77,8 @@ def test_install_requested_reqs_and_constraints(script, data, with_wheel): _assert_requested_absent(script, result, "simple", "2.0") -def test_install_requested_in_reqs_and_constraints(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_requested_in_reqs_and_constraints(script, data): script.scratch_path.joinpath("requirements.txt").write_text( "require_simple\nsimple\n" ) diff --git a/tests/functional/test_install_upgrade.py b/tests/functional/test_install_upgrade.py index edeebb0b9b4e264d43722124459bb5166be69e3d..5d55a0d7670b534ad3546dc7a7e3613ed18bc8d3 100644 --- a/tests/functional/test_install_upgrade.py +++ b/tests/functional/test_install_upgrade.py @@ -36,9 +36,8 @@ def test_invalid_upgrade_strategy_causes_error(script): assert "invalid choice" in result.stderr -def test_only_if_needed_does_not_upgrade_deps_when_satisfied( - script, resolver_variant, with_wheel -): +@pytest.mark.usefixtures("with_wheel") +def test_only_if_needed_does_not_upgrade_deps_when_satisfied(script, resolver_variant): """ It doesn't upgrade a dependency if it already satisfies the requirements. @@ -63,7 +62,8 @@ 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, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_only_if_needed_does_upgrade_deps_when_no_longer_satisfied(script): """ It does upgrade a dependency if it no longer satisfies the requirements. @@ -82,7 +82,8 @@ def test_only_if_needed_does_upgrade_deps_when_no_longer_satisfied(script, with_ assert expected in result.files_deleted, "should have uninstalled simple==1.0" -def test_eager_does_upgrade_dependecies_when_currently_satisfied(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_eager_does_upgrade_dependecies_when_currently_satisfied(script): """ It does upgrade a dependency even if it already satisfies the requirements. @@ -100,7 +101,8 @@ def test_eager_does_upgrade_dependecies_when_currently_satisfied(script, with_wh ) in result.files_deleted, "should have uninstalled simple==2.0" -def test_eager_does_upgrade_dependecies_when_no_longer_satisfied(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_eager_does_upgrade_dependecies_when_no_longer_satisfied(script): """ It does upgrade a dependency if it no longer satisfies the requirements. @@ -123,7 +125,8 @@ def test_eager_does_upgrade_dependecies_when_no_longer_satisfied(script, with_wh @pytest.mark.network -def test_upgrade_to_specific_version(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_upgrade_to_specific_version(script): """ It does upgrade to specific version requested. @@ -136,7 +139,8 @@ def test_upgrade_to_specific_version(script, with_wheel): @pytest.mark.network -def test_upgrade_if_requested(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_upgrade_if_requested(script): """ And it does upgrade if requested. @@ -296,7 +300,8 @@ def test_uninstall_rollback(script, data): @pytest.mark.network -def test_should_not_install_always_from_cache(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_should_not_install_always_from_cache(script): """ If there is an old cached package, pip should download the newer version Related to issue #175 @@ -309,7 +314,8 @@ def test_should_not_install_always_from_cache(script, with_wheel): @pytest.mark.network -def test_install_with_ignoreinstalled_requested(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_with_ignoreinstalled_requested(script): """ Test old conflicting package is completely ignored """ diff --git a/tests/functional/test_install_user.py b/tests/functional/test_install_user.py index f01754d4a786fdfb7242ca9680e6900f3bf5dc25..3cf8b1e295b56c4ae4b6890e141d3697ff1e3ce3 100644 --- a/tests/functional/test_install_user.py +++ b/tests/functional/test_install_user.py @@ -69,9 +69,8 @@ class Tests_UserSite: result.assert_installed("INITools", use_user_site=True) @pytest.mark.incompatible_with_test_venv - def test_install_from_current_directory_into_usersite( - self, script, data, with_wheel - ): + @pytest.mark.usefixtures("with_wheel") + def test_install_from_current_directory_into_usersite(self, script, data): """ Test installing current directory ('.') into usersite """ diff --git a/tests/functional/test_install_vcs_git.py b/tests/functional/test_install_vcs_git.py index 189e3c040e572a1a1b56d5d8508b21f4191000a8..b7a288d7085f71d377435e299e23d77dde815a18 100644 --- a/tests/functional/test_install_vcs_git.py +++ b/tests/functional/test_install_vcs_git.py @@ -158,7 +158,8 @@ def test_install_editable_from_git_with_https(script, tmpdir): @pytest.mark.network -def test_install_noneditable_git(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_noneditable_git(script): """ Test installing from a non-editable git URL with a given tag. """ @@ -516,7 +517,8 @@ def test_check_submodule_addition(script): update_result.did_create(script.venv / "src/version-pkg/testpkg/static/testfile2") -def test_install_git_branch_not_cached(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_git_branch_not_cached(script): """ Installing git urls with a branch revision does not cause wheel caching. """ @@ -531,7 +533,8 @@ def test_install_git_branch_not_cached(script, with_wheel): assert f"Successfully built {PKG}" in result.stdout, result.stdout -def test_install_git_sha_cached(script, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_git_sha_cached(script): """ Installing git urls with a sha revision does cause wheel caching. """ diff --git a/tests/functional/test_install_wheel.py b/tests/functional/test_install_wheel.py index cf10ac112c8e5736eac1fec619d38296bd54be10..a87fe29331112a0d36a3b1f746016f162fd9ca89 100644 --- a/tests/functional/test_install_wheel.py +++ b/tests/functional/test_install_wheel.py @@ -172,7 +172,8 @@ def test_install_from_wheel_with_headers(script): assert header_path.read_text() == header_text -def test_install_wheel_with_target(script, shared_data, with_wheel, tmpdir): +@pytest.mark.usefixtures("with_wheel") +def test_install_wheel_with_target(script, shared_data, tmpdir): """ Test installing a wheel using pip install --target """ @@ -190,7 +191,8 @@ def test_install_wheel_with_target(script, shared_data, with_wheel, tmpdir): result.did_create(Path("scratch") / "target" / "simpledist") -def test_install_wheel_with_target_and_data_files(script, data, with_wheel): +@pytest.mark.usefixtures("with_wheel") +def test_install_wheel_with_target_and_data_files(script, data): """ Test for issue #4092. It will be checked that a data_files specification in setup.py is handled correctly when a wheel is installed with the --target @@ -326,7 +328,8 @@ def test_wheel_record_lines_have_hash_for_data_files(script): @pytest.mark.incompatible_with_test_venv -def test_install_user_wheel(script, shared_data, with_wheel, tmpdir): +@pytest.mark.usefixtures("with_wheel") +def test_install_user_wheel(script, shared_data, tmpdir): """ Test user install from wheel (that has a script) """ diff --git a/tests/functional/test_wheel.py b/tests/functional/test_wheel.py index bdac7409e6f65444dabc83898913dbd688894b36..7b3932af06724b39a7527c8a62ddd631ac772c24 100644 --- a/tests/functional/test_wheel.py +++ b/tests/functional/test_wheel.py @@ -9,10 +9,7 @@ import pytest from pip._internal.cli.status_codes import ERROR from tests.lib import pyversion # noqa: F401 - -@pytest.fixture(autouse=True) -def auto_with_wheel(with_wheel): - pass +pytestmark = pytest.mark.usefixtures("with_wheel") def add_files_to_dist_directory(folder):