fix for missing pyvenv.cfg with virtualenvs.create=false (#8672) · python-poetry/poetry@4b8c6a0 (original) (raw)

`@@ -1375,30 +1375,50 @@ def test_venv_has_correct_paths(tmp_venv: VirtualEnv) -> None:

`

1375

1375

` )

`

1376

1376

``

1377

1377

``

1378

``

`-

def test_env_system_packages(tmp_path: Path, poetry: Poetry) -> None:

`

``

1378

`+

@pytest.mark.parametrize("with_system_site_packages", [True, False])

`

``

1379

`+

def test_env_system_packages(

`

``

1380

`+

tmp_path: Path, poetry: Poetry, with_system_site_packages: bool

`

``

1381

`+

) -> None:

`

1379

1382

`venv_path = tmp_path / "venv"

`

1380

1383

`pyvenv_cfg = venv_path / "pyvenv.cfg"

`

1381

1384

``

1382

``

`-

EnvManager(poetry).build_venv(path=venv_path, flags={"system-site-packages": True})

`

``

1385

`+

EnvManager(poetry).build_venv(

`

``

1386

`+

path=venv_path, flags={"system-site-packages": with_system_site_packages}

`

``

1387

`+

)

`

1383

1388

`env = VirtualEnv(venv_path)

`

1384

1389

``

1385

``

`-

assert "include-system-site-packages = true" in pyvenv_cfg.read_text()

`

1386

``

`-

assert env.includes_system_site_packages

`

``

1390

`+

assert (

`

``

1391

`+

f"include-system-site-packages = {str(with_system_site_packages).lower()}"

`

``

1392

`+

in pyvenv_cfg.read_text()

`

``

1393

`+

)

`

``

1394

`+

assert env.includes_system_site_packages is with_system_site_packages

`

``

1395

+

1387

1396

``

``

1397

`+

def test_generic_env_system_packages(poetry: Poetry) -> None:

`

``

1398

`+

"""https://github.com/python-poetry/poetry/issues/8646"""

`

``

1399

`+

env = GenericEnv(Path(sys.base_prefix))

`

``

1400

`+

assert not env.includes_system_site_packages

`

1388

1401

``

``

1402

+

``

1403

`+

@pytest.mark.parametrize("with_system_site_packages", [True, False])

`

1389

1404

`def test_env_system_packages_are_relative_to_lib(

`

1390

``

`-

tmp_path: Path, poetry: Poetry

`

``

1405

`+

tmp_path: Path, poetry: Poetry, with_system_site_packages: bool

`

1391

1406

`) -> None:

`

1392

1407

`venv_path = tmp_path / "venv"

`

1393

``

`-

EnvManager(poetry).build_venv(path=venv_path, flags={"system-site-packages": True})

`

``

1408

`+

EnvManager(poetry).build_venv(

`

``

1409

`+

path=venv_path, flags={"system-site-packages": with_system_site_packages}

`

``

1410

`+

)

`

1394

1411

`env = VirtualEnv(venv_path)

`

1395

1412

`site_dir = Path(site.getsitepackages()[-1])

`

1396

1413

`for dist in metadata.distributions():

`

1397

1414

`# Emulate is_relative_to, only available in 3.9+

`

1398

1415

`with contextlib.suppress(ValueError):

`

1399

1416

`dist._path.relative_to(site_dir) # type: ignore[attr-defined]

`

1400

1417

`break

`

1401

``

`-

assert env.is_path_relative_to_lib(dist._path) # type: ignore[attr-defined]

`

``

1418

`+

assert (

`

``

1419

`+

env.is_path_relative_to_lib(dist._path) # type: ignore[attr-defined]

`

``

1420

`+

is with_system_site_packages

`

``

1421

`+

)

`

1402

1422

``

1403

1423

``

1404

1424

`@pytest.mark.parametrize(

`