Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

20.10.0: pytest is failing #2247

Closed
kloczek opened this issue Dec 11, 2021 · 1 comment
Closed

20.10.0: pytest is failing #2247

kloczek opened this issue Dec 11, 2021 · 1 comment
Labels

Comments

@kloczek
Copy link

kloczek commented Dec 11, 2021

Issue
pytest is failing.

Environment
Provide at least:

  • OS: Linux x86/64

  • pip list of the host python where virtualenv is installed:

[tkloczko@ss-desktop SPECS]$ pip list
Package Version


alabaster 0.7.12
anyio 3.3.4
appdirs 1.4.4
argon2-cffi 21.1.0
argon2-cffi-bindings 21.2.0
asgiref 3.4.1
astor 0.8.1
astroid 2.9.0
async-generator 1.10
async-timeout 4.0.1
attrs 21.2.0
autocommand 2.2.1
autodocsumm 0.2.7
autoflake 1.4
Automat 20.2.0
Babel 2.9.1
backcall 0.2.0
backports.entry-points-selectable 1.1.1
bcrypt 3.2.0
beautifulsoup4 4.10.0
black 21.8b0
bleach 4.0.0
boltons 21.0.0
botocore 1.23.23
breathe 4.31.0
Brlapi 0.8.3
Brotli 1.0.9
build 0.7.0
CacheControl 0.12.6
cachy 0.3.0
cairocffi 1.3.0
certifi 2021.5.30
cffi 1.14.6
cfgv 3.3.1
changelog 0.5.6
chardet 4.0.0
charset-normalizer 2.0.9
cheroot 8.5.2
CherryPy 18.6.1
cleo 0.8.1
click 8.0.1
click-completion 0.5.2
click-default-group 1.2.2
click-log 0.3.2
clikit 0.6.2
colorama 0.4.4
colorspacious 1.1.2
commonmark 0.9.1
constantly 15.1.0
coverage 6.2
coveralls 3.3.0
crashtest 0.3.1
cryptography 36.0.0
cryptography-vectors 36.0.0
curio 1.5
cycler 0.11.0
Cython 0.29.25
dateutils 0.6.12
dbus-python 1.2.18
decorator 5.0.9
defusedxml 0.7.1
Deprecated 1.2.13
deprecation 2.0.7
distlib 0.3.4
distro 1.6.0
dj-database-url 0.5.0
dj-email-url 1.0.2
Django 3.2.9
django-cache-url 3.2.2
django-configurations 2.3.1
dnspython 2.1.0
docopt 0.6.2
docutils 0.17.1
dpcontracts 0.6.0
easy-server 0.8.0
easy-vault 0.7.0
editdistance-s 1.0.0
elementpath 2.4.0
entrypoints 0.3
eradicate 2.0.0
execnet 1.9.0
fakeredis 1.6.1
fields 5.0.0
filelock 3.4.0
flake8 4.0.1
flake8-bugbear 21.4.3
flaky 3.7.0
Flask 2.0.2
flit 3.5.1
flit_core 3.5.1
fonttools 4.28.3
FormEncode 2.0.1
freezegun 1.0.0
fs 2.4.14
funcsigs 1.0.2
future 0.18.2
genty 1.3.2
gitdb 4.0.7
GitPython 3.1.20
gpg 1.16.0-unknown
gprof2dot 2021.2.21
greenlet 1.1.2
guzzle-sphinx-theme 0.7.11
h11 0.12.0
html2text 2020.1.16
html5lib 1.1
htmlpyever 0.1.0.post3
httpcore 0.14.3
httpretty 1.1.4
httpx 0.21.1
hyperlink 21.0.0
hypothesis 6.31.3
identify 2.4.0
idna 3.3
imagesize 1.2.0
importlib-metadata 4.8.1
importlib-resources 5.4.0
incremental 21.3.0
iniconfig 1.1.1
ipykernel 6.6.0
ipyparallel 8.0.0
ipython 7.28.0
ipython_genutils 0.2.0
ipywidgets 7.6.4
iso8601 1.0.2
isort 5.10.0
itsdangerous 2.0.1
jaraco.classes 3.2.1
jaraco.collections 3.4.0
jaraco.envs 2.2.0
jaraco.functools 3.4.0
jaraco.packaging 8.2.1
jaraco.path 3.3.1
jaraco.text 3.6.0
jaraco.tidelift 1.4.0
jedi 0.18.1
jeepney 0.7.1
Jinja2 3.0.3
jmespath 0.10.0
joblib 1.0.1
jsonschema 4.2.1
jupyter-cache 0.4.3
jupyter-client 7.1.0
jupyter-core 4.9.1
jupyter-packaging 0.11.1
jupyter-server 1.13.0
jupyter-server-mathjax 0.2.3
jupyter-sphinx 0.3.2
jupyterlab-pygments 0.1.2
keyring 23.4.0
kiwisolver 1.3.2
lark 1.0.0
latexcodec 2.0.1
lazy-object-proxy 1.6.0
libcomps 0.1.18
libcst 0.3.20
linkify-it-py 1.0.2
logutils 0.3.5
louis 3.20.0
lxml 4.6.4
m2r 0.2.1
Mako 1.1.6.dev0
mallard-ducktype 1.0.2
Markdown 3.3.6
markdown-it-py 1.1.0
MarkupSafe 2.0.1
marshmallow 3.14.1
matplotlib 3.5.0
matplotlib-inline 0.1.2
mccabe 0.6.1
mdit-py-plugins 0.3.0
meson 0.60.2
metaextract 1.0.7
mistune 0.8.4
mock 4.0.3
more-itertools 8.12.0
mpi4py 3.1.1
msgpack 1.0.3
multidict 5.1.0
multipledispatch 0.6.0
mypy 0.910
mypy-extensions 0.4.3
nbclient 0.5.9
nbconvert 6.1.0
nbdime 3.1.1
nbformat 5.1.3
nbsphinx 0.8.7
nest-asyncio 1.5.1
nocasedict 1.0.2
nocaselist 1.0.4
nodeenv 1.6.0
notebook 6.4.2
numpy 1.21.4
numpydoc 1.1.0
olefile 0.46
ordered-set 4.0.2
outcome 1.1.0
packaging 21.3
pandas 1.3.4
pandocfilters 1.5.0
parameterized 0.8.1
parso 0.8.2
pastel 0.2.1
path 16.2.0
pathspec 0.9.0
pbr 5.6.0
pecan 1.4.0
pep517 0.12.0
pexpect 4.8.0
pickleshare 0.7.5
Pillow 8.4.0
pip 21.3.1
pkgconfig 1.5.2
pkginfo 1.8.2
platformdirs 2.4.0
pluggy 0.13.1
ply 3.11
poetry-core 1.0.7
portend 3.1.0
pre-commit 2.14.0
pretend 1.0.9
prettytable 0.7.2
process-tests 2.1.1
prometheus-client 0.12.0
prompt-toolkit 3.0.19
psutil 5.8.0
ptyprocess 0.7.0
py 1.11.0
py-cpuinfo 8.0.0
py2pack 0.8.7
pyasn1 0.4.8
pyasn1-modules 0.2.8
pybind11 2.7.1
pybtex 0.24.0
pybtex-docutils 1.0.1
pycairo 1.20.1
pycodestyle 2.8.0
pycparser 2.20
pycups 2.0.1
pydocstyle 6.1.1
pyenchant 3.2.2
pyfakefs 4.5.3
pyflakes 2.4.0
pyftpdlib 1.5.6
Pygments 2.10.0.dev20210815
PyGObject 3.42.0
PyJWT 2.3.0
pylev 1.4.0
pylint 2.12.2
pyOpenSSL 21.0.0
pyparsing 3.0.6
pypi-search 1.2.1
pyrsistent 0.18.0
pyScss 1.3.7
PySocks 1.7.1
pytest 6.2.5
pytest-asyncio 0.16.0
pytest-benchmark 3.4.1
pytest-console-scripts 1.2.0
pytest-cov 2.12.1
pytest-datadir 1.3.1
pytest-django 4.5.2
pytest-easy-server 0.8.0
pytest-fixture-config 1.7.0
pytest-flake8 1.0.7
pytest-forked 1.4.0
pytest-freezegun 0.4.2
pytest-mock 3.6.1
pytest-profiling 1.7.0
pytest-randomly 3.8.0
pytest-regressions 2.2.0
pytest-rerunfailures 9.1.1
pytest-runner 5.3.2
pytest-shutil 1.7.0
pytest-subtests 0.5.0
pytest-timeout 2.0.1
pytest-tornado 0.8.1
pytest-tornasync 0.6.0.post2
pytest-trio 0.7.0
pytest-virtualenv 1.7.0
pytest-xdist 2.3.0
python-dateutil 2.8.2
python-dbusmock 0.24.1
python-dotenv 0.19.2
python-socks 2.0.0
pytz 2021.1
pyxdg 0.27
PyYAML 5.4.1
pyzmq 22.2.1
railroad 0.5.0
re-assert 1.1.0
recommonmark 0.7.1
redis 3.5.3
regex 2021.11.10
repoze.lru 0.7
repoze.sphinx.autointerface 0.8
requests 2.26.0
requests_download 0.1.2
requests-mock 1.9.3
requests-toolbelt 0.9.1
requests-unixsocket 0.2.0
responses 0.16.0
rfc3986 1.5.0
Routes 2.5.1.dev20211206
rpm 4.17.0
rst 0.1
rst.linker 2.2.0
s3transfer 0.5.0
scour 0.38.2
SecretStorage 3.3.1
selenium 4.1.0
selinux 3.3
semantic-version 2.8.5
Send2Trash 1.8.0
setproctitle 1.2.2
setuptools 59.1.0.post20211115
setuptools-rust 1.1.2
setuptools-scm 6.3.2
setuptools-scm-git-archive 1.1
shellingham 1.4.0
simplejson 3.17.6
six 1.16.0
smartypants 2.0.1
smmap 4.0.0
sniffio 1.2.0
snowballstemmer 2.1.0
sortedcontainers 2.4.0
soupsieve 2.3.1
Sphinx 4.3.1
sphinx-argparse 0.2.5
sphinx-autodoc-typehints 1.12.0
sphinx-celery 2.0.0
sphinx-copybutton 0.4.0
sphinx-gallery 0.10.1
sphinx-hoverxref 0.7b1
sphinx_inline_tabs 2021.4.11b9
sphinx-lv2-theme 1.0.0
sphinx-panels 0.6.0
sphinx-paramlinks 0.5.1
sphinx-py3doc-enhanced-theme 2.4.0
sphinx-rst-builder 0.0.3
sphinx-rtd-theme 1.0.0
sphinx-selective-exclude 1.0.3
sphinx-tabs 3.2.0
sphinx-togglebutton 0.2.3
sphinxcontrib-applehelp 1.0.2.dev20210802
sphinxcontrib-bibtex 2.4.1
sphinxcontrib-devhelp 1.0.2.dev20210801
sphinxcontrib_github_alt 1.2
sphinxcontrib-htmlhelp 2.0.0
sphinxcontrib-httpdomain 1.7.0
sphinxcontrib-jsmath 1.0.1.dev20210801
sphinxcontrib-mermaid 0.7.1
sphinxcontrib-openapi 0.7.0
sphinxcontrib-qthelp 1.0.3.dev20210824
sphinxcontrib-restbuilder 0.3
sphinxcontrib-serializinghtml 1.1.5
sphinxcontrib-spelling 7.2.1
sphinxcontrib-svg2pdfconverter 1.2.0
sphinxcontrib-trio 1.1.2
sphinxcontrib-websupport 1.2.4
sphinxemoji 0.1.9
sphinxext-opengraph 0.4.2
SQLAlchemy 1.4.27.dev0
sqlparse 0.4.2.dev0
stone 3.2.1
strategies 0.2.3
sybil 2.0.1
tabulate 0.8.9
tempora 4.1.2
termcolor 1.1.0
terminado 0.12.1
testfixtures 6.18.3
testpath 0.5.0
text-unidecode 1.3
toml 0.10.2
tomli 1.2.2
tomli_w 0.4.0
tomlkit 0.7.2
toolz 0.11.2
tornado 6.1
towncrier 21.3.0
tox 3.24.4
tox-current-env 0.0.6
tpm2-pkcs11-tools 1.33.7
tqdm 4.62.3
traitlets 5.1.1
trio 0.19.0
trio-websocket 0.9.2
trustme 0.8.0
Twisted 21.7.0
typed-ast 1.5.1
typing_extensions 4.0.1
typing-inspect 0.7.1
typogrify 2.0.7
uc-micro-py 1.0.1
ukkonen 1.0.1
unittest-mixins 1.6
urllib3 1.26.7
uTidylib 0.8
uvicorn 0.16.0
uvloop 0.15.3
validators 0.18.1
virtualenv 20.6.0
waitress 1.4.4
watchgod 0.7
wcwidth 0.2.5
webcolors 1.11.1
webencodings 0.5.1
WebOb 1.8.7
websocket-client 1.2.3
websockets 10.0
WebTest 3.0.0
Werkzeug 2.0.2
wheel 0.37.0
widgetsnbextension 3.5.1
wrapt 1.13.2
wsproto 1.0.0
xmltodict 0.12.0
yagot 0.5.0
yamlloader 1.0.0
yarl 1.7.2
youtube-dl 2021.6.6
zc.lockfile 2.0
zipp 3.6.0
zope.component 5.0.1
zope.event 4.5.0
zope.hookable 5.1.0
zope.interface 5.4.0
zope.testing 4.9
zzzeeksphinx 1.2.3


**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.
- "setup.py build"
- "setup.py install --root </install/prefix>"
- "pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Here is the pytest output
```console
+ 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 =========================================================
@kloczek kloczek added the bug label Dec 11, 2021
@gaborbernat
Copy link
Contributor

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.

@pypa pypa locked as resolved and limited conversation to collaborators Dec 11, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants