pypa / virtualenv

Virtual Python Environment builder
https://virtualenv.pypa.io
MIT License
4.81k stars 1.03k forks source link

20.10.0: pytest is failing #2247

Closed kloczek closed 2 years ago

kloczek commented 2 years ago

Issue pytest is failing.

Environment Provide at least:

Output of the virtual environment creation N/A

I'm trying to package your module as an rpm package. So I'm using the typical build, install and test cycle used on building packages from non-root account.

Here is the pytest output

+ PYTHONPATH=/data/home/tkloczko/rpmbuild/BUILDROOT/python-virtualenv-20.10.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/data/home/tkloczko/rpmbuild/BUILDROOT/python-virtualenv-20.10.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -p no:randomly tests/unit tests/integration
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-0.13.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /data/home/tkloczko/rpmbuild/BUILD/virtualenv-20.10.0, configfile: setup.cfg
plugins: shutil-1.7.0, virtualenv-1.7.0, mock-3.6.1, cov-2.12.1, anyio-3.3.4, xdist-2.3.0, flaky-3.7.0, tornasync-0.6.0.post2, console-scripts-1.2.0, trio-0.7.0, timeout-2.0.1, asyncio-0.16.0, freezegun-0.4.2, flake8-1.0.7, pyfakefs-4.5.3, benchmark-3.4.1, profiling-1.7.0, datadir-1.3.1, regressions-2.2.0, rerunfailures-9.1.1, yagot-0.5.0, requests-mock-1.9.3, subtests-0.5.0, easy-server-0.8.0, django-4.5.2, forked-1.4.0, hypothesis-6.31.3
collected 297 items

tests/unit/test_run.py ....                                                                                                                                          [  1%]
tests/unit/test_util.py .s                                                                                                                                           [  2%]
tests/unit/activation/test_activate_this.py s                                                                                                                        [  2%]
tests/unit/activation/test_activation_support.py ............                                                                                                        [  6%]
tests/unit/activation/test_activator.py .                                                                                                                            [  6%]
tests/unit/activation/test_bash.py .                                                                                                                                 [  7%]
tests/unit/activation/test_batch.py s                                                                                                                                [  7%]
tests/unit/activation/test_csh.py .                                                                                                                                  [  7%]
tests/unit/activation/test_fish.py .                                                                                                                                 [  8%]
tests/unit/activation/test_nushell.py s                                                                                                                              [  8%]
tests/unit/activation/test_python_activator.py .                                                                                                                     [  8%]
tests/unit/activation/test_bash.py .                                                                                                                                 [  9%]
tests/unit/activation/test_batch.py s                                                                                                                                [  9%]
tests/unit/activation/test_csh.py .                                                                                                                                  [  9%]
tests/unit/activation/test_fish.py .                                                                                                                                 [ 10%]
tests/unit/activation/test_nushell.py s                                                                                                                              [ 10%]
tests/unit/activation/test_python_activator.py .                                                                                                                     [ 10%]
tests/unit/config/test___main__.py ......                                                                                                                            [ 12%]
tests/unit/config/test_env_var.py ........                                                                                                                           [ 15%]
tests/unit/config/test_ini.py .                                                                                                                                      [ 15%]
tests/unit/config/cli/test_parser.py ...                                                                                                                             [ 16%]
tests/unit/create/test_creator.py ...................ssssssss....s...s......s...ssss.....                                                                            [ 35%]
tests/unit/create/test_interpreters.py .                                                                                                                             [ 35%]
tests/unit/create/via_global_ref/test_api.py .                                                                                                                       [ 36%]
tests/unit/create/via_global_ref/test_build_c_ext.py ..                                                                                                              [ 36%]
tests/unit/discovery/test_discovery.py .......                                                                                                                       [ 39%]
tests/unit/discovery/test_py_spec.py ................................................                                                                                [ 55%]
tests/unit/discovery/py_info/test_py_info.py ..............................................s.                                                                        [ 71%]
tests/unit/discovery/py_info/test_py_info_exe_based_of.py .........................                                                                                  [ 79%]
tests/unit/discovery/windows/test_windows_pep514.py ss                                                                                                               [ 80%]
tests/unit/seed/embed/test_base_embed.py ....                                                                                                                        [ 81%]
tests/unit/seed/embed/test_bootstrap_link_via_app_data.py .....                                                                                                      [ 83%]
tests/unit/seed/wheels/test_acquire.py .FF                                                                                                                           [ 84%]
tests/unit/seed/wheels/test_acquire_find_wheel.py FFF.                                                                                                               [ 85%]
tests/unit/seed/wheels/test_periodic_update.py FFFF........FFFF....F                                                                                                 [ 92%]
tests/unit/seed/wheels/test_wheels_util.py F.FF                                                                                                                      [ 94%]
tests/unit/activation/test_powershell.py ss                                                                                                                          [ 94%]
tests/unit/create/test_creator.py s                                                                                                                                  [ 95%]
tests/unit/create/test_interpreters.py .                                                                                                                             [ 95%]
tests/unit/seed/embed/test_bootstrap_link_via_app_data.py FF...                                                                                                      [ 97%]
tests/unit/seed/embed/test_pip_invoke.py FFFF                                                                                                                        [ 98%]
tests/integration/test_run_int.py s                                                                                                                                  [ 98%]
tests/integration/test_zipapp.py sss                                                                                                                                 [100%]

================================================================================= FAILURES =================================================================================
______________________________________________________________________ test_download_wheel_bad_output ______________________________________________________________________

mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13f07ceb0>, for_py_version = '3.8'
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)

    def test_download_wheel_bad_output(mocker, for_py_version, session_app_data):
        """if the download contains no match for what wheel was downloaded, pick one that matches from target"""
        distribution = "setuptools"
        p_open = mocker.MagicMock()
        mocker.patch("virtualenv.seed.wheels.acquire.Popen", return_value=p_open)
        p_open.communicate.return_value = "", ""
        p_open.returncode = 0

        embed = get_embed_wheel(distribution, for_py_version)
        as_path = mocker.MagicMock()
        available = discover_wheels(BUNDLE_FOLDER, "setuptools", None, for_py_version)
        as_path.iterdir.return_value = [i.path for i in available]

        result = download_wheel(
>           distribution, "=={}".format(embed.version), for_py_version, [], session_app_data, as_path, os.environ
        )
