34
34
from pip ._internal .models .selection_prefs import SelectionPreferences
35
35
from pip ._internal .models .target_python import TargetPython
36
36
from pip ._internal .network .session import PipSession
37
- from pip ._internal .utils .egg_link import _egg_link_names
38
37
39
38
from tests .lib .venv import VirtualEnvironment
40
39
from tests .lib .wheel import make_wheel
@@ -294,12 +293,6 @@ def files_updated(self) -> FoundFiles:
294
293
def files_deleted (self ) -> FoundFiles :
295
294
return FoundFiles (self ._impl .files_deleted )
296
295
297
- def _get_egg_link_path_created (self , egg_link_paths : list [str ]) -> str | None :
298
- for egg_link_path in egg_link_paths :
299
- if egg_link_path in self .files_created :
300
- return egg_link_path
301
- return None
302
-
303
296
def get_created_direct_url_path (self , pkg : str ) -> Path | None :
304
297
dist_info_prefix = canonicalize_name (pkg ).replace ("-" , "_" ) + "-"
305
298
for filename in self .files_created :
@@ -321,81 +314,50 @@ def get_created_direct_url(self, pkg: str) -> DirectUrl | None:
321
314
def assert_installed (
322
315
self ,
323
316
pkg_name : str ,
317
+ * ,
318
+ dist_name : str | None = None ,
324
319
editable : bool = True ,
320
+ editable_vcs : bool = True ,
325
321
with_files : list [str ] | None = None ,
326
322
without_files : list [str ] | None = None ,
327
- without_egg_link : bool = False ,
328
- use_user_site : bool = False ,
329
323
sub_dir : str | None = None ,
330
324
) -> None :
325
+ if dist_name is None :
326
+ dist_name = pkg_name
331
327
with_files = with_files or []
332
328
without_files = without_files or []
333
329
e = self .test_env
334
330
335
- if editable :
331
+ if editable and editable_vcs :
336
332
pkg_dir = e .venv / "src" / canonicalize_name (dist_name )
337
333
# If package was installed in a sub directory
338
334
if sub_dir :
339
335
pkg_dir = pkg_dir / sub_dir
336
+ elif editable and not editable_vcs :
337
+ pkg_dir = None
338
+ assert not with_files
339
+ assert not without_files
340
340
else :
341
- without_egg_link = True
342
341
pkg_dir = e .site_packages / pkg_name
343
342
344
- if use_user_site :
345
- egg_link_paths = [
346
- e .user_site / egg_link_name
347
- for egg_link_name in _egg_link_names (pkg_name )
348
- ]
349
- else :
350
- egg_link_paths = [
351
- e .site_packages / egg_link_name
352
- for egg_link_name in _egg_link_names (pkg_name )
353
- ]
354
-
355
- egg_link_path_created = self ._get_egg_link_path_created (egg_link_paths )
356
- if without_egg_link :
357
- if egg_link_path_created :
343
+ direct_url = self .get_created_direct_url (dist_name )
344
+ if not editable :
345
+ if direct_url and direct_url .is_local_editable ():
358
346
raise TestFailure (
359
- f"unexpected egg link file created: { egg_link_path_created !r} \n "
347
+ "unexpected editable direct_url.json created: "
348
+ f"{ self .get_created_direct_url_path (dist_name )!r} \n "
360
349
f"{ self } "
361
350
)
362
351
else :
363
- if not egg_link_path_created :
364
- raise TestFailure (
365
- f"expected egg link file missing: { egg_link_paths !r} \n { self } "
366
- )
367
-
368
- egg_link_file = self .files_created [egg_link_path_created ]
369
- egg_link_contents = egg_link_file .bytes .replace (os .linesep , "\n " )
370
-
371
- # FIXME: I don't understand why there's a trailing . here
372
- if not (
373
- egg_link_contents .endswith ("\n ." )
374
- and egg_link_contents [:- 2 ].endswith (os .fspath (pkg_dir ))
375
- ):
376
- expected_ending = f"{ pkg_dir } \n ."
352
+ if not direct_url or not direct_url .is_local_editable ():
377
353
raise TestFailure (
378
- textwrap .dedent (
379
- f"""
380
- Incorrect egg_link file { egg_link_file !r}
381
- Expected ending: { expected_ending !r}
382
- ------- Actual contents -------
383
- { egg_link_contents !r}
384
- -------------------------------
385
- """
386
- ).strip ()
354
+ f"{ dist_name !r} not installed as editable: direct_url.json "
355
+ "not found or not editable\n "
356
+ f"{ self .get_created_direct_url_path (dist_name )!r} \n "
357
+ f"{ self } "
387
358
)
388
359
389
- if use_user_site :
390
- pth_file = e .user_site / "easy-install.pth"
391
- else :
392
- pth_file = e .site_packages / "easy-install.pth"
393
-
394
- if (pth_file in self .files_updated ) == without_egg_link :
395
- maybe = "" if without_egg_link else "not "
396
- raise TestFailure (f"{ pth_file } unexpectedly { maybe } updated by install" )
397
-
398
- if (pkg_dir in self .files_created ) == (os .curdir in without_files ):
360
+ if pkg_dir and (pkg_dir in self .files_created ) == (os .curdir in without_files ):
399
361
maybe = "not " if os .curdir in without_files else ""
400
362
files = sorted (p .as_posix () for p in self .files_created )
401
363
raise TestFailure (
0 commit comments