Skip to content

Commit 63cc267

Browse files
authored
Merge pull request #8357 from ssurbhi560/add_helper_methods
Add methods for path lookups in test_install.py and test_install_compat.py
2 parents 774432e + e68b71b commit 63cc267

File tree

3 files changed

+58
-60
lines changed

3 files changed

+58
-60
lines changed

news/f9de5945-af83-49a7-aa42-d8f2860fcaeb.trivial

Whitespace-only changes.

tests/functional/test_install.py

Lines changed: 50 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ def test_pip_second_command_line_interface_works(
209209
'INITools-0.2-py{pyversion}.egg-info'.format(**globals())
210210
)
211211
initools_folder = script.site_packages / 'initools'
212-
assert egg_info_folder in result.files_created, str(result)
213-
assert initools_folder in result.files_created, str(result)
212+
result.did_create(egg_info_folder)
213+
result.did_create(initools_folder)
214214

215215

216216
def test_install_exit_status_code_when_no_requirements(script):
@@ -241,8 +241,8 @@ def test_basic_install_from_pypi(script):
241241
'INITools-0.2-py{pyversion}.egg-info'.format(**globals())
242242
)
243243
initools_folder = script.site_packages / 'initools'
244-
assert egg_info_folder in result.files_created, str(result)
245-
assert initools_folder in result.files_created, str(result)
244+
result.did_create(egg_info_folder)
245+
result.did_create(initools_folder)
246246

247247
# Should not display where it's looking for files
248248
assert "Looking in indexes: " not in result.stdout
@@ -338,14 +338,14 @@ def test_install_editable_uninstalls_existing_from_path(script, data):
338338
assert 'Successfully installed simplewheel' in result.stdout
339339
simple_folder = script.site_packages / 'simplewheel'
340340
result.assert_installed('simplewheel', editable=False)
341-
assert simple_folder in result.files_created, str(result.stdout)
341+
result.did_create(simple_folder)
342342

343343
result = script.pip(
344344
'install', '-e',
345345
to_install,
346346
)
347347
install_path = script.site_packages / 'simplewheel.egg-link'
348-
assert install_path in result.files_created, str(result)
348+
result.did_create(install_path)
349349
assert 'Found existing installation: simplewheel 1.0' in result.stdout
350350
assert 'Uninstalling simplewheel-' in result.stdout
351351
assert 'Successfully uninstalled simplewheel' in result.stdout
@@ -421,8 +421,8 @@ def test_basic_install_from_local_directory(script, data, resolver):
421421
script.site_packages /
422422
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
423423
)
424-
assert fspkg_folder in result.files_created, str(result.stdout)
425-
assert egg_info_folder in result.files_created, str(result)
424+
result.did_create(fspkg_folder)
425+
result.did_create(egg_info_folder)
426426

427427

428428
@pytest.mark.parametrize("test_type,editable", [
@@ -465,13 +465,13 @@ def test_basic_install_relative_directory(script, data, test_type, editable):
465465
if not editable:
466466
result = script.pip('install', req_path,
467467
cwd=script.scratch_path)
468-
assert egg_info_file in result.files_created, str(result)
469-
assert package_folder in result.files_created, str(result)
468+
result.did_create(egg_info_file)
469+
result.did_create(package_folder)
470470
else:
471471
# Editable install.
472472
result = script.pip('install', '-e' + req_path,
473473
cwd=script.scratch_path)
474-
assert egg_link_file in result.files_created, str(result)
474+
result.did_create(egg_link_file)
475475

476476

477477
def test_install_quiet(script, data):
@@ -573,8 +573,8 @@ def test_install_from_local_directory_with_symlinks_to_directories(
573573
script.site_packages /
574574
'symlinks-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
575575
)
576-
assert pkg_folder in result.files_created, str(result.stdout)
577-
assert egg_info_folder in result.files_created, str(result)
576+
result.did_create(pkg_folder)
577+
result.did_create(egg_info_folder)
578578

579579

580580
@pytest.mark.skipif("sys.platform == 'win32' or sys.version_info < (3,)")
@@ -596,8 +596,8 @@ def test_install_from_local_directory_with_socket_file(script, data, tmpdir):
596596
make_socket_file(socket_file_path)
597597

598598
result = script.pip("install", "--verbose", to_install)
599-
assert package_folder in result.files_created, str(result.stdout)
600-
assert egg_info_file in result.files_created, str(result)
599+
result.did_create(package_folder)
600+
result.did_create(egg_info_file)
601601
assert str(socket_file_path) in result.stderr
602602

603603

@@ -688,8 +688,8 @@ def test_install_curdir(script, data):
688688
script.site_packages /
689689
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
690690
)
691-
assert fspkg_folder in result.files_created, str(result.stdout)
692-
assert egg_info_folder in result.files_created, str(result)
691+
result.did_create(fspkg_folder)
692+
result.did_create(egg_info_folder)
693693

694694

695695
def test_install_pardir(script, data):
@@ -703,8 +703,8 @@ def test_install_pardir(script, data):
703703
script.site_packages /
704704
'FSPkg-0.1.dev0-py{pyversion}.egg-info'.format(**globals())
705705
)
706-
assert fspkg_folder in result.files_created, str(result.stdout)
707-
assert egg_info_folder in result.files_created, str(result)
706+
result.did_create(fspkg_folder)
707+
result.did_create(egg_info_folder)
708708

709709

710710
@pytest.mark.network
@@ -746,7 +746,7 @@ def test_install_using_install_option_and_editable(script, tmpdir):
746746
script.venv / 'src' / 'pip-test-package' /
747747
folder / 'pip-test-package' + script.exe
748748
)
749-
assert script_file in result.files_created
749+
result.did_create(script_file)
750750

751751

752752
@pytest.mark.network
@@ -775,7 +775,7 @@ def test_install_package_with_same_name_in_curdir(script):
775775
script.site_packages /
776776
'mock-0.6.0-py{pyversion}.egg-info'.format(**globals())
777777
)
778-
assert egg_folder in result.files_created, str(result)
778+
result.did_create(egg_folder)
779779

780780

781781
mock100_setup_py = textwrap.dedent('''\
@@ -796,7 +796,7 @@ def test_install_folder_using_dot_slash(script):
796796
script.site_packages /
797797
'mock-100.1-py{pyversion}.egg-info'.format(**globals())
798798
)
799-
assert egg_folder in result.files_created, str(result)
799+
result.did_create(egg_folder)
800800

801801

802802
def test_install_folder_using_slash_in_the_end(script):
@@ -811,7 +811,7 @@ def test_install_folder_using_slash_in_the_end(script):
811811
script.site_packages /
812812
'mock-100.1-py{pyversion}.egg-info'.format(**globals())
813813
)
814-
assert egg_folder in result.files_created, str(result)
814+
result.did_create(egg_folder)
815815

816816

817817
def test_install_folder_using_relative_path(script):
@@ -827,7 +827,7 @@ def test_install_folder_using_relative_path(script):
827827
script.site_packages /
828828
'mock-100.1-py{pyversion}.egg-info'.format(**globals())
829829
)
830-
assert egg_folder in result.files_created, str(result)
830+
result.did_create(egg_folder)
831831

832832

833833
@pytest.mark.network
@@ -841,8 +841,8 @@ def test_install_package_which_contains_dev_in_name(script):
841841
script.site_packages /
842842
'django_devserver-0.0.4-py{pyversion}.egg-info'.format(**globals())
843843
)
844-
assert devserver_folder in result.files_created, str(result.stdout)
845-
assert egg_info_folder in result.files_created, str(result)
844+
result.did_create(devserver_folder)
845+
result.did_create(egg_info_folder)
846846

847847

848848
def test_install_package_with_target(script):
@@ -851,37 +851,31 @@ def test_install_package_with_target(script):
851851
"""
852852
target_dir = script.scratch_path / 'target'
853853
result = script.pip_install_local('-t', target_dir, "simple==1.0")
854-
assert Path('scratch') / 'target' / 'simple' in result.files_created, (
855-
str(result)
856-
)
854+
result.did_create(Path('scratch') / 'target' / 'simple')
857855

858856
# Test repeated call without --upgrade, no files should have changed
859857
result = script.pip_install_local(
860858
'-t', target_dir, "simple==1.0", expect_stderr=True,
861859
)
862-
assert not Path('scratch') / 'target' / 'simple' in result.files_updated
860+
result.did_not_update(Path('scratch') / 'target' / 'simple')
863861

864862
# Test upgrade call, check that new version is installed
865863
result = script.pip_install_local('--upgrade', '-t',
866864
target_dir, "simple==2.0")
867-
assert Path('scratch') / 'target' / 'simple' in result.files_updated, (
868-
str(result)
869-
)
865+
result.did_update(Path('scratch') / 'target' / 'simple')
870866
egg_folder = (
871867
Path('scratch') / 'target' /
872868
'simple-2.0-py{pyversion}.egg-info'.format(**globals()))
873-
assert egg_folder in result.files_created, (
874-
str(result)
875-
)
869+
result.did_create(egg_folder)
876870

877871
# Test install and upgrade of single-module package
878872
result = script.pip_install_local('-t', target_dir, 'singlemodule==0.0.0')
879873
singlemodule_py = Path('scratch') / 'target' / 'singlemodule.py'
880-
assert singlemodule_py in result.files_created, str(result)
874+
result.did_create(singlemodule_py)
881875

882876
result = script.pip_install_local('-t', target_dir, 'singlemodule==0.0.1',
883877
'--upgrade')
884-
assert singlemodule_py in result.files_updated, str(result)
878+
result.did_update(singlemodule_py)
885879

886880

887881
@pytest.mark.parametrize("target_option", ['--target', '-t'])
@@ -917,7 +911,7 @@ def test_install_nonlocal_compatible_wheel(script, data):
917911
assert result.returncode == SUCCESS
918912

919913
distinfo = Path('scratch') / 'target' / 'simplewheel-2.0-1.dist-info'
920-
assert distinfo in result.files_created
914+
result.did_create(distinfo)
921915

922916
# Test install without --target
923917
result = script.pip(
@@ -948,7 +942,7 @@ def test_install_nonlocal_compatible_wheel_path(script, data):
948942
assert result.returncode == SUCCESS
949943

950944
distinfo = Path('scratch') / 'target' / 'simplewheel-2.0.dist-info'
951-
assert distinfo in result.files_created
945+
result.did_create(distinfo)
952946

953947
# Test a full path requirement (without --target)
954948
result = script.pip(
@@ -1008,7 +1002,7 @@ def test_install_package_with_root(script, data):
10081002
os.path.join(script.scratch, 'root'),
10091003
normal_install_path
10101004
)
1011-
assert root_path in result.files_created, str(result)
1005+
result.did_create(root_path)
10121006

10131007
# Should show find-links location in output
10141008
assert "Looking in indexes: " not in result.stdout
@@ -1030,7 +1024,7 @@ def test_install_package_with_prefix(script, data):
10301024
distutils.sysconfig.get_python_lib(prefix=rel_prefix_path) /
10311025
'simple-1.0-py{}.egg-info'.format(pyversion)
10321026
)
1033-
assert install_path in result.files_created, str(result)
1027+
result.did_create(install_path)
10341028

10351029

10361030
def test_install_editable_with_prefix(script):
@@ -1061,7 +1055,7 @@ def test_install_editable_with_prefix(script):
10611055

10621056
# assert pkga is installed at correct location
10631057
install_path = script.scratch / site_packages / 'pkga.egg-link'
1064-
assert install_path in result.files_created, str(result)
1058+
result.did_create(install_path)
10651059

10661060

10671061
def test_install_package_conflict_prefix_and_user(script, data):
@@ -1125,10 +1119,10 @@ def test_url_req_case_mismatch_no_index(script, data):
11251119
# only Upper-1.0.tar.gz should get installed.
11261120
egg_folder = script.site_packages / \
11271121
'Upper-1.0-py{pyversion}.egg-info'.format(**globals())
1128-
assert egg_folder in result.files_created, str(result)
1122+
result.did_create(egg_folder)
11291123
egg_folder = script.site_packages / \
11301124
'Upper-2.0-py{pyversion}.egg-info'.format(**globals())
1131-
assert egg_folder not in result.files_created, str(result)
1125+
result.did_not_create(egg_folder)
11321126

11331127

11341128
def test_url_req_case_mismatch_file_index(script, data):
@@ -1154,10 +1148,10 @@ def test_url_req_case_mismatch_file_index(script, data):
11541148
# only Upper-1.0.tar.gz should get installed.
11551149
egg_folder = script.site_packages / \
11561150
'Dinner-1.0-py{pyversion}.egg-info'.format(**globals())
1157-
assert egg_folder in result.files_created, str(result)
1151+
result.did_create(egg_folder)
11581152
egg_folder = script.site_packages / \
11591153
'Dinner-2.0-py{pyversion}.egg-info'.format(**globals())
1160-
assert egg_folder not in result.files_created, str(result)
1154+
result.did_not_create(egg_folder)
11611155

11621156

11631157
def test_url_incorrect_case_no_index(script, data):
@@ -1173,10 +1167,10 @@ def test_url_incorrect_case_no_index(script, data):
11731167
# only Upper-2.0.tar.gz should get installed.
11741168
egg_folder = script.site_packages / \
11751169
'Upper-1.0-py{pyversion}.egg-info'.format(**globals())
1176-
assert egg_folder not in result.files_created, str(result)
1170+
result.did_not_create(egg_folder)
11771171
egg_folder = script.site_packages / \
11781172
'Upper-2.0-py{pyversion}.egg-info'.format(**globals())
1179-
assert egg_folder in result.files_created, str(result)
1173+
result.did_create(egg_folder)
11801174

11811175

11821176
def test_url_incorrect_case_file_index(script, data):
@@ -1193,10 +1187,10 @@ def test_url_incorrect_case_file_index(script, data):
11931187
# only Upper-2.0.tar.gz should get installed.
11941188
egg_folder = script.site_packages / \
11951189
'Dinner-1.0-py{pyversion}.egg-info'.format(**globals())
1196-
assert egg_folder not in result.files_created, str(result)
1190+
result.did_not_create(egg_folder)
11971191
egg_folder = script.site_packages / \
11981192
'Dinner-2.0-py{pyversion}.egg-info'.format(**globals())
1199-
assert egg_folder in result.files_created, str(result)
1193+
result.did_create(egg_folder)
12001194

12011195
# Should show index-url location in output
12021196
assert "Looking in indexes: " in result.stdout
@@ -1658,8 +1652,8 @@ def test_installed_files_recorded_in_deterministic_order(script, data):
16581652
installed_files_path = (
16591653
script.site_packages / egg_info / 'installed-files.txt'
16601654
)
1661-
assert fspkg_folder in result.files_created, str(result.stdout)
1662-
assert installed_files_path in result.files_created, str(result)
1655+
result.did_create(fspkg_folder)
1656+
result.did_create(installed_files_path)
16631657

16641658
installed_files_path = result.files_created[installed_files_path].full
16651659
installed_files_lines = [
@@ -1728,8 +1722,8 @@ def test_target_install_ignores_distutils_config_install_prefix(script):
17281722

17291723
relative_target = os.path.relpath(target, script.base_path)
17301724
relative_script_base = os.path.relpath(prefix, script.base_path)
1731-
assert relative_target in result.files_created
1732-
assert relative_script_base not in result.files_created
1725+
result.did_create(relative_target)
1726+
result.did_not_create(relative_script_base)
17331727

17341728

17351729
@pytest.mark.incompatible_with_test_venv
@@ -1744,7 +1738,7 @@ def test_user_config_accepted(script):
17441738
assert "Successfully installed simplewheel" in result.stdout
17451739

17461740
relative_user = os.path.relpath(script.user_site_path, script.base_path)
1747-
assert join(relative_user, 'simplewheel') in result.files_created
1741+
result.did_create(join(relative_user, 'simplewheel'))
17481742

17491743

17501744
@pytest.mark.parametrize(

tests/functional/test_install_compat.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,17 @@ def test_debian_egg_name_workaround(script):
3232
# so even if this test runs on a Debian/Ubuntu system with broken
3333
# setuptools, since our test runs inside a venv we'll still have the normal
3434
# .egg-info
35-
assert egg_info in result.files_created, \
36-
"Couldn't find {egg_info}".format(**locals())
35+
result.did_create(
36+
egg_info,
37+
message="Couldn't find {egg_info}".format(**locals())
38+
)
3739

3840
# The Debian no-pyversion version of the .egg-info
3941
mangled = os.path.join(script.site_packages, "INITools-0.2.egg-info")
40-
assert mangled not in result.files_created, \
41-
"Found unexpected {mangled}".format(**locals())
42+
result.did_not_create(
43+
mangled,
44+
message="Found unexpected {mangled}".format(**locals())
45+
)
4246

4347
# Simulate a Debian install by copying the .egg-info to their name for it
4448
full_egg_info = os.path.join(script.base_path, egg_info)

0 commit comments

Comments
 (0)