E       AttributeError: 'NoneType' object has no attribute 'version'

as_path    = <MagicMock id='140605401144960'>
available  = []
distribution = 'setuptools'
embed      = None
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13f07ceb0>
p_open     = <MagicMock id='140605401725680'>
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)

tests/unit/seed/wheels/test_acquire.py:34: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401845424 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401845424 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401845424 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401845424 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401117696 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401117696 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401117696 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401117696 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
___________________________________________________________________________ test_download_fails ____________________________________________________________________________

mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e793340>, for_py_version = '3.8'
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)

    def test_download_fails(mocker, for_py_version, session_app_data):
        p_open = mocker.MagicMock()
        mocker.patch("virtualenv.seed.wheels.acquire.Popen", return_value=p_open)
        p_open.communicate.return_value = "out", "err"
        p_open.returncode = 1

        as_path = mocker.MagicMock()
        with pytest.raises(CalledProcessError) as context:
>           download_wheel("pip", "==1", for_py_version, [], session_app_data, as_path, os.environ),

as_path    = <MagicMock id='140605392549152'>
context    = <ExceptionInfo for raises contextmanager>
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e793340>
p_open     = <MagicMock id='140605392502160'>
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)

tests/unit/seed/wheels/test_acquire.py:47:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../BUILDROOT/python-virtualenv-20.10.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/virtualenv/seed/wheels/acquire.py:58: in download_wheel
    env = pip_wheel_env_run(search_dirs, app_data, env)
        app_data   = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
        cmd        = ['/usr/bin/python3', '-m', 'pip', 'download', '--progress-bar', 'off', ...]
        distribution = 'pip'
        env        = environ({'PATH': '/data/home/tkloczko/rpmbuild/BUILDROOT/python-virtualenv-20.10.0-2.fc35.x86_64/usr/bin:/data/home/tk...els/test_acquire.py::test_download_fails (call)', 'VIRTUALENV_NO_PERIODIC_UPDATE': '1', 'VIRTUALENV_NO_DOWNLOAD': '1'})
        for_py_version = '3.8'
        search_dirs = []
        to_download = 'pip==1'
        to_folder  = <MagicMock id='140605392549152'>
        version_spec = '==1'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

search_dirs = [], app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
env = {'AR': '/usr/bin/gcc-ar', 'BASH_FUNC_which%%': '() {  ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only -...les -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none', ...}

    def pip_wheel_env_run(search_dirs, app_data, env):
        for_py_version = "{}.{}".format(*sys.version_info[0:2])
        env = env.copy()
        env.update(
            {
                ensure_str(k): str(v)  # python 2 requires these to be string only (non-unicode)
                for k, v in {"PIP_USE_WHEEL": "1", "PIP_USER": "0", "PIP_NO_INPUT": "1"}.items()
            },
        )
        wheel = get_wheel(
            distribution="pip",
            version=None,
            for_py_version=for_py_version,
            search_dirs=search_dirs,
            download=False,
            app_data=app_data,
            do_periodic_update=False,
            env=env,
        )
        if wheel is None:
>           raise RuntimeError("could not find the embedded pip")
E           RuntimeError: could not find the embedded pip

app_data   = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
env        = {'AR': '/usr/bin/gcc-ar', 'BASH_FUNC_which%%': '() {  ( alias;\n eval ${which_declare} ) | /usr/bin/which --tty-only -...les -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none', ...}
for_py_version = '3.8'
search_dirs = []
wheel      = None

../../BUILDROOT/python-virtualenv-20.10.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/virtualenv/seed/wheels/acquire.py:119: RuntimeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605392499520 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605392499520 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605392499520 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605392499520 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
DEBUG    root:acquire.py:40 download wheel pip==1 3.8 to <MagicMock id='140605392549152'>
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605392517872 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605392517872 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605392517872 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605392517872 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
_____________________________________________________________________________ test_find_latest _____________________________________________________________________________

for_py_version = '3.8'

    def test_find_latest(for_py_version):
        result = find_compatible_in_house("setuptools", None, for_py_version, BUNDLE_FOLDER)
        expected = get_embed_wheel("setuptools", for_py_version)
>       assert result.path == expected.path
E       AttributeError: 'NoneType' object has no attribute 'path'

expected   = None
for_py_version = '3.8'
result     = None

tests/unit/seed/wheels/test_acquire_find_wheel.py:12: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401115952 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401115952 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401115952 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401115952 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401120240 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401120240 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401120240 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401120240 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
_____________________________________________________________________________ test_find_exact ______________________________________________________________________________

for_py_version = '3.8'

    def test_find_exact(for_py_version):
        expected = get_embed_wheel("setuptools", for_py_version)
>       result = find_compatible_in_house("setuptools", "=={}".format(expected.version), for_py_version, BUNDLE_FOLDER)
E       AttributeError: 'NoneType' object has no attribute 'version'

expected   = None
for_py_version = '3.8'

tests/unit/seed/wheels/test_acquire_find_wheel.py:17: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401118944 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401118944 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401118944 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401118944 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401844656 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401844656 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401844656 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401844656 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
___________________________________________________________________________ test_find_less_than ____________________________________________________________________________

for_py_version = '3.8'

    def test_find_less_than(for_py_version):
        latest = get_embed_wheel("setuptools", MAX)
>       result = find_compatible_in_house("setuptools", "<{}".format(latest.version), MAX, BUNDLE_FOLDER)
E       AttributeError: 'NoneType' object has no attribute 'version'

for_py_version = '3.8'
latest     = None

tests/unit/seed/wheels/test_acquire_find_wheel.py:23: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401112832 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401112832 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401112832 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401112832 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605392603840 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605392603840 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605392603840 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605392603840 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
___________________________________________________________________________ test_manual_upgrade ____________________________________________________________________________

session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0), caplog = <_pytest.logging.LogCaptureFixture object at 0x7fe13efca220>
mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13efca2b0>, for_py_version = '3.8'

    def test_manual_upgrade(session_app_data, caplog, mocker, for_py_version):
        wheel = get_embed_wheel("pip", for_py_version)
