晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/tests/ |
| Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/setuptools/tests/test_virtualenv.py |
import os
import subprocess
import sys
from urllib.error import URLError
from urllib.request import urlopen
import pytest
@pytest.fixture(autouse=True)
def pytest_virtualenv_works(venv):
"""
pytest_virtualenv may not work. if it doesn't, skip these
tests. See #1284.
"""
venv_prefix = venv.run(["python", "-c", "import sys; print(sys.prefix)"]).strip()
if venv_prefix == sys.prefix:
pytest.skip("virtualenv is broken (see pypa/setuptools#1284)")
def test_clean_env_install(venv_without_setuptools, setuptools_wheel):
"""
Check setuptools can be installed in a clean environment.
"""
cmd = ["python", "-m", "pip", "install", str(setuptools_wheel)]
venv_without_setuptools.run(cmd)
def access_pypi():
# Detect if tests are being run without connectivity
if not os.environ.get('NETWORK_REQUIRED', False): # pragma: nocover
try:
urlopen('https://pypi.org', timeout=1)
except URLError:
# No network, disable most of these tests
return False
return True
@pytest.mark.skipif(
'platform.python_implementation() == "PyPy"',
reason="https://github.com/pypa/setuptools/pull/2865#issuecomment-965834995",
)
@pytest.mark.skipif(not access_pypi(), reason="no network")
# ^-- Even when it is not necessary to install a different version of `pip`
# the build process will still try to download `wheel`, see #3147 and #2986.
@pytest.mark.parametrize(
'pip_version',
[
None,
pytest.param(
'pip<20.1',
marks=pytest.mark.xfail(
'sys.version_info >= (3, 12)',
reason="pip 23.1.2 required for Python 3.12 and later",
),
),
pytest.param(
'pip<21',
marks=pytest.mark.xfail(
'sys.version_info >= (3, 12)',
reason="pip 23.1.2 required for Python 3.12 and later",
),
),
pytest.param(
'pip<22',
marks=pytest.mark.xfail(
'sys.version_info >= (3, 12)',
reason="pip 23.1.2 required for Python 3.12 and later",
),
),
pytest.param(
'pip<23',
marks=pytest.mark.xfail(
'sys.version_info >= (3, 12)',
reason="pip 23.1.2 required for Python 3.12 and later",
),
),
pytest.param(
'https://github.com/pypa/pip/archive/main.zip',
marks=pytest.mark.xfail(reason='#2975'),
),
],
)
def test_pip_upgrade_from_source(
pip_version, venv_without_setuptools, setuptools_wheel, setuptools_sdist
):
"""
Check pip can upgrade setuptools from source.
"""
# Install pip/wheel, in a venv without setuptools (as it
# should not be needed for bootstrapping from source)
venv = venv_without_setuptools
venv.run(["pip", "install", "-U", "wheel"])
if pip_version is not None:
venv.run(["python", "-m", "pip", "install", "-U", pip_version, "--retries=1"])
with pytest.raises(subprocess.CalledProcessError):
# Meta-test to make sure setuptools is not installed
venv.run(["python", "-c", "import setuptools"])
# Then install from wheel.
venv.run(["pip", "install", str(setuptools_wheel)])
# And finally try to upgrade from source.
venv.run(["pip", "install", "--no-cache-dir", "--upgrade", str(setuptools_sdist)])
def test_no_missing_dependencies(bare_venv, request):
"""
Quick and dirty test to ensure all external dependencies are vendored.
"""
setuptools_dir = request.config.rootdir
bare_venv.run(['python', 'setup.py', '--help'], cwd=setuptools_dir)
|