>       new_version = NewVersion(wheel.path, datetime.now(), datetime.now() - timedelta(days=20))
E       AttributeError: 'NoneType' object has no attribute 'path'

caplog     = <_pytest.logging.LogCaptureFixture object at 0x7fe13efca220>
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13efca2b0>
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:45: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401166608 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401166608 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401166608 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401166608 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401168192 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401168192 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401168192 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401168192 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
________________________________________________________________________ test_pick_periodic_update _________________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_pick_periodic_update0')
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0), mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13efd62e0>
for_py_version = '3.8'

    def test_pick_periodic_update(tmp_path, session_app_data, mocker, for_py_version):
        embed, current = get_embed_wheel("setuptools", "3.5"), get_embed_wheel("setuptools", for_py_version)
        mocker.patch("virtualenv.seed.wheels.bundle.load_embed_wheel", return_value=embed)
        completed = datetime.now() - timedelta(days=29)
        u_log = UpdateLog(
            started=datetime.now() - timedelta(days=30),
            completed=completed,
>           versions=[NewVersion(filename=current.path, found_date=completed, release_date=completed)],
            periodic=True,
        )
E       AttributeError: 'NoneType' object has no attribute 'path'

completed  = datetime.datetime(2021, 11, 12, 13, 43, 9, 60581)
current    = None
embed      = None
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13efd62e0>
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_pick_periodic_update0')

tests/unit/seed/wheels/test_periodic_update.py:76: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401161888 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401161888 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401161888 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401161888 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401833040 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401833040 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401833040 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401833040 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
__________________________________________________________________ test_periodic_update_stops_at_current ___________________________________________________________________

mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13f052eb0>, session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
for_py_version = '3.8'

    def test_periodic_update_stops_at_current(mocker, session_app_data, for_py_version):
        current = get_embed_wheel("setuptools", for_py_version)

        now, completed = datetime.now(), datetime.now() - timedelta(days=29)
        u_log = UpdateLog(
            started=completed,
            completed=completed,
            versions=[
>               NewVersion(wheel_path(current, (1,)), completed, now - timedelta(days=1)),
                NewVersion(filename=current.path, found_date=completed, release_date=now - timedelta(days=2)),
                NewVersion(wheel_path(current, (-1,)), completed, now - timedelta(days=30)),
            ],
            periodic=True,
        )

completed  = datetime.datetime(2021, 11, 12, 13, 43, 9, 131796)
current    = None
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13f052eb0>
now        = datetime.datetime(2021, 12, 11, 13, 43, 9, 131792)
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)

tests/unit/seed/wheels/test_periodic_update.py:96:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

wheel = None, of = (1,)

    def wheel_path(wheel, of):
>       new_version = ".".join(str(i) for i in (tuple(sum(x) for x in zip_longest(wheel.version_tuple, of, fillvalue=0))))
E       AttributeError: 'NoneType' object has no attribute 'version_tuple'

of         = (1,)
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:128: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401672672 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401672672 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401672672 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401672672 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605402045888 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605402045888 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605402045888 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605402045888 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
__________________________________________________________________ test_periodic_update_latest_per_patch ___________________________________________________________________

mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e6e2760>, session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
for_py_version = '3.8'

    def test_periodic_update_latest_per_patch(mocker, session_app_data, for_py_version):
        current = get_embed_wheel("setuptools", for_py_version)
        now, completed = datetime.now(), datetime.now() - timedelta(days=29)
        u_log = UpdateLog(
            started=completed,
            completed=completed,
            versions=[
>               NewVersion(wheel_path(current, (0, 1, 2)), completed, now - timedelta(days=1)),
                NewVersion(wheel_path(current, (0, 1, 1)), completed, now - timedelta(days=30)),
                NewVersion(filename=str(current.path), found_date=completed, release_date=now - timedelta(days=2)),
            ],
            periodic=True,
        )

completed  = datetime.datetime(2021, 11, 12, 13, 43, 9, 164096)
current    = None
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e6e2760>
now        = datetime.datetime(2021, 12, 11, 13, 43, 9, 164094)
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)

tests/unit/seed/wheels/test_periodic_update.py:115:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

wheel = None, of = (0, 1, 2)

    def wheel_path(wheel, of):
>       new_version = ".".join(str(i) for i in (tuple(sum(x) for x in zip_longest(wheel.version_tuple, of, fillvalue=0))))
E       AttributeError: 'NoneType' object has no attribute 'version_tuple'

of         = (0, 1, 2)
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:128: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391774144 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391774144 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391774144 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391774144 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605401831168 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605401831168 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605401831168 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605401831168 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
_______________________________________________________________________ test_trigger_update_no_debug _______________________________________________________________________

for_py_version = '3.8', session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_trigger_update_no_debug0'), mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e65cb50>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe13e6b9cd0>

    def test_trigger_update_no_debug(for_py_version, session_app_data, tmp_path, mocker, monkeypatch):
        monkeypatch.delenv(str("_VIRTUALENV_PERIODIC_UPDATE_INLINE"), raising=False)
        current = get_embed_wheel("setuptools", for_py_version)
        process = mocker.MagicMock()
        process.communicate.return_value = None, None
        Popen = mocker.patch("virtualenv.seed.wheels.periodic_update.Popen", return_value=process)

        trigger_update(
            "setuptools", for_py_version, current, [tmp_path / "a", tmp_path / "b"], session_app_data, os.environ, True
        )

        assert Popen.call_count == 1
        args, kwargs = Popen.call_args
        cmd = (
            dedent(
                """
            from virtualenv.report import setup_report, MAX_LEVEL
            from virtualenv.seed.wheels.periodic_update import do_update
            setup_report(MAX_LEVEL, show_pid=True)
            do_update({!r}, {!r}, {!r}, {!r}, {!r}, {!r})
            """,
            )
            .strip()
            .format(
                "setuptools",
                for_py_version,
>               str(current.path),
                str(session_app_data),
                [str(tmp_path / "a"), str(tmp_path / "b")],
                True,
            )
        )
E       AttributeError: 'NoneType' object has no attribute 'path'

Popen      = <MagicMock name='Popen' id='140605391275152'>
args       = (['/usr/bin/python3', '-c', "from virtualenv.report import setup_report, MAX_LEVEL\nfrom virtualenv.seed.wheels.period...st-31/test_trigger_update_no_debug0/a', '/tmp/pytest-of-tkloczko/pytest-31/test_trigger_update_no_debug0/b'], True)"],)
current    = None
for_py_version = '3.8'
kwargs     = {'stderr': -1, 'stdout': -1}
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e65cb50>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe13e6b9cd0>
process    = <MagicMock id='140605391228064'>
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_trigger_update_no_debug0')

tests/unit/seed/wheels/test_periodic_update.py:233: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391226480 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391226480 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391226480 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391226480 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
INFO     root:periodic_update.py:194 triggered periodic upgrade of setuptools (for python 3.8) via background process having PID 1
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391274816 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391274816 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391274816 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391274816 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
________________________________________________________________________ test_trigger_update_debug _________________________________________________________________________

for_py_version = '3.8', session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_trigger_update_debug0'), mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e659be0>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe13e65c250>

    def test_trigger_update_debug(for_py_version, session_app_data, tmp_path, mocker, monkeypatch):
        monkeypatch.setenv(str("_VIRTUALENV_PERIODIC_UPDATE_INLINE"), str("1"))
        current = get_embed_wheel("pip", for_py_version)

        process = mocker.MagicMock()
        process.communicate.return_value = None, None
        Popen = mocker.patch("virtualenv.seed.wheels.periodic_update.Popen", return_value=process)

        trigger_update(
            "pip", for_py_version, current, [tmp_path / "a", tmp_path / "b"], session_app_data, os.environ, False
        )

        assert Popen.call_count == 1
        args, kwargs = Popen.call_args
        cmd = (
            dedent(
                """
            from virtualenv.report import setup_report, MAX_LEVEL
            from virtualenv.seed.wheels.periodic_update import do_update
            setup_report(MAX_LEVEL, show_pid=True)
            do_update({!r}, {!r}, {!r}, {!r}, {!r}, {!r})
            """,
            )
            .strip()
            .format(
                "pip",
                for_py_version,
>               str(current.path),
                str(session_app_data),
                [str(tmp_path / "a"), str(tmp_path / "b")],
                False,
            )
        )
E       AttributeError: 'NoneType' object has no attribute 'path'

Popen      = <MagicMock name='Popen' id='140605391141664'>
args       = (['/usr/bin/python3', '-c', "from virtualenv.report import setup_report, MAX_LEVEL\nfrom virtualenv.seed.wheels.period.../pytest-31/test_trigger_update_debug0/a', '/tmp/pytest-of-tkloczko/pytest-31/test_trigger_update_debug0/b'], False)"],)
current    = None
for_py_version = '3.8'
kwargs     = {'stderr': None, 'stdout': None}
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e659be0>
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7fe13e65c250>
process    = <MagicMock id='140605391215344'>
session_app_data = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/session-app-data0)
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_trigger_update_debug0')

tests/unit/seed/wheels/test_periodic_update.py:275: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391225232 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391225232 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391225232 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391225232 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
INFO     root:periodic_update.py:194 triggered periodic upgrade of pip (for python 3.8) via background process having PID 1
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391141520 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391141520 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391141520 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391141520 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
___________________________________________________________________________ test_do_update_first ___________________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_do_update_first0'), mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13f622220>
freezer = <freezegun.api.FrozenDateTimeFactory object at 0x7fe13f6229a0>

    def test_do_update_first(tmp_path, mocker, freezer):
        freezer.move_to(_UP_NOW)
        wheel = get_embed_wheel("pip", "3.9")
        app_data_outer = AppDataDiskFolder(str(tmp_path / "app"))
        extra = tmp_path / "extra"
        extra.mkdir()

        pip_version_remote = [
>           (wheel_path(wheel, (1, 0, 0)), None),
            (wheel_path(wheel, (0, 1, 0)), _UP_NOW - timedelta(days=1)),
            (wheel_path(wheel, (0, 0, 1)), _UP_NOW - timedelta(days=2)),
            (wheel.path, _UP_NOW - timedelta(days=3)),
            (wheel_path(wheel, (-1, 0, 0)), _UP_NOW - timedelta(days=30)),
        ]

app_data_outer = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/test_do_update_first0/app)
extra      = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_do_update_first0/extra')
freezer    = <freezegun.api.FrozenDateTimeFactory object at 0x7fe13f6229a0>
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13f622220>
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_do_update_first0')
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:295:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

wheel = None, of = (1, 0, 0)

    def wheel_path(wheel, of):
>       new_version = ".".join(str(i) for i in (tuple(sum(x) for x in zip_longest(wheel.version_tuple, of, fillvalue=0))))
E       AttributeError: 'NoneType' object has no attribute 'version_tuple'

of         = (1, 0, 0)
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:128: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605407767424 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605407767424 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605407767424 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605407767424 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391547696 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391547696 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391547696 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391547696 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
_____________________________________________________________________ test_do_update_skip_already_done _____________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_do_update_skip_already_do0'), mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13f054580>
freezer = <freezegun.api.FrozenDateTimeFactory object at 0x7fe13e676430>

    def test_do_update_skip_already_done(tmp_path, mocker, freezer):
        freezer.move_to(_UP_NOW + timedelta(hours=1))
        wheel = get_embed_wheel("pip", "3.9")
        app_data_outer = AppDataDiskFolder(str(tmp_path / "app"))
        extra = tmp_path / "extra"
        extra.mkdir()

        def _download_wheel(distribution, version_spec, for_py_version, search_dirs, app_data, to_folder, env):  # noqa
            return wheel.path

        download_wheel = mocker.patch("virtualenv.seed.wheels.acquire.download_wheel", side_effect=_download_wheel)
        url_o = mocker.patch("virtualenv.seed.wheels.periodic_update.urlopen", side_effect=RuntimeError)

        released = _UP_NOW - timedelta(days=30)
        u_log = UpdateLog(
            started=_UP_NOW - timedelta(days=31),
            completed=released,
>           versions=[NewVersion(filename=wheel.path.name, found_date=released, release_date=released)],
            periodic=True,
        )
E       AttributeError: 'NoneType' object has no attribute 'path'

_download_wheel = <function test_do_update_skip_already_done.<locals>._download_wheel at 0x7fe13e6cf3a0>
app_data_outer = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/test_do_update_skip_already_do0/app)
download_wheel = <MagicMock name='download_wheel' id='140605391332688'>
extra      = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_do_update_skip_already_do0/extra')
freezer    = <freezegun.api.FrozenDateTimeFactory object at 0x7fe13e676430>
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13f054580>
released   = datetime.datetime(2021, 11, 11, 13, 42, 34, 508267)
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_do_update_skip_already_do0')
url_o      = <MagicMock name='urlopen' id='140605391410464'>
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:374: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391186912 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391186912 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391186912 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391186912 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391332448 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391332448 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391332448 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391332448 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
______________________________________________________________________ test_download_stop_with_embed _______________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_download_stop_with_embed0'), mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e4e7100>
freezer = <freezegun.api.FrozenDateTimeFactory object at 0x7fe13e4e79d0>

    def test_download_stop_with_embed(tmp_path, mocker, freezer):
        freezer.move_to(_UP_NOW)
        wheel = get_embed_wheel("pip", "3.9")
        app_data_outer = AppDataDiskFolder(str(tmp_path / "app"))
>       pip_version_remote = [wheel_path(wheel, (0, 0, 2)), wheel_path(wheel, (0, 0, 1)), wheel_path(wheel, (-1, 0, 0))]

app_data_outer = AppDataDiskFolder(/tmp/pytest-of-tkloczko/pytest-31/test_download_stop_with_embed0/app)
freezer    = <freezegun.api.FrozenDateTimeFactory object at 0x7fe13e4e79d0>
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e4e7100>
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_download_stop_with_embed0')
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:450:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

wheel = None, of = (0, 0, 2)

    def wheel_path(wheel, of):
>       new_version = ".".join(str(i) for i in (tuple(sum(x) for x in zip_longest(wheel.version_tuple, of, fillvalue=0))))
E       AttributeError: 'NoneType' object has no attribute 'version_tuple'

of         = (0, 0, 2)
wheel      = None

tests/unit/seed/wheels/test_periodic_update.py:128: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391396336 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391396336 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391396336 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391396336 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605391472720 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605391472720 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605391472720 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605391472720 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
__________________________________________________________________ test_wheel_support_no_python_requires ___________________________________________________________________

mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e51fbb0>

    def test_wheel_support_no_python_requires(mocker):
        wheel = get_embed_wheel("setuptools", for_py_version=None)
        zip_mock = mocker.MagicMock()
        mocker.patch("virtualenv.seed.wheels.util.ZipFile", new=zip_mock)
        zip_mock.return_value.__enter__.return_value.read = lambda name: b""

>       supports = wheel.support_py("3.8")
E       AttributeError: 'NoneType' object has no attribute 'support_py'

mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e51fbb0>
wheel      = None
zip_mock   = <MagicMock id='140605389928432'>

tests/unit/seed/wheels/test_wheels_util.py:15: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605389929392 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605389929392 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605389929392 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605389929392 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390639456 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390639456 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390639456 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390639456 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
__________________________________________________________________________ test_wheel_not_support __________________________________________________________________________

    def test_wheel_not_support():
        wheel = get_embed_wheel("setuptools", MAX)
>       assert wheel.support_py("3.3") is False
E       AttributeError: 'NoneType' object has no attribute 'support_py'

wheel      = None

tests/unit/seed/wheels/test_wheels_util.py:26: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605389569472 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605389569472 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605389569472 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605389569472 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605389718768 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605389718768 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605389718768 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605389718768 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
_____________________________________________________________________________ test_wheel_repr ______________________________________________________________________________

    def test_wheel_repr():
        wheel = get_embed_wheel("setuptools", MAX)
>       assert str(wheel.path) in repr(wheel)
E       AttributeError: 'NoneType' object has no attribute 'path'

wheel      = None

tests/unit/seed/wheels/test_wheels_util.py:31: AttributeError
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605389720400 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605389720400 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605389720400 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605389720400 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605389567168 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605389567168 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605389567168 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605389567168 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
____________________________________________________________________ test_seed_link_via_app_data[False] ____________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_seed_link_via_app_data_Fa0'), coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e5e45e0>
current_fastest = 'builtin', copies = False

    @pytest.mark.slow
    @pytest.mark.parametrize("copies", [False, True] if fs_supports_symlink() else [True])
    def test_seed_link_via_app_data(tmp_path, coverage_env, current_fastest, copies):
        current = PythonInfo.current_system()
>       bundle_ver = BUNDLE_SUPPORT[current.version_release_str]
E       TypeError: 'NoneType' object is not subscriptable

copies     = False
coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e5e45e0>
current    = PythonInfo({'platform': 'linux', 'implementation': 'CPython', 'version_info': VersionInfo(major=3, minor=8, micro=12, ...em_stdlib': '/usr/lib64/python3.8', 'system_stdlib_platform': '/usr/lib64/python3.8', 'max_size': 9223372036854775807})
current_fastest = 'builtin'
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_seed_link_via_app_data_Fa0')

tests/unit/seed/embed/test_bootstrap_link_via_app_data.py:26: TypeError
-------------------------------------------------------------------------- Captured stdout setup ---------------------------------------------------------------------------
38472 Attempting to acquire lock 140605390586496 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
38472 Lock 140605390586496 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
38472 Attempting to release lock 140605390586496 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
38472 Lock 140605390586496 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390586496 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390586496 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390586496 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390586496 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
------------------------------------------------------------------------- Captured stdout teardown -------------------------------------------------------------------------
38485 Attempting to acquire lock 140605390718144 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
38485 Lock 140605390718144 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
38485 Attempting to release lock 140605390718144 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
38485 Lock 140605390718144 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390718144 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390718144 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390718144 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390718144 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
____________________________________________________________________ test_seed_link_via_app_data[True] _____________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_seed_link_via_app_data_Tr0'), coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e5e41f0>
current_fastest = 'builtin', copies = True

    @pytest.mark.slow
    @pytest.mark.parametrize("copies", [False, True] if fs_supports_symlink() else [True])
    def test_seed_link_via_app_data(tmp_path, coverage_env, current_fastest, copies):
        current = PythonInfo.current_system()
>       bundle_ver = BUNDLE_SUPPORT[current.version_release_str]
E       TypeError: 'NoneType' object is not subscriptable

copies     = True
coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e5e41f0>
current    = PythonInfo({'platform': 'linux', 'implementation': 'CPython', 'version_info': VersionInfo(major=3, minor=8, micro=12, ...em_stdlib': '/usr/lib64/python3.8', 'system_stdlib_platform': '/usr/lib64/python3.8', 'max_size': 9223372036854775807})
current_fastest = 'builtin'
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_seed_link_via_app_data_Tr0')

tests/unit/seed/embed/test_bootstrap_link_via_app_data.py:26: TypeError
-------------------------------------------------------------------------- Captured stdout setup ---------------------------------------------------------------------------
38490 Attempting to acquire lock 140605390575408 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
38490 Lock 140605390575408 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
38490 Attempting to release lock 140605390575408 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
38490 Lock 140605390575408 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390575408 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390575408 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390575408 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390575408 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
------------------------------------------------------------------------- Captured stdout teardown -------------------------------------------------------------------------
38501 Attempting to acquire lock 140605390382224 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
38501 Lock 140605390382224 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
38501 Attempting to release lock 140605390382224 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
38501 Lock 140605390382224 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390382224 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390382224 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390382224 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390382224 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
_________________________________________________________________ test_base_bootstrap_via_pip_invoke[pip] __________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in0'), coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e5e4790>
mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e5c03a0>, current_fastest = 'builtin', no = 'pip'

    @pytest.mark.slow
    @pytest.mark.parametrize("no", ["pip", "setuptools", "wheel", ""])
    def test_base_bootstrap_via_pip_invoke(tmp_path, coverage_env, mocker, current_fastest, no):
        extra_search_dir = tmp_path / "extra"
        extra_search_dir.mkdir()
        for_py_version = "{}.{}".format(*sys.version_info[0:2])
>       new = BUNDLE_SUPPORT[for_py_version]
E       TypeError: 'NoneType' object is not subscriptable

coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e5e4790>
current_fastest = 'builtin'
extra_search_dir = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in0/extra')
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e5c03a0>
no         = 'pip'
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in0')

tests/unit/seed/embed/test_pip_invoke.py:21: TypeError
-------------------------------------------------------------------------- Captured stdout setup ---------------------------------------------------------------------------
39218 Attempting to acquire lock 140605390045584 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39218 Lock 140605390045584 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39218 Attempting to release lock 140605390045584 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39218 Lock 140605390045584 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390045584 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390045584 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390045584 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390045584 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
------------------------------------------------------------------------- Captured stdout teardown -------------------------------------------------------------------------
39226 Attempting to acquire lock 140605390332784 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39226 Lock 140605390332784 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39226 Attempting to release lock 140605390332784 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39226 Lock 140605390332784 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390332784 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390332784 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390332784 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390332784 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
______________________________________________________________ test_base_bootstrap_via_pip_invoke[setuptools] ______________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in1'), coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e4fd9d0>
mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e5c0eb0>, current_fastest = 'builtin', no = 'setuptools'

    @pytest.mark.slow
    @pytest.mark.parametrize("no", ["pip", "setuptools", "wheel", ""])
    def test_base_bootstrap_via_pip_invoke(tmp_path, coverage_env, mocker, current_fastest, no):
        extra_search_dir = tmp_path / "extra"
        extra_search_dir.mkdir()
        for_py_version = "{}.{}".format(*sys.version_info[0:2])
>       new = BUNDLE_SUPPORT[for_py_version]
E       TypeError: 'NoneType' object is not subscriptable

coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e4fd9d0>
current_fastest = 'builtin'
extra_search_dir = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in1/extra')
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e5c0eb0>
no         = 'setuptools'
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in1')

tests/unit/seed/embed/test_pip_invoke.py:21: TypeError
-------------------------------------------------------------------------- Captured stdout setup ---------------------------------------------------------------------------
39231 Attempting to acquire lock 140605390335808 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39231 Lock 140605390335808 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39231 Attempting to release lock 140605390335808 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39231 Lock 140605390335808 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390335808 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390335808 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390335808 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390335808 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
------------------------------------------------------------------------- Captured stdout teardown -------------------------------------------------------------------------
39238 Attempting to acquire lock 140605390332640 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39239 Lock 140605390332640 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39239 Attempting to release lock 140605390332640 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39239 Lock 140605390332640 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390332640 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390332640 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390332640 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390332640 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
________________________________________________________________ test_base_bootstrap_via_pip_invoke[wheel] _________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in2'), coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e4fdaf0>
mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e5b1c70>, current_fastest = 'builtin', no = 'wheel'

    @pytest.mark.slow
    @pytest.mark.parametrize("no", ["pip", "setuptools", "wheel", ""])
    def test_base_bootstrap_via_pip_invoke(tmp_path, coverage_env, mocker, current_fastest, no):
        extra_search_dir = tmp_path / "extra"
        extra_search_dir.mkdir()
        for_py_version = "{}.{}".format(*sys.version_info[0:2])
>       new = BUNDLE_SUPPORT[for_py_version]
E       TypeError: 'NoneType' object is not subscriptable

coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e4fdaf0>
current_fastest = 'builtin'
extra_search_dir = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in2/extra')
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e5b1c70>
no         = 'wheel'
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in2')

tests/unit/seed/embed/test_pip_invoke.py:21: TypeError
-------------------------------------------------------------------------- Captured stdout setup ---------------------------------------------------------------------------
39244 Attempting to acquire lock 140605390527360 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39244 Lock 140605390527360 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39244 Attempting to release lock 140605390527360 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39244 Lock 140605390527360 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390527360 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390527360 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390527360 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390527360 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
------------------------------------------------------------------------- Captured stdout teardown -------------------------------------------------------------------------
39251 Attempting to acquire lock 140605390414128 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39251 Lock 140605390414128 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39251 Attempting to release lock 140605390414128 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39251 Lock 140605390414128 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390414128 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390414128 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390414128 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390414128 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
___________________________________________________________________ test_base_bootstrap_via_pip_invoke[] ___________________________________________________________________

tmp_path = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in3'), coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e4fd8b0>
mocker = <pytest_mock.plugin.MockerFixture object at 0x7fe13e582100>, current_fastest = 'builtin', no = ''

    @pytest.mark.slow
    @pytest.mark.parametrize("no", ["pip", "setuptools", "wheel", ""])
    def test_base_bootstrap_via_pip_invoke(tmp_path, coverage_env, mocker, current_fastest, no):
        extra_search_dir = tmp_path / "extra"
        extra_search_dir.mkdir()
        for_py_version = "{}.{}".format(*sys.version_info[0:2])
>       new = BUNDLE_SUPPORT[for_py_version]
E       TypeError: 'NoneType' object is not subscriptable

coverage_env = <function coverage_env.<locals>.finish at 0x7fe13e4fd8b0>
current_fastest = 'builtin'
extra_search_dir = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in3/extra')
for_py_version = '3.8'
mocker     = <pytest_mock.plugin.MockerFixture object at 0x7fe13e582100>
no         = ''
tmp_path   = PosixPath('/tmp/pytest-of-tkloczko/pytest-31/test_base_bootstrap_via_pip_in3')

tests/unit/seed/embed/test_pip_invoke.py:21: TypeError
-------------------------------------------------------------------------- Captured stdout setup ---------------------------------------------------------------------------
39256 Attempting to acquire lock 140605390525776 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39256 Lock 140605390525776 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39256 Attempting to release lock 140605390525776 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39257 Lock 140605390525776 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
---------------------------------------------------------------------------- Captured log setup ----------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390525776 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390525776 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390525776 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390525776 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
------------------------------------------------------------------------- Captured stdout teardown -------------------------------------------------------------------------
39263 Attempting to acquire lock 140605390048416 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:165]
39264 Lock 140605390048416 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:169]
39264 Attempting to release lock 140605390048416 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:199]
39264 Lock 140605390048416 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock [DEBUG _api:202]
-------------------------------------------------------------------------- Captured log teardown ---------------------------------------------------------------------------
DEBUG    filelock:_api.py:165 Attempting to acquire lock 140605390048416 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:169 Lock 140605390048416 acquired on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:199 Attempting to release lock 140605390048416 on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
DEBUG    filelock:_api.py:202 Lock 140605390048416 released on /tmp/pytest-of-tkloczko/pytest-31/session-app-data0/py_info/1/.lock
============================================================================= warnings summary =============================================================================
../../../../../../usr/lib/python3.8/site-packages/_pytest/config/__init__.py:1233
  /usr/lib/python3.8/site-packages/_pytest/config/__init__.py:1233: PytestConfigWarning: Unknown config option: env

    self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")

tests/unit/test_run.py: 14 warnings
tests/unit/test_util.py: 2 warnings
tests/unit/activation/test_activate_this.py: 2 warnings
tests/unit/activation/test_activation_support.py: 26 warnings
tests/unit/activation/test_activator.py: 2 warnings
tests/unit/activation/test_bash.py: 8 warnings
tests/unit/activation/test_batch.py: 4 warnings
tests/unit/activation/test_csh.py: 4 warnings
tests/unit/activation/test_fish.py: 4 warnings
tests/unit/activation/test_nushell.py: 4 warnings
tests/unit/activation/test_python_activator.py: 4 warnings
tests/unit/config/test___main__.py: 23 warnings
tests/unit/config/test_env_var.py: 24 warnings
tests/unit/config/test_ini.py: 4 warnings
tests/unit/config/cli/test_parser.py: 10 warnings
tests/unit/create/test_creator.py: 188 warnings
tests/unit/create/test_interpreters.py: 8 warnings
tests/unit/create/via_global_ref/test_api.py: 2 warnings
tests/unit/create/via_global_ref/test_build_c_ext.py: 14 warnings
tests/unit/discovery/test_discovery.py: 26 warnings
tests/unit/discovery/test_py_spec.py: 96 warnings
tests/unit/discovery/py_info/test_py_info.py: 110 warnings
tests/unit/discovery/py_info/test_py_info_exe_based_of.py: 98 warnings
tests/unit/seed/embed/test_base_embed.py: 16 warnings
tests/unit/seed/embed/test_bootstrap_link_via_app_data.py: 49 warnings
tests/unit/seed/wheels/test_acquire.py: 6 warnings
tests/unit/seed/wheels/test_acquire_find_wheel.py: 8 warnings
tests/unit/seed/wheels/test_periodic_update.py: 42 warnings
tests/unit/seed/wheels/test_wheels_util.py: 8 warnings
tests/unit/activation/test_powershell.py: 8 warnings
tests/unit/seed/embed/test_pip_invoke.py: 8 warnings
  /usr/lib/python3.8/site-packages/filelock/_api.py:151: DeprecationWarning: use poll_interval instead of poll_intervall
    warnings.warn(msg, DeprecationWarning)

tests/unit/discovery/py_info/test_py_info.py: 1 warning
tests/unit/discovery/py_info/test_py_info_exe_based_of.py: 24 warnings
tests/unit/seed/embed/test_base_embed.py: 4 warnings
tests/unit/seed/embed/test_bootstrap_link_via_app_data.py: 8 warnings
tests/unit/activation/test_powershell.py: 2 warnings
tests/unit/create/test_interpreters.py: 2 warnings
  /usr/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html
========================================================================= short test summary info ==========================================================================
SKIPPED [1] tests/unit/test_util.py:19: subprocess patch only applied on Windows python2
SKIPPED [2] tests/conftest.py:377: could not find 2
SKIPPED [2] tests/unit/activation/conftest.py:255: BatchActivator not supported
SKIPPED [1] tests/unit/activation/conftest.py:258: Nushell(
version=TypeError('expected str, bytes or os.PathLike object, not NoneType'),
creator=CPython3Posix(dest=/tmp/pytest-of-tkloczko/pytest-31/activation-tester-env0/e-$ Γ¨Ρ€Ρ‚πŸš’β™žδΈ­η‰‡-j, clear=False, no_vcs_ignore=False, global=False),
interpreter=PythonInfo(spec=CPython3.8.12.final.0-64, exe=/usr/bin/python3, platform=linux, version='3.8.12 (default, Sep 17 2021, 04:04:49) \n[GCC 11.2.1 20210728 (Red Hat 11.2.1-1)]', encoding_fs_io=utf-8-utf-8)) is not available due expected str, bytes or os.PathLike object, not NoneType
SKIPPED [1] tests/unit/activation/conftest.py:258: Nushell(
version=TypeError('expected str, bytes or os.PathLike object, not NoneType'),
creator=CPython3Posix(dest=/tmp/pytest-of-tkloczko/pytest-31/activation-tester-env1/e-$ Γ¨Ρ€Ρ‚πŸš’β™žδΈ­η‰‡-j, clear=False, no_vcs_ignore=False, global=False),
interpreter=PythonInfo(spec=CPython3.8.12.final.0-64, exe=/usr/bin/python3, platform=linux, version='3.8.12 (default, Sep 17 2021, 04:04:49) \n[GCC 11.2.1 20210728 (Red Hat 11.2.1-1)]', encoding_fs_io=utf-8-utf-8)) is not available due expected str, bytes or os.PathLike object, not NoneType
SKIPPED [8] tests/unit/create/conftest.py:101: could not resolve interpreter based on old_virtualenv because failed to create old virtualenv assert not 1
 +  where 1 = <subprocess.Popen object at 0x7fe13f77fd90>.returncode
SKIPPED [1] tests/unit/create/test_creator.py:294: python 2 only tests
SKIPPED [1] tests/unit/create/test_creator.py:315: venv without clear might fail
SKIPPED [1] tests/unit/create/test_creator.py:389: OS does not have an altsep
SKIPPED [2] tests/unit/create/test_creator.py:467: we rewrite sys.path only on PY2
SKIPPED [2] tests/unit/create/test_creator.py:523: stdlib components without py files only possible on CPython2
SKIPPED [1] tests/conftest.py:390: test not valid if run under system
SKIPPED [1] tests/unit/discovery/windows/test_windows_pep514.py:14: no Windows registry
SKIPPED [1] tests/unit/discovery/windows/test_windows_pep514.py:33: no Windows registry
SKIPPED [1] tests/unit/activation/conftest.py:258: PowerShell(
version=FileNotFoundError(2, 'No such file or directory'),
creator=CPython3Posix(dest=/tmp/pytest-of-tkloczko/pytest-31/activation-tester-env2/e-$ Γ¨Ρ€Ρ‚πŸš’β™žδΈ­η‰‡-j, clear=False, no_vcs_ignore=False, global=False),
interpreter=PythonInfo(spec=CPython3.8.12.final.0-64, exe=/usr/bin/python3, platform=linux, version='3.8.12 (default, Sep 17 2021, 04:04:49) \n[GCC 11.2.1 20210728 (Red Hat 11.2.1-1)]', encoding_fs_io=utf-8-utf-8)) is not available due [Errno 2] No such file or directory: 'pwsh'
SKIPPED [1] tests/unit/activation/conftest.py:258: PowerShell(
version=FileNotFoundError(2, 'No such file or directory'),
creator=CPython3Posix(dest=/tmp/pytest-of-tkloczko/pytest-31/activation-tester-env3/e-$ Γ¨Ρ€Ρ‚πŸš’β™žδΈ­η‰‡-j, clear=False, no_vcs_ignore=False, global=False),
interpreter=PythonInfo(spec=CPython3.8.12.final.0-64, exe=/usr/bin/python3, platform=linux, version='3.8.12 (default, Sep 17 2021, 04:04:49) \n[GCC 11.2.1 20210728 (Red Hat 11.2.1-1)]', encoding_fs_io=utf-8-utf-8)) is not available due [Errno 2] No such file or directory: 'pwsh'
SKIPPED [1] tests/integration/test_run_int.py: need --int option to run
SKIPPED [1] tests/integration/test_zipapp.py: need --int option to run
SKIPPED [2] tests/integration/test_zipapp.py:95: need --int option to run
FAILED tests/unit/seed/wheels/test_acquire.py::test_download_wheel_bad_output - AttributeError: 'NoneType' object has no attribute 'version'
FAILED tests/unit/seed/wheels/test_acquire.py::test_download_fails - RuntimeError: could not find the embedded pip
FAILED tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_latest - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_exact - AttributeError: 'NoneType' object has no attribute 'version'
FAILED tests/unit/seed/wheels/test_acquire_find_wheel.py::test_find_less_than - AttributeError: 'NoneType' object has no attribute 'version'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_manual_upgrade - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_pick_periodic_update - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_periodic_update_stops_at_current - AttributeError: 'NoneType' object has no attribute 'version_tuple'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_periodic_update_latest_per_patch - AttributeError: 'NoneType' object has no attribute 'version_tuple'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_trigger_update_no_debug - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_trigger_update_debug - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_do_update_first - AttributeError: 'NoneType' object has no attribute 'version_tuple'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_do_update_skip_already_done - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/wheels/test_periodic_update.py::test_download_stop_with_embed - AttributeError: 'NoneType' object has no attribute 'version_tuple'
FAILED tests/unit/seed/wheels/test_wheels_util.py::test_wheel_support_no_python_requires - AttributeError: 'NoneType' object has no attribute 'support_py'
FAILED tests/unit/seed/wheels/test_wheels_util.py::test_wheel_not_support - AttributeError: 'NoneType' object has no attribute 'support_py'
FAILED tests/unit/seed/wheels/test_wheels_util.py::test_wheel_repr - AttributeError: 'NoneType' object has no attribute 'path'
FAILED tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data[False] - TypeError: 'NoneType' object is not subscriptable
FAILED tests/unit/seed/embed/test_bootstrap_link_via_app_data.py::test_seed_link_via_app_data[True] - TypeError: 'NoneType' object is not subscriptable
FAILED tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke[pip] - TypeError: 'NoneType' object is not subscriptable
FAILED tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke[setuptools] - TypeError: 'NoneType' object is not subscriptable
FAILED tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke[wheel] - TypeError: 'NoneType' object is not subscriptable
FAILED tests/unit/seed/embed/test_pip_invoke.py::test_base_bootstrap_via_pip_invoke[] - TypeError: 'NoneType' object is not subscriptable
======================================================== 23 failed, 243 passed, 31 skipped, 864 warnings in 37.57s =========================================================
gaborbernat commented 2 years ago

We've had this discussion a few times in the past. What you're doing is neither typical or supported. Feel free to put in a PR for improvements but we don't intend to spend effort on our side or look into unsupported environments.