07:46:51 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/125773 07:46:51 Running as SYSTEM 07:46:51 [EnvInject] - Loading node environment variables. 07:46:51 Building remotely on prd-ubuntu2204-docker-4c-16g-2837 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-vanadium 07:46:51 [ssh-agent] Looking for ssh-agent implementation... 07:46:51 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 07:46:51 $ ssh-agent 07:46:51 SSH_AUTH_SOCK=/tmp/ssh-XXXXXXm6zbeF/agent.1561 07:46:51 SSH_AGENT_PID=1563 07:46:51 [ssh-agent] Started. 07:46:51 Running ssh-add (command line suppressed) 07:46:51 Identity added: /w/workspace/transportpce-tox-verify-vanadium@tmp/private_key_3897481219539141102.key (/w/workspace/transportpce-tox-verify-vanadium@tmp/private_key_3897481219539141102.key) 07:46:51 [ssh-agent] Using credentials jenkins (jenkins-ssh) 07:46:51 The recommended git tool is: NONE 07:46:54 using credential jenkins-ssh 07:46:54 Wiping out workspace first. 07:46:54 Cloning the remote Git repository 07:46:54 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 07:46:54 > git init /w/workspace/transportpce-tox-verify-vanadium # timeout=10 07:46:54 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 07:46:54 > git --version # timeout=10 07:46:54 > git --version # 'git version 2.34.1' 07:46:54 using GIT_SSH to set credentials jenkins-ssh 07:46:54 Verifying host key using known hosts file, will automatically accept unseen keys 07:46:54 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 07:46:58 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 07:46:58 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 07:46:59 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 07:46:59 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 07:46:59 using GIT_SSH to set credentials jenkins-ssh 07:46:59 Verifying host key using known hosts file, will automatically accept unseen keys 07:46:59 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/73/125773/3 # timeout=10 07:47:00 > git rev-parse 77b18ef03aa95fadbcaafaa412ddd05efd6882af^{commit} # timeout=10 07:47:00 Checking out Revision 77b18ef03aa95fadbcaafaa412ddd05efd6882af (refs/changes/73/125773/3) 07:47:00 > git config core.sparsecheckout # timeout=10 07:47:00 > git checkout -f 77b18ef03aa95fadbcaafaa412ddd05efd6882af # timeout=10 07:47:03 Commit message: "Bump upstreams dependencies to V-SR2" 07:47:03 > git rev-parse FETCH_HEAD^{commit} # timeout=10 07:47:03 > git rev-list --no-walk 190bb697b98b0f812bcf61eea150a3e6ea55e4ae # timeout=10 07:47:03 > git remote # timeout=10 07:47:03 > git submodule init # timeout=10 07:47:03 > git submodule sync # timeout=10 07:47:03 > git config --get remote.origin.url # timeout=10 07:47:03 > git submodule init # timeout=10 07:47:03 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 07:47:03 ERROR: No submodules found. 07:47:04 provisioning config files... 07:47:04 copy managed file [npmrc] to file:/home/jenkins/.npmrc 07:47:04 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 07:47:04 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins9978196981098409769.sh 07:47:04 ---> python-tools-install.sh 07:47:04 Setup pyenv: 07:47:04 * system (set by /opt/pyenv/version) 07:47:04 * 3.8.20 (set by /opt/pyenv/version) 07:47:04 * 3.9.20 (set by /opt/pyenv/version) 07:47:04 3.10.15 07:47:04 3.11.10 07:47:09 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-4Sjw 07:47:09 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 07:47:09 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 07:47:13 lf-activate-venv(): INFO: Installing additional packages: lftools 07:47:40 lf-activate-venv(): INFO: Adding /tmp/venv-4Sjw/bin to PATH 07:47:40 Generating Requirements File 07:48:09 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 07:48:09 httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 07:48:09 Python 3.11.10 07:48:09 pip 26.2.1 from /tmp/venv-4Sjw/lib/python3.11/site-packages/pip (python 3.11) 07:48:09 aiohappyeyeballs==2.7.1 07:48:09 aiohttp==3.14.3 07:48:09 aiosignal==1.4.0 07:48:09 appdirs==1.4.4 07:48:09 argcomplete==3.7.2 07:48:09 aspy.yaml==1.3.0 07:48:09 attrs==26.1.0 07:48:09 autopage==0.6.0 07:48:09 beautifulsoup4==4.15.0 07:48:09 boto3==1.43.89 07:48:09 botocore==1.43.89 07:48:09 bs4==0.0.2 07:48:09 certifi==2026.7.22 07:48:09 cffi==2.1.1 07:48:09 cfgv==3.5.0 07:48:09 chardet==7.6.0 07:48:09 charset-normalizer==3.5.1 07:48:09 click==8.5.0 07:48:09 cliff==4.16.0 07:48:09 cmd2==4.2.3 07:48:09 cryptography==3.3.2 07:48:09 debtcollector==3.1.0 07:48:09 decorator==5.3.1 07:48:09 defusedxml==0.7.1 07:48:09 Deprecated==1.3.1 07:48:09 distlib==0.4.3 07:48:09 dnspython==2.8.0 07:48:09 docker==7.2.0 07:48:09 dogpile.cache==1.5.0 07:48:09 durationpy==0.11 07:48:09 email-validator==2.3.0 07:48:09 filelock==3.32.5 07:48:09 frozenlist==1.8.0 07:48:09 future==1.0.0 07:48:09 gitdb==4.0.12 07:48:09 GitPython==3.1.62 07:48:09 httplib2==0.30.2 07:48:09 identify==2.6.19 07:48:09 idna==3.19 07:48:09 importlib-resources==1.5.0 07:48:09 iso8601==2.1.0 07:48:09 Jinja2==3.1.6 07:48:09 jmespath==1.1.0 07:48:09 jsonpatch==1.33 07:48:09 jsonpointer==3.1.1 07:48:09 jsonschema==4.26.0 07:48:09 jsonschema-specifications==2025.9.1 07:48:09 keystoneauth1==5.17.0 07:48:09 kubernetes==36.0.3 07:48:09 lftools==0.37.23 07:48:09 lxml==6.1.3 07:48:09 markdown-it-py==4.2.0 07:48:09 MarkupSafe==3.0.3 07:48:09 mdurl==0.1.2 07:48:09 msgpack==1.2.2 07:48:09 multi_key_dict==2.0.3 07:48:09 multidict==6.7.1 07:48:09 munch==4.0.0 07:48:09 netaddr==1.3.0 07:48:09 niet==1.4.2 07:48:09 nodeenv==1.10.0 07:48:09 oauth2client==4.1.3 07:48:09 oauthlib==3.3.1 07:48:09 openstacksdk==4.20.0 07:48:09 os-service-types==1.9.0 07:48:09 osc-lib==4.7.0 07:48:09 oslo.config==10.7.0 07:48:09 oslo.context==6.5.0 07:48:09 oslo.i18n==6.9.0 07:48:09 oslo.log==8.3.1 07:48:09 oslo.serialization==5.11.0 07:48:09 oslo.utils==10.2.0 07:48:09 packaging==26.3 07:48:09 pbr==7.0.3 07:48:09 platformdirs==4.11.7 07:48:09 prettytable==3.18.0 07:48:09 prompt_toolkit==3.0.53 07:48:09 propcache==0.5.2 07:48:09 psutil==7.2.2 07:48:09 pyasn1==0.6.4 07:48:09 pyasn1_modules==0.4.2 07:48:09 pycparser==3.0 07:48:09 pygerrit2==2.0.15 07:48:09 PyGithub==2.10.0 07:48:09 Pygments==2.21.0 07:48:09 PyJWT==2.13.0 07:48:09 PyNaCl==1.6.2 07:48:09 pyparsing==2.4.7 07:48:09 pyperclip==1.11.0 07:48:09 pyrsistent==0.20.0 07:48:09 python-dateutil==2.9.0.post0 07:48:09 python-discovery==1.6.0 07:48:09 python-heatclient==5.3.0 07:48:09 python-jenkins==1.8.3 07:48:09 python-keystoneclient==6.0.0 07:48:09 python-magnumclient==5.0.0 07:48:09 python-manilaclient==6.3.0 07:48:09 python-openstackclient==10.3.0 07:48:09 python-swiftclient==4.11.0 07:48:09 PyYAML==6.0.3 07:48:09 referencing==0.37.0 07:48:09 requests==2.34.2 07:48:09 requests-oauthlib==2.0.0 07:48:09 rfc3986==2.0.0 07:48:09 rich==15.0.0 07:48:09 rich-argparse==1.8.0 07:48:09 rpds-py==2026.6.3 07:48:09 rsa==4.9.1 07:48:09 ruamel.yaml==0.19.1 07:48:09 ruamel.yaml.clib==0.2.15 07:48:09 s3transfer==0.19.2 07:48:09 simplejson==4.1.2 07:48:09 six==1.17.0 07:48:09 smmap==5.0.3 07:48:09 soupsieve==2.9.2 07:48:09 stevedore==5.9.1 07:48:09 tabulate==0.10.0 07:48:09 toml==0.10.2 07:48:09 tomlkit==0.15.1 07:48:09 tqdm==4.70.0 07:48:09 typing_extensions==4.16.0 07:48:09 urllib3==1.26.20 07:48:09 virtualenv==21.7.8 07:48:09 wcwidth==0.8.3 07:48:09 websocket-client==1.9.2 07:48:09 wrapt==2.4.0 07:48:09 xdg==6.0.0 07:48:09 xmltodict==1.0.4 07:48:09 yarl==1.24.5 07:48:09 yq==4.1.2 07:48:10 [transportpce-tox-verify-vanadium] $ /bin/sh /tmp/jenkins17080498980162120539.sh 07:48:10 ---> uv-install.sh 07:48:10 Installing uv/uvx (latest) using shell installer 07:48:10 2026-09-07 07:48:10 URL:https://releases.astral.sh/installers/uv/latest/uv-installer.sh [71308/71308] -> "/tmp/uv-install-HklmX7.sh" [1] 07:48:10 downloading uv 0.12.10 x86_64-unknown-linux-gnu 07:48:11 installing to /home/jenkins/.local/bin 07:48:11 uv 07:48:11 uvx 07:48:11 everything's installed! 07:48:11 07:48:11 To add $HOME/.local/bin to your PATH, either restart your shell or run: 07:48:11 07:48:11 source $HOME/.local/bin/env (sh, bash, zsh) 07:48:11 source $HOME/.local/bin/env.fish (fish) 07:48:11 Adding install location to PATH 07:48:11 ---> Validating uv/uvx install 07:48:11 uvx 0.12.10 (x86_64-unknown-linux-gnu) 07:48:11 [EnvInject] - Injecting environment variables from a build step. 07:48:11 [EnvInject] - Injecting as environment variables the properties content 07:48:11 PYTHON=python3 07:48:11 07:48:11 [EnvInject] - Variables injected successfully. 07:48:11 [transportpce-tox-verify-vanadium] $ /bin/bash -l /tmp/jenkins18019530473920679393.sh 07:48:11 ---> tox-install.sh 07:48:11 + source /home/jenkins/lf-env.sh 07:48:11 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 07:48:11 ++ mktemp -d /tmp/venv-XXXX 07:48:11 + lf_venv=/tmp/venv-D9zI 07:48:11 + local venv_file=/tmp/.os_lf_venv 07:48:11 + local python=python3 07:48:11 + local options 07:48:11 + local set_path=true 07:48:11 + local install_args= 07:48:11 ++ getopt -o np:v: -l no-path,system-site-packages,python:,venv-file: -n lf-activate-venv -- --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 07:48:11 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:48:11 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:48:11 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 07:48:11 + true 07:48:11 + case $1 in 07:48:11 + venv_file=/tmp/.toxenv 07:48:11 + shift 2 07:48:11 + true 07:48:11 + case $1 in 07:48:11 + shift 07:48:11 + break 07:48:11 + case $python in 07:48:11 + local pkg_list= 07:48:11 + [[ -d /opt/pyenv ]] 07:48:11 + echo 'Setup pyenv:' 07:48:11 Setup pyenv: 07:48:11 + export PYENV_ROOT=/opt/pyenv 07:48:11 + PYENV_ROOT=/opt/pyenv 07:48:11 + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:11 + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:11 + pyenv versions 07:48:11 system 07:48:11 3.8.20 07:48:11 3.9.20 07:48:11 3.10.15 07:48:11 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-vanadium/.python-version) 07:48:11 + command -v pyenv 07:48:11 ++ pyenv init - --no-rehash 07:48:11 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 07:48:11 for i in ${!paths[@]}; do 07:48:11 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 07:48:11 fi; done; 07:48:11 echo "${paths[*]}"'\'')" 07:48:11 export PATH="/opt/pyenv/shims:${PATH}" 07:48:11 export PYENV_SHELL=bash 07:48:11 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 07:48:11 pyenv() { 07:48:11 local command 07:48:11 command="${1:-}" 07:48:11 if [ "$#" -gt 0 ]; then 07:48:11 shift 07:48:11 fi 07:48:11 07:48:11 case "$command" in 07:48:11 rehash|shell) 07:48:11 eval "$(pyenv "sh-$command" "$@")" 07:48:11 ;; 07:48:11 *) 07:48:11 command pyenv "$command" "$@" 07:48:11 ;; 07:48:11 esac 07:48:11 }' 07:48:11 +++ bash --norc -ec 'IFS=:; paths=($PATH); 07:48:11 for i in ${!paths[@]}; do 07:48:11 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 07:48:11 fi; done; 07:48:11 echo "${paths[*]}"' 07:48:11 ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:11 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:11 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:11 ++ export PYENV_SHELL=bash 07:48:11 ++ PYENV_SHELL=bash 07:48:11 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 07:48:11 +++ complete -F _pyenv pyenv 07:48:11 ++ lf-pyver python3 07:48:11 ++ local py_version_xy=python3 07:48:11 ++ local py_version_xyz= 07:48:11 ++ pyenv versions 07:48:11 ++ local command 07:48:11 ++ sed 's/^[ *]* //' 07:48:11 ++ command=versions 07:48:11 ++ '[' 1 -gt 0 ']' 07:48:11 ++ shift 07:48:11 ++ case "$command" in 07:48:11 ++ command pyenv versions 07:48:11 ++ awk '{ print $1 }' 07:48:11 ++ grep -E '^[0-9.]*[0-9]$' 07:48:11 ++ [[ ! -s /tmp/.pyenv_versions ]] 07:48:11 +++ grep '^3' /tmp/.pyenv_versions 07:48:11 +++ sort -V 07:48:11 +++ tail -n 1 07:48:11 ++ py_version_xyz=3.11.10 07:48:11 ++ [[ -z 3.11.10 ]] 07:48:11 ++ echo 3.11.10 07:48:11 ++ return 0 07:48:11 + pyenv local 3.11.10 07:48:11 + local command 07:48:11 + command=local 07:48:11 + '[' 2 -gt 0 ']' 07:48:11 + shift 07:48:11 + case "$command" in 07:48:11 + command pyenv local 3.11.10 07:48:11 + for arg in "$@" 07:48:11 + case $arg in 07:48:11 + pkg_list+='tox ' 07:48:11 + for arg in "$@" 07:48:11 + case $arg in 07:48:11 + pkg_list+='virtualenv ' 07:48:11 + for arg in "$@" 07:48:11 + case $arg in 07:48:11 + pkg_list+='urllib3~=1.26.15 ' 07:48:11 + [[ -f /tmp/.toxenv ]] 07:48:11 + [[ ! -f /tmp/.toxenv ]] 07:48:11 + [[ -n '' ]] 07:48:11 + python3 -m venv /tmp/venv-D9zI 07:48:15 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-D9zI' 07:48:15 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-D9zI 07:48:15 + echo /tmp/venv-D9zI 07:48:15 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 07:48:15 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 07:48:15 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 07:48:15 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 07:48:15 + local 'pip_opts=--upgrade --quiet' 07:48:15 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 07:48:15 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 07:48:15 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 07:48:15 + [[ -n '' ]] 07:48:15 + [[ -n '' ]] 07:48:15 + lf-venv-pip-install /tmp/venv-D9zI/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 07:48:15 + local venv_python=/tmp/venv-D9zI/bin/python3 07:48:15 + shift 07:48:15 + local upstream=https://pypi.org/simple 07:48:15 + /tmp/venv-D9zI/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 07:48:20 + return 0 07:48:20 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 07:48:20 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 07:48:20 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 07:48:20 + lf-venv-pip-install /tmp/venv-D9zI/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 07:48:20 + local venv_python=/tmp/venv-D9zI/bin/python3 07:48:20 + shift 07:48:20 + local upstream=https://pypi.org/simple 07:48:20 + /tmp/venv-D9zI/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 07:48:22 + return 0 07:48:22 + type python3 07:48:22 + true 07:48:22 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-D9zI/bin to PATH' 07:48:22 lf-activate-venv(): INFO: Adding /tmp/venv-D9zI/bin to PATH 07:48:22 + PATH=/tmp/venv-D9zI/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:22 + return 0 07:48:22 + python3 --version 07:48:22 Python 3.11.10 07:48:22 + python3 -m pip --version 07:48:23 pip 26.2.1 from /tmp/venv-D9zI/lib/python3.11/site-packages/pip (python 3.11) 07:48:23 + python3 -m pip freeze 07:48:23 cachetools==7.1.8 07:48:23 colorama==0.4.6 07:48:23 distlib==0.4.3 07:48:23 filelock==3.32.5 07:48:23 packaging==26.3 07:48:23 platformdirs==4.11.7 07:48:23 pluggy==1.6.0 07:48:23 pyproject-api==1.11.0 07:48:23 python-discovery==1.6.0 07:48:23 tomli_w==1.2.0 07:48:23 tox==4.61.2 07:48:23 typing_extensions==4.16.0 07:48:23 urllib3==1.26.20 07:48:23 virtualenv==21.7.8 07:48:23 [transportpce-tox-verify-vanadium] $ /bin/sh -xe /tmp/jenkins1053302730360684891.sh 07:48:23 [EnvInject] - Injecting environment variables from a build step. 07:48:23 [EnvInject] - Injecting as environment variables the properties content 07:48:23 PARALLEL=True 07:48:23 07:48:23 [EnvInject] - Variables injected successfully. 07:48:23 [transportpce-tox-verify-vanadium] $ /bin/bash -l /tmp/jenkins16112309671828457279.sh 07:48:23 ---> tox-run.sh 07:48:23 + PATH=/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:23 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-vanadium/archives/tox 07:48:23 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-vanadium/archives/docs 07:48:23 + mkdir -p /w/workspace/transportpce-tox-verify-vanadium/archives/tox 07:48:23 + cd /w/workspace/transportpce-tox-verify-vanadium/. 07:48:23 + source /home/jenkins/lf-env.sh 07:48:23 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 07:48:23 ++ mktemp -d /tmp/venv-XXXX 07:48:23 + lf_venv=/tmp/venv-iUCY 07:48:23 + local venv_file=/tmp/.os_lf_venv 07:48:23 + local python=python3 07:48:23 + local options 07:48:23 + local set_path=true 07:48:23 + local install_args= 07:48:23 ++ getopt -o np:v: -l no-path,system-site-packages,python:,venv-file: -n lf-activate-venv -- --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 07:48:23 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:48:23 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 07:48:23 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 07:48:23 + true 07:48:23 + case $1 in 07:48:23 + venv_file=/tmp/.toxenv 07:48:23 + shift 2 07:48:23 + true 07:48:23 + case $1 in 07:48:23 + shift 07:48:23 + break 07:48:23 + case $python in 07:48:23 + local pkg_list= 07:48:23 + [[ -d /opt/pyenv ]] 07:48:23 + echo 'Setup pyenv:' 07:48:23 Setup pyenv: 07:48:23 + export PYENV_ROOT=/opt/pyenv 07:48:23 + PYENV_ROOT=/opt/pyenv 07:48:23 + export PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:23 + PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:23 + pyenv versions 07:48:23 system 07:48:23 3.8.20 07:48:23 3.9.20 07:48:23 3.10.15 07:48:23 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-vanadium/.python-version) 07:48:23 + command -v pyenv 07:48:23 ++ pyenv init - --no-rehash 07:48:23 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 07:48:23 for i in ${!paths[@]}; do 07:48:23 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 07:48:23 fi; done; 07:48:23 echo "${paths[*]}"'\'')" 07:48:23 export PATH="/opt/pyenv/shims:${PATH}" 07:48:23 export PYENV_SHELL=bash 07:48:23 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 07:48:23 pyenv() { 07:48:23 local command 07:48:23 command="${1:-}" 07:48:23 if [ "$#" -gt 0 ]; then 07:48:23 shift 07:48:23 fi 07:48:23 07:48:23 case "$command" in 07:48:23 rehash|shell) 07:48:23 eval "$(pyenv "sh-$command" "$@")" 07:48:23 ;; 07:48:23 *) 07:48:23 command pyenv "$command" "$@" 07:48:23 ;; 07:48:23 esac 07:48:23 }' 07:48:23 +++ bash --norc -ec 'IFS=:; paths=($PATH); 07:48:23 for i in ${!paths[@]}; do 07:48:23 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 07:48:23 fi; done; 07:48:23 echo "${paths[*]}"' 07:48:23 ++ PATH=/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:23 ++ export PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:23 ++ PATH=/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:23 ++ export PYENV_SHELL=bash 07:48:23 ++ PYENV_SHELL=bash 07:48:23 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 07:48:23 +++ complete -F _pyenv pyenv 07:48:23 ++ lf-pyver python3 07:48:23 ++ local py_version_xy=python3 07:48:23 ++ local py_version_xyz= 07:48:23 ++ pyenv versions 07:48:23 ++ local command 07:48:23 ++ command=versions 07:48:23 ++ '[' 1 -gt 0 ']' 07:48:23 ++ shift 07:48:23 ++ case "$command" in 07:48:23 ++ command pyenv versions 07:48:23 ++ awk '{ print $1 }' 07:48:23 ++ grep -E '^[0-9.]*[0-9]$' 07:48:23 ++ sed 's/^[ *]* //' 07:48:23 ++ [[ ! -s /tmp/.pyenv_versions ]] 07:48:23 +++ grep '^3' /tmp/.pyenv_versions 07:48:23 +++ sort -V 07:48:23 +++ tail -n 1 07:48:23 ++ py_version_xyz=3.11.10 07:48:23 ++ [[ -z 3.11.10 ]] 07:48:23 ++ echo 3.11.10 07:48:23 ++ return 0 07:48:23 + pyenv local 3.11.10 07:48:23 + local command 07:48:23 + command=local 07:48:23 + '[' 2 -gt 0 ']' 07:48:23 + shift 07:48:23 + case "$command" in 07:48:23 + command pyenv local 3.11.10 07:48:23 + for arg in "$@" 07:48:23 + case $arg in 07:48:23 + pkg_list+='tox ' 07:48:23 + for arg in "$@" 07:48:23 + case $arg in 07:48:23 + pkg_list+='virtualenv ' 07:48:23 + for arg in "$@" 07:48:23 + case $arg in 07:48:23 + pkg_list+='urllib3~=1.26.15 ' 07:48:23 + [[ -f /tmp/.toxenv ]] 07:48:23 ++ cat /tmp/.toxenv 07:48:23 + lf_venv=/tmp/venv-D9zI 07:48:23 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-D9zI from' file:/tmp/.toxenv 07:48:23 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-D9zI from file:/tmp/.toxenv 07:48:23 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 07:48:23 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 07:48:23 + local 'pip_opts=--upgrade --quiet' 07:48:23 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 07:48:23 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 07:48:23 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 07:48:23 + [[ -n '' ]] 07:48:23 + [[ -n '' ]] 07:48:23 + lf-venv-pip-install /tmp/venv-D9zI/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 07:48:23 + local venv_python=/tmp/venv-D9zI/bin/python3 07:48:23 + shift 07:48:23 + local upstream=https://pypi.org/simple 07:48:23 + /tmp/venv-D9zI/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 07:48:24 + return 0 07:48:24 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 07:48:24 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 07:48:24 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 07:48:24 + lf-venv-pip-install /tmp/venv-D9zI/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 07:48:24 + local venv_python=/tmp/venv-D9zI/bin/python3 07:48:24 + shift 07:48:24 + local upstream=https://pypi.org/simple 07:48:24 + /tmp/venv-D9zI/bin/python3 -m pip install --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org --upgrade-strategy eager tox virtualenv urllib3~=1.26.15 07:48:25 + return 0 07:48:25 + type python3 07:48:25 + true 07:48:25 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-D9zI/bin to PATH' 07:48:25 lf-activate-venv(): INFO: Adding /tmp/venv-D9zI/bin to PATH 07:48:25 + PATH=/tmp/venv-D9zI/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:25 + return 0 07:48:25 + [[ -d /opt/pyenv ]] 07:48:25 + echo '---> Setting up pyenv' 07:48:25 ---> Setting up pyenv 07:48:25 + export PYENV_ROOT=/opt/pyenv 07:48:25 + PYENV_ROOT=/opt/pyenv 07:48:25 + export PATH=/opt/pyenv/bin:/tmp/venv-D9zI/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:25 + PATH=/opt/pyenv/bin:/tmp/venv-D9zI/bin:/opt/pyenv/shims:/opt/pyenv/bin:/home/jenkins/.local/bin:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin 07:48:25 ++ pwd 07:48:25 + PYTHONPATH=/w/workspace/transportpce-tox-verify-vanadium 07:48:25 + export PYTHONPATH 07:48:25 + export TOX_TESTENV_PASSENV=PYTHONPATH 07:48:25 + TOX_TESTENV_PASSENV=PYTHONPATH 07:48:25 + tox --version 07:48:25 4.61.2 from /tmp/venv-D9zI/lib/python3.11/site-packages/tox/__init__.py 07:48:25 + PARALLEL=True 07:48:25 + TOX_OPTIONS_LIST= 07:48:25 + [[ -n '' ]] 07:48:25 + case ${PARALLEL,,} in 07:48:25 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 07:48:25 + tox --parallel auto --parallel-live 07:48:25 + tee -a /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tox.log 07:48:27 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 07:48:27 docs: install_deps> python -I -m pip install -r docs/requirements.txt 07:48:27 buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:48:27 checkbashisms: freeze> python -m pip freeze --all 07:48:28 checkbashisms: pip==26.2.1,setuptools==84.0.0 07:48:28 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./fixCIcentOS8reposMirrors.sh 07:48:28 checkbashisms: commands[1] /w/workspace/transportpce-tox-verify-vanadium/tests> sh -c 'command checkbashisms>/dev/null || sudo yum install -y devscripts-checkbashisms || sudo yum install -y devscripts-minimal || sudo yum install -y devscripts || sudo yum install -y https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/x86_64/os/Packages/d/devscripts-checkbashisms-2.19.6-2.fc31.x86_64.rpm || (echo "checkbashisms command not found - please install it (e.g. sudo apt-get install devscripts | yum install devscripts-minimal )" >&2 && exit 1)' 07:48:28 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-vanadium/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 07:48:29 checkbashisms: OK ✔ in 3.09 seconds 07:48:29 pre-commit: install_deps> python -I -m pip install pre-commit 07:48:31 pre-commit: freeze> python -m pip freeze --all 07:48:32 pre-commit: cfgv==3.5.0,distlib==0.4.3,filelock==3.32.5,identify==2.6.19,nodeenv==1.10.0,pip==26.2.1,platformdirs==4.11.7,pre_commit==4.6.2,python-discovery==1.6.0,PyYAML==6.0.3,setuptools==84.0.0,virtualenv==21.7.8 07:48:32 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./fixCIcentOS8reposMirrors.sh 07:48:32 pre-commit: commands[1] /w/workspace/transportpce-tox-verify-vanadium/tests> sh -c 'which cpan || sudo yum install -y perl-CPAN || (echo "cpan command not found - please install it (e.g. sudo apt-get install perl-modules | yum install perl-CPAN )" >&2 && exit 1)' 07:48:32 /usr/bin/cpan 07:48:32 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-vanadium/tests> pre-commit run --all-files --show-diff-on-failure 07:48:32 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 07:48:32 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 07:48:32 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 07:48:32 [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. 07:48:32 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 07:48:33 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 07:48:33 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 07:48:34 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 07:48:34 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 07:48:35 buildcontroller: freeze> python -m pip freeze --all 07:48:35 buildcontroller: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:48:35 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_controller.sh 07:48:35 + update-java-alternatives -l 07:48:35 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 07:48:35 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 07:48:35 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 07:48:35 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 07:48:35 update-alternatives: error: no alternatives for jaotc 07:48:35 update-alternatives: error: no alternatives for rmic 07:48:35 + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 07:48:35 + java -version 07:48:35 + JAVA_VER=21 07:48:35 + echo 21 07:48:35 21 07:48:35 + javac -version 07:48:35 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 07:48:36 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 07:48:36 [INFO] Once installed this environment will be reused. 07:48:36 [INFO] This may take a few minutes... 07:48:36 + JAVAC_VER=21 07:48:36 + echo 21 07:48:36 21 07:48:36 ok, java is 21 or newer 07:48:36 + [ 21 -ge 21 ] 07:48:36 + [ 21 -ge 21 ] 07:48:36 + echo ok, java is 21 or newer 07:48:36 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.tar.gz -P /tmp 07:48:36 2026-09-07 07:48:36 URL:https://dlcdn.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.tar.gz [9278065/9278065] -> "/tmp/apache-maven-3.9.16-bin.tar.gz" [1] 07:48:36 + sudo mkdir -p /opt 07:48:36 + sudo tar xf /tmp/apache-maven-3.9.16-bin.tar.gz -C /opt 07:48:36 + sudo ln -s /opt/apache-maven-3.9.16 /opt/maven 07:48:36 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 07:48:36 + mvn --version 07:48:37 Apache Maven 3.9.16 (2bdd9fddda4b155ebf8000e807eb73fd829a51d5) 07:48:37 Maven home: /opt/maven 07:48:37 Java version: 21.0.12, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 07:48:37 Default locale: en, platform encoding: UTF-8 07:48:37 OS name: "linux", version: "5.15.0-190-generic", arch: "amd64", family: "unix" 07:48:37 NOTE: Picked up JDK_JAVA_OPTIONS: 07:48:37 --add-opens=java.base/java.io=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.lang=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.net=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.nio=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.util=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:48:37 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:48:37 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:48:37 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:48:37 -Xlog:disable 07:48:40 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 07:48:40 [INFO] Once installed this environment will be reused. 07:48:40 [INFO] This may take a few minutes... 07:48:42 docs: freeze> python -m pip freeze --all 07:48:43 docs: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.7.22,charset-normalizer==3.5.1,deepmerge==3.0.1,docutils==0.22.4,idna==3.19,imagesize==2.0.1,Jinja2==3.1.6,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,jsonschema_rs==0.52.1,lfdocs_conf==0.11.0,MarkupSafe==3.0.3,minijinja==2.24.0,mistune==3.3.4,packaging==26.3,picobox==4.0.0,pip==26.2.1,Pygments==2.21.0,PyYAML==6.0.3,referencing==0.37.0,requests==2.34.2,requests-file==3.0.1,roman-numerals==4.1.0,rpds-py==2026.6.3,setuptools==84.0.0,snowballstemmer==3.1.1,Sphinx==9.0.4,sphinx-data-viewer==0.1.5,sphinx-needs==8.5.0,sphinx-tabs==3.5.0,sphinx_mdinclude==0.6.2,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-httpdomain==2.0.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-mermaid==2.1.1,sphinxcontrib-openapi==0.9.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-serializinghtml==2.0.0,typing_extensions==4.16.0,urllib3==2.7.0 07:48:43 docs: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> sphinx-build -q -W --keep-going -b html -n -d /w/workspace/transportpce-tox-verify-vanadium/.tox/docs/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-vanadium/docs/_build/html 07:48:43 docs-linkcheck: freeze> python -m pip freeze --all 07:48:43 docs-linkcheck: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.7.22,charset-normalizer==3.5.1,deepmerge==3.0.1,docutils==0.22.4,idna==3.19,imagesize==2.0.1,Jinja2==3.1.6,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,jsonschema_rs==0.52.1,lfdocs_conf==0.11.0,MarkupSafe==3.0.3,minijinja==2.24.0,mistune==3.3.4,packaging==26.3,picobox==4.0.0,pip==26.2.1,Pygments==2.21.0,PyYAML==6.0.3,referencing==0.37.0,requests==2.34.2,requests-file==3.0.1,roman-numerals==4.1.0,rpds-py==2026.6.3,setuptools==84.0.0,snowballstemmer==3.1.1,Sphinx==9.0.4,sphinx-data-viewer==0.1.5,sphinx-needs==8.5.0,sphinx-tabs==3.5.0,sphinx_mdinclude==0.6.2,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-httpdomain==2.0.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-mermaid==2.1.1,sphinxcontrib-openapi==0.9.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-serializinghtml==2.0.0,typing_extensions==4.16.0,urllib3==2.7.0 07:48:43 docs-linkcheck: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> sphinx-build -q -b linkcheck -d /w/workspace/transportpce-tox-verify-vanadium/.tox/docs-linkcheck/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-vanadium/docs/_build/linkcheck 07:48:45 docs: OK ✔ in 19.47 seconds 07:48:45 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 07:48:47 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 07:48:47 [INFO] Once installed this environment will be reused. 07:48:47 [INFO] This may take a few minutes... 07:48:50 pylint: freeze> python -m pip freeze --all 07:48:50 pylint: astroid==4.0.4,dill==0.4.1,isort==9.0.1,mccabe==0.7.0,mypy_extensions==1.1.0,pip==26.2.1,platformdirs==4.11.7,pylint==4.0.8,setuptools==84.0.0,tomlkit==0.15.1 07:48:50 pylint: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> find transportpce_tests/ -name '*.py' -exec pylint --fail-under=10 --max-line-length=120 --disable=missing-docstring,import-error --disable=fixme --disable=duplicate-code '--module-rgx=([a-z0-9_]+$)|([0-9.]{1,30}$)' '--method-rgx=(([a-z_][a-zA-Z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-zA-Z][a-zA-Z0-9_]+__))$' '--variable-rgx=[a-zA-Z_][a-zA-Z0-9_]{1,30}$' '{}' + 07:48:53 [INFO] Installing environment for https://github.com/perltidy/perltidy. 07:48:53 [INFO] Once installed this environment will be reused. 07:48:53 [INFO] This may take a few minutes... 07:49:02 trim trailing whitespace.................................................Passed 07:49:03 Tabs remover.............................................................Passed 07:49:03 autopep8.................................................................Passed 07:49:07 perltidy.................................................................Passed 07:49:07 docs-linkcheck: OK ✔ in 30.25 seconds 07:49:07 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-vanadium/tests> pre-commit run gitlint-ci --hook-stage manual 07:49:07 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 07:49:07 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 07:49:07 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 07:49:07 [INFO] Once installed this environment will be reused. 07:49:07 [INFO] This may take a few minutes... 07:49:10 07:49:10 ------------------------------------ 07:49:10 Your code has been rated at 10.00/10 07:49:10 07:49:10 [ERROR] [ERROR] Some problems were encountered while processing the POMs: 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 30, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 41, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 45, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 49, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 53, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 57, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 61, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 65, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 69, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 73, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 28, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 74, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 78, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 82, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 30, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 48, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 52, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 56, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 74, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 74, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 78, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 82, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 86, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 90, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 94, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 98, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 102, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 28, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 50, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 32, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 164, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 33, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 44, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 48, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 52, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 33, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 51, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 55, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 59, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 63, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 67, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 71, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 75, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 79, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 83, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 42, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 119, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 29, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 40, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 44, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 35, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-openroadm-models:xml:features is missing. @ line 60, column 17 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 34, column 19 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-tapi-2.4.0-models:xml:features is missing. @ line 59, column 17 07:49:10 @ 07:49:10 [ERROR] The build could not read 14 projects -> [Help 1] 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-api:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/api/pom.xml) has 10 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 30, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 41, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 45, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 49, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 53, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 57, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 61, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 65, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 69, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 73, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-common:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/common/pom.xml) has 11 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 28, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 74, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 78, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 82, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:test-common:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/test-common/pom.xml) has 4 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 30, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 48, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 52, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 56, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-renderer:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/renderer/pom.xml) has 10 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 74, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-networkmodel:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/networkmodel/pom.xml) has 10 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 74, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 78, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 82, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 86, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 90, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 94, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 98, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 102, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-inventory:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/inventory/pom.xml) has 3 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 28, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-olm:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/olm/pom.xml) has 9 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-pce:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/pce/pom.xml) has 8 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 32, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 62, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 66, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 70, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 164, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-servicehandler:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/servicehandler/pom.xml) has 4 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 33, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 44, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 48, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 52, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-tapi:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/tapi/pom.xml) has 10 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 33, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 51, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 55, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 59, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 63, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 67, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 71, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 75, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 79, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 83, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-nbinotifications:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/nbinotifications/pom.xml) has 5 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 31, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 42, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 46, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 50, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 119, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:transportpce-dmaap-client:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/dmaap-client/pom.xml) has 3 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 29, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 40, column 17 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 44, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:odl-transportpce:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/features/odl-transportpce/pom.xml) has 2 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 35, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-openroadm-models:xml:features is missing. @ line 60, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] The project org.opendaylight.transportpce:odl-transportpce-tapi:12.2.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-vanadium/features/odl-transportpce-tapi/pom.xml) has 2 errors 07:49:10 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT failed to transfer from https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced. Original error: Could not transfer artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:23.2.0-SNAPSHOT from/to opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/): status code: 502, reason phrase: Bad Gateway (502) @ line 34, column 19 -> [Help 2] 07:49:10 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-tapi-2.4.0-models:xml:features is missing. @ line 59, column 17 07:49:10 [ERROR] 07:49:10 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 07:49:10 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 07:49:10 [ERROR] 07:49:10 [ERROR] For more information about the errors and possible solutions, please read the following articles: 07:49:10 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 07:49:10 [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 07:49:10 buildcontroller: exit 1 (34.92 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_controller.sh pid=2815 07:49:10 buildcontroller: FAIL ✖ in 44.28 seconds 07:49:10 build_karaf_tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:10 build_karaf_tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:12 pylint: OK ✔ in 26.26 seconds 07:49:12 build_karaf_tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:14 gitlint..................................................................Passed 07:49:14 pre-commit: OK ✔ in 44.89 seconds 07:49:14 build_karaf_tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:17 build_karaf_tests121: freeze> python -m pip freeze --all 07:49:17 build_karaf_tests121: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:49:17 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh 07:49:17 build karaf in karaf121 with ./karaf121.env 07:49:17 NOTE: Picked up JDK_JAVA_OPTIONS: 07:49:17 --add-opens=java.base/java.io=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.lang=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.net=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.nio=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:49:17 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:49:17 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:49:17 -Xlog:disable 07:49:17 build_karaf_tests221: freeze> python -m pip freeze --all 07:49:17 build_karaf_tests221: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:49:17 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh 07:49:17 build karaf in karaf221 with ./karaf221.env 07:49:17 NOTE: Picked up JDK_JAVA_OPTIONS: 07:49:17 --add-opens=java.base/java.io=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.lang=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.net=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.nio=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:49:17 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:49:17 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:49:17 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:49:17 -Xlog:disable 07:49:19 build_karaf_tests71: freeze> python -m pip freeze --all 07:49:19 build_karaf_tests71: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:49:19 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh 07:49:19 build karaf in karaf71 with ./karaf71.env 07:49:19 NOTE: Picked up JDK_JAVA_OPTIONS: 07:49:19 --add-opens=java.base/java.io=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.lang=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.net=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.nio=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.util=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:49:19 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:49:19 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:49:19 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:49:19 -Xlog:disable 07:49:24 build_karaf_tests190: freeze> python -m pip freeze --all 07:49:24 build_karaf_tests190: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:49:24 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh 07:49:24 build karaf in karafoc with ./karafoc.env 07:49:25 NOTE: Picked up JDK_JAVA_OPTIONS: 07:49:25 --add-opens=java.base/java.io=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.lang=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.net=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.nio=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.nio.file=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.util=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.util.jar=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.util.stream=ALL-UNNAMED 07:49:25 --add-opens=java.base/java.util.zip=ALL-UNNAMED 07:49:25 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 07:49:25 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 07:49:25 -Xlog:disable 07:49:29 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:12.2.0-SNAPSHOT 07:49:29 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:29 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:49:29 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:29 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:49:29 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:29 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:49:29 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:29 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:49:29 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:29 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:49:29 [ERROR] -> [Help 1] 07:49:29 [ERROR] 07:49:29 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 07:49:29 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 07:49:29 [ERROR] 07:49:29 [ERROR] For more information about the errors and possible solutions, please read the following articles: 07:49:29 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 07:49:29 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 07:49:29 build_karaf_tests121: exit 127 (12.21 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh pid=3544 07:49:29 build_karaf_tests121: FAIL ✖ in 18.97 seconds 07:49:29 buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:30 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:12.2.0-SNAPSHOT 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] -> [Help 1] 07:49:30 [ERROR] 07:49:30 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 07:49:30 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 07:49:30 [ERROR] 07:49:30 [ERROR] For more information about the errors and possible solutions, please read the following articles: 07:49:30 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 07:49:30 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:12.2.0-SNAPSHOT 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] -> [Help 1] 07:49:30 [ERROR] 07:49:30 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 07:49:30 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 07:49:30 [ERROR] 07:49:30 [ERROR] For more information about the errors and possible solutions, please read the following articles: 07:49:30 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 07:49:30 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 07:49:30 build_karaf_tests221: exit 127 (12.58 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh pid=3611 07:49:30 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 07:49:30 build_karaf_tests221: FAIL ✖ in 19.72 seconds 07:49:30 build_karaf_tests71: exit 127 (10.64 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh pid=3685 07:49:30 build_karaf_tests71: FAIL ✖ in 18.31 seconds 07:49:30 sims: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:30 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:12.2.0-SNAPSHOT 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT (runtime) 07:49:30 [ERROR] org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:12.2.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 07:49:30 [ERROR] -> [Help 1] 07:49:30 [ERROR] 07:49:30 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 07:49:30 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 07:49:30 [ERROR] 07:49:30 [ERROR] For more information about the errors and possible solutions, please read the following articles: 07:49:30 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 07:49:30 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 07:49:30 build_karaf_tests190: exit 127 (5.81 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./build_karaf_for_tests.sh pid=3756 07:49:30 build_karaf_tests190: FAIL ✖ in 16.44 seconds 07:49:30 testsPCE: install_deps> python -I -m pip install gnpy4tpce==2.4.7 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:49:38 buildlighty: freeze> python -m pip freeze --all 07:49:38 sims: freeze> python -m pip freeze --all 07:49:38 buildlighty: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:49:38 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-vanadium/lighty> ./build.sh 07:49:38 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 07:49:38 sims: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:49:38 sims: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./install_lightynode.sh 07:49:38 Using lighynode version 20.1.0.5 07:49:38 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 07:51:26 [ERROR] Failed to execute goal on project tpce: Could not resolve dependencies for project io.lighty.controllers:tpce:jar:12.2.0-SNAPSHOT 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-api:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-api:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-common:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-common:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-networkmodel:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-networkmodel:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-pce:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-pce:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-olm:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-olm:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-servicehandler:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-servicehandler:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-tapi:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-tapi:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] dependency: org.opendaylight.transportpce:transportpce-nbinotifications:jar:12.2.0-SNAPSHOT (compile) 07:51:26 [ERROR] Could not find artifact org.opendaylight.transportpce:transportpce-nbinotifications:jar:12.2.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 07:51:26 [ERROR] -> [Help 1] 07:51:26 [ERROR] 07:51:26 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 07:51:26 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 07:51:26 [ERROR] 07:51:26 [ERROR] For more information about the errors and possible solutions, please read the following articles: 07:51:26 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 07:51:26 unzip: cannot find or open target/tpce-bin.zip, target/tpce-bin.zip.zip or target/tpce-bin.zip.ZIP. 07:51:26 sims: OK ✔ in 11.06 seconds 07:51:26 buildlighty: exit 9 (108.49 seconds) /w/workspace/transportpce-tox-verify-vanadium/lighty> ./build.sh pid=3908 07:51:49 buildlighty: FAIL ✖ in 1 minute 57.39 seconds 07:51:49 testsPCE: freeze> python -m pip freeze --all 07:51:49 testsPCE: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,click==8.5.0,contourpy==1.3.3,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.8,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.64.0,gnpy4tpce==2.4.7,idna==3.19,iniconfig==2.3.0,injector==0.24.0,invoke==3.0.3,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.5.1,lxml==6.1.3,MarkupSafe==3.0.3,matplotlib==3.11.1,netconf-client==3.6.0,networkx==2.8.8,numpy==1.26.4,packaging==26.3,pandas==1.5.3,paramiko==5.0.0,pbr==5.11.1,pillow==12.3.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pyparsing==3.3.2,pytest==9.1.1,python-dateutil==2.9.0.post0,pytz==2026.3.post1,requests==2.34.2,scipy==1.17.1,setuptools==50.3.2,six==1.17.0,urllib3==2.7.0,Werkzeug==2.0.3,xlrd==1.2.0 07:51:49 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh pce 07:51:49 pytest -q transportpce_tests/pce/test01_pce.py 07:53:50 EEEEEEEEEEEEEEEEEEEE [100%] 07:53:53 ==================================== ERRORS ==================================== 07:53:53 _______ ERROR at setup of TestTransportPCEPce.test_01_load_port_mapping ________ 07:53:53 07:53:53 cls = 07:53:53 07:53:53 @classmethod 07:53:53 def setUpClass(cls): 07:53:53 # pylint: disable=bare-except 07:53:53 sample_files_parsed = False 07:53:53 time.sleep(20) 07:53:53 try: 07:53:53 TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 07:53:53 "..", "..", "sample_configs", "honeynode-topo.json") 07:53:53 with open(TOPO_BI_DIR_FILE, 'r', encoding='utf-8') as topo_bi_dir: 07:53:53 cls.simple_topo_bi_dir_data = topo_bi_dir.read() 07:53:53 07:53:53 TOPO_UNI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 07:53:53 "..", "..", "sample_configs", "NW-simple-topology.json") 07:53:53 07:53:53 with open(TOPO_UNI_DIR_FILE, 'r', encoding='utf-8') as topo_uni_dir: 07:53:53 cls.simple_topo_uni_dir_data = topo_uni_dir.read() 07:53:53 07:53:53 TOPO_UNI_DIR_COMPLEX_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 07:53:53 "..", "..", "sample_configs", "NW-for-test-5-4.json") 07:53:53 with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r', encoding='utf-8') as topo_uni_dir_complex: 07:53:53 cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() 07:53:53 PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 07:53:53 "..", "..", "sample_configs", "pce_portmapping_121.json") 07:53:53 with open(PORT_MAPPING_FILE, 'r', encoding='utf-8') as port_mapping: 07:53:53 cls.port_mapping_data = port_mapping.read() 07:53:53 sample_files_parsed = True 07:53:53 except PermissionError as err: 07:53:53 print("Permission Error when trying to read sample files\n", err) 07:53:53 sys.exit(2) 07:53:53 except FileNotFoundError as err: 07:53:53 print("File Not found Error when trying to read sample files\n", err) 07:53:53 sys.exit(2) 07:53:53 except: 07:53:53 print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) 07:53:53 sys.exit(2) 07:53:53 finally: 07:53:53 if sample_files_parsed: 07:53:53 print("sample files content loaded") 07:53:53 07:53:53 > cls.processes = test_utils.start_tpce() 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 07:53:53 transportpce_tests/pce/test01_pce.py:93: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 def start_tpce(): 07:53:53 if 'NO_ODL_STARTUP' in os.environ: 07:53:53 print('No OpenDaylight instance to start!') 07:53:53 return [] 07:53:53 print('starting OpenDaylight...') 07:53:53 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:53:53 process = start_lighty() 07:53:53 else: 07:53:53 process = start_karaf() 07:53:53 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:53:53 print('OpenDaylight started !') 07:53:53 else: 07:53:53 print('OpenDaylight failed to start !') 07:53:53 shutdown_process(process) 07:53:53 for pid in process_list: 07:53:53 shutdown_process(pid) 07:53:53 > sys.exit(1) 07:53:53 E SystemExit: 1 07:53:53 07:53:53 transportpce_tests/common/test_utils.py:232: SystemExit 07:53:53 ---------------------------- Captured stdout setup ----------------------------- 07:53:53 sample files content loaded 07:53:53 starting OpenDaylight... 07:53:53 starting KARAF (karaf) TransportPCE build... 07:53:53 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:53:53 ____ ERROR at setup of TestTransportPCEPce.test_02_load_simple_topology_bi _____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49972e0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___________ ERROR at setup of TestTransportPCEPce.test_03_get_nodeId ___________ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a74c0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___________ ERROR at setup of TestTransportPCEPce.test_04_get_linkId ___________ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a4963f60> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ____ ERROR at setup of TestTransportPCEPce.test_05_path_computation_xpdr_bi ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49972e0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ____ ERROR at setup of TestTransportPCEPce.test_06_path_computation_rdm_bi _____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a6ecd120> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ____ ERROR at setup of TestTransportPCEPce.test_07_load_simple_topology_uni ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49972e0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___________ ERROR at setup of TestTransportPCEPce.test_08_get_nodeId ___________ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a5d00> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___________ ERROR at setup of TestTransportPCEPce.test_09_get_linkId ___________ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a7a60> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___ ERROR at setup of TestTransportPCEPce.test_10_path_computation_xpdr_uni ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a4963f60> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ____ ERROR at setup of TestTransportPCEPce.test_11_path_computation_rdm_uni ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a7b00> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 _____ ERROR at setup of TestTransportPCEPce.test_12_load_complex_topology ______ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a7380> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___________ ERROR at setup of TestTransportPCEPce.test_13_get_nodeId ___________ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a4963f60> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 _____ ERROR at setup of TestTransportPCEPce.test_14_fail_path_computation ______ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a6fc0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___ ERROR at setup of TestTransportPCEPce.test_15_success1_path_computation ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a5da0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___ ERROR at setup of TestTransportPCEPce.test_16_success2_path_computation ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a7d80> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 ___ ERROR at setup of TestTransportPCEPce.test_17_success3_path_computation ____ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a7b00> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 _ ERROR at setup of TestTransportPCEPce.test_18_path_computation_before_oms_attribute_deletion _ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a4963e20> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 _ ERROR at setup of TestTransportPCEPce.test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link _ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a4963ce0> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 _ ERROR at setup of TestTransportPCEPce.test_20_path_computation_after_oms_attribute_deletion _ 07:53:53 07:53:53 cls = 07:53:53 func = . at 0x7f24a49a7c40> 07:53:53 when = 'setup' 07:53:53 reraise = (, ) 07:53:53 07:53:53 @classmethod 07:53:53 def from_call( 07:53:53 cls, 07:53:53 func: Callable[[], TResult], 07:53:53 when: Literal["collect", "setup", "call", "teardown"], 07:53:53 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:53:53 ) -> CallInfo[TResult]: 07:53:53 """Call func, wrapping the result in a CallInfo. 07:53:53 07:53:53 :param func: 07:53:53 The function to call. Called without arguments. 07:53:53 :type func: Callable[[], _pytest.runner.TResult] 07:53:53 :param when: 07:53:53 The phase in which the function is called. 07:53:53 :param reraise: 07:53:53 Exception or exceptions that shall propagate if raised by the 07:53:53 function, instead of being wrapped in the CallInfo. 07:53:53 """ 07:53:53 excinfo = None 07:53:53 instant = timing.Instant() 07:53:53 try: 07:53:53 > result: TResult | None = func() 07:53:53 ^^^^^^ 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:53:53 lambda: runtest_hook(item=item, **kwds), 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:53:53 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:53:53 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:53:53 yield 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:53:53 return (yield) 07:53:53 ^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:53:53 item.session._setupstate.setup(item) 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:53:53 col.setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:53:53 super().setup() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:53:53 self._request._fillfixtures() 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:53:53 item.funcargs[argname] = self.getfixturevalue(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:53:53 fixturedef = self._get_active_fixturedef(argname) 07:53:53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:53:53 fixturedef.execute(request=subrequest) 07:53:53 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:53:53 07:53:53 self = 07:53:53 request = > 07:53:53 07:53:53 def execute(self, request: SubRequest) -> FixtureValue: 07:53:53 """Return the value of this fixture, executing it if not cached.""" 07:53:53 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:53:53 # This needs to be done before checking if we have a cached value, since 07:53:53 # if a dependent fixture has their cache invalidated, e.g. due to 07:53:53 # parametrization, they finalize themselves and fixtures depending on it 07:53:53 # (which will likely include this fixture) setting `self.cached_result = None`. 07:53:53 # See #4871 07:53:53 requested_fixtures_that_should_finalize_us = [] 07:53:53 for argname in self.argnames: 07:53:53 fixturedef = request._get_active_fixturedef(argname) 07:53:53 # Saves requested fixtures in a list so we later can add our finalizer 07:53:53 # to them, ensuring that if a requested fixture gets torn down we get torn 07:53:53 # down first. This is generally handled by SetupState, but still currently 07:53:53 # needed when this fixture is not parametrized but depends on a parametrized 07:53:53 # fixture. 07:53:53 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:53:53 07:53:53 # Check for (and return) cached value/exception. 07:53:53 if self.cached_result is not None: 07:53:53 request_cache_key = self.cache_key(request) 07:53:53 cache_key = self.cached_result[1] 07:53:53 try: 07:53:53 # Attempt to make a normal == check: this might fail for objects 07:53:53 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:53:53 cache_hit = bool(request_cache_key == cache_key) 07:53:53 except (ValueError, RuntimeError): 07:53:53 # If the comparison raises, use 'is' as fallback. 07:53:53 cache_hit = request_cache_key is cache_key 07:53:53 07:53:53 if cache_hit: 07:53:53 if self.cached_result[2] is not None: 07:53:53 exc, exc_tb = self.cached_result[2] 07:53:53 raise exc.with_traceback(exc_tb) 07:53:53 else: 07:53:53 return self.cached_result[0] 07:53:53 # We have a previous but differently parametrized fixture instance 07:53:53 # so we need to tear it down before creating a new one. 07:53:53 self.finish(request) 07:53:53 assert self.cached_result is None 07:53:53 07:53:53 # Add finalizer to requested fixtures we saved previously. 07:53:53 # We make sure to do this after checking for cached value to avoid 07:53:53 # adding our finalizer multiple times. (#12135) 07:53:53 finalizer = functools.partial(self.finish, request=request) 07:53:53 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:53:53 parent_fixture.addfinalizer(finalizer) 07:53:53 07:53:53 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:53:53 # which is executed last. 07:53:53 > assert not self._finalizers 07:53:53 ^^^^^^^^^^^^^^^^^^^^ 07:53:53 E AssertionError 07:53:53 07:53:53 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:53:53 =========================== short test summary info ============================ 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_01_load_port_mapping 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_02_load_simple_topology_bi 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_03_get_nodeId 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_04_get_linkId 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_05_path_computation_xpdr_bi 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_06_path_computation_rdm_bi 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_07_load_simple_topology_uni 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_08_get_nodeId 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_09_get_linkId 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_10_path_computation_xpdr_uni 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_11_path_computation_rdm_uni 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_12_load_complex_topology 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_13_get_nodeId 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_14_fail_path_computation 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_15_success1_path_computation 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_16_success2_path_computation 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_17_success3_path_computation 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_18_path_computation_before_oms_attribute_deletion 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link 07:53:53 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_20_path_computation_after_oms_attribute_deletion 07:53:53 20 errors in 123.73s (0:02:03) 07:53:53 testsPCE: exit 1 (124.03 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh pce pid=4788 07:53:54 testsPCE: FAIL ✖ in 4 minutes 22.87 seconds 07:53:54 tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:53:54 tests_tapi: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:53:54 tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:54:04 tests_tapi: freeze> python -m pip freeze --all 07:54:04 tests121: freeze> python -m pip freeze --all 07:54:05 tests_tapi: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:54:05 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh tapi 07:54:05 using environment variables from ./karaf221.env 07:54:05 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 07:54:05 tests190: freeze> python -m pip freeze --all 07:54:05 tests121: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:54:05 tests121: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh 1.2.1 07:54:05 using environment variables from ./karaf121.env 07:54:05 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 07:54:05 tests190: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:54:05 tests190: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh oc 07:54:05 using environment variables from ./karafoc.env 07:54:05 pytest -q transportpce_tests/oc/test01_portmapping.py 07:55:45 EEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 07:55:47 ==================================== ERRORS ==================================== 07:55:47 __ ERROR at setup of TestTransportPCEPortmapping.test_01_meta_data_insertion ___ 07:55:47 07:55:47 cls = 07:55:47 07:55:47 @classmethod 07:55:47 def setUpClass(cls): 07:55:47 > cls.processes = test_utils.start_tpce() 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 07:55:47 transportpce_tests/oc/test01_portmapping.py:29: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 def start_tpce(): 07:55:47 if 'NO_ODL_STARTUP' in os.environ: 07:55:47 print('No OpenDaylight instance to start!') 07:55:47 return [] 07:55:47 print('starting OpenDaylight...') 07:55:47 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:55:47 process = start_lighty() 07:55:47 else: 07:55:47 process = start_karaf() 07:55:47 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:55:47 print('OpenDaylight started !') 07:55:47 else: 07:55:47 print('OpenDaylight failed to start !') 07:55:47 shutdown_process(process) 07:55:47 for pid in process_list: 07:55:47 shutdown_process(pid) 07:55:47 > sys.exit(1) 07:55:47 E SystemExit: 1 07:55:47 07:55:47 transportpce_tests/common/test_utils.py:232: SystemExit 07:55:47 ---------------------------- Captured stdout setup ----------------------------- 07:55:47 starting OpenDaylight... 07:55:47 starting KARAF (karafoc) TransportPCE build... 07:55:47 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_02_catlog_input_insertion _ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eaae4fe0> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_device_connection _ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eab076a0> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_04_xpdr_device_connected __ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eaacb240> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_05_xpdr_portmapping_info __ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89ec292fc0> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK5 _ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eab053a0> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eaae5120> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 __ ERROR at setup of TestTransportPCEPortmapping.test_08_mpdr_switching_pool ___ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89ed1e0400> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 ___ ERROR at setup of TestTransportPCEPortmapping.test_09_check_mccapprofile ___ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eaacb240> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 07:55:47 07:55:47 cls = 07:55:47 func = . at 0x7f89eaae5120> 07:55:47 when = 'setup' 07:55:47 reraise = (, ) 07:55:47 07:55:47 @classmethod 07:55:47 def from_call( 07:55:47 cls, 07:55:47 func: Callable[[], TResult], 07:55:47 when: Literal["collect", "setup", "call", "teardown"], 07:55:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:47 ) -> CallInfo[TResult]: 07:55:47 """Call func, wrapping the result in a CallInfo. 07:55:47 07:55:47 :param func: 07:55:47 The function to call. Called without arguments. 07:55:47 :type func: Callable[[], _pytest.runner.TResult] 07:55:47 :param when: 07:55:47 The phase in which the function is called. 07:55:47 :param reraise: 07:55:47 Exception or exceptions that shall propagate if raised by the 07:55:47 function, instead of being wrapped in the CallInfo. 07:55:47 """ 07:55:47 excinfo = None 07:55:47 instant = timing.Instant() 07:55:47 try: 07:55:47 > result: TResult | None = func() 07:55:47 ^^^^^^ 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:47 lambda: runtest_hook(item=item, **kwds), 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:47 yield 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:47 return (yield) 07:55:47 ^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:47 item.session._setupstate.setup(item) 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:47 col.setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:47 super().setup() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:47 self._request._fillfixtures() 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:47 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:47 fixturedef = self._get_active_fixturedef(argname) 07:55:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:47 fixturedef.execute(request=subrequest) 07:55:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:47 07:55:47 self = 07:55:47 request = > 07:55:47 07:55:47 def execute(self, request: SubRequest) -> FixtureValue: 07:55:47 """Return the value of this fixture, executing it if not cached.""" 07:55:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:47 # This needs to be done before checking if we have a cached value, since 07:55:47 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:47 # parametrization, they finalize themselves and fixtures depending on it 07:55:47 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:47 # See #4871 07:55:47 requested_fixtures_that_should_finalize_us = [] 07:55:47 for argname in self.argnames: 07:55:47 fixturedef = request._get_active_fixturedef(argname) 07:55:47 # Saves requested fixtures in a list so we later can add our finalizer 07:55:47 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:47 # down first. This is generally handled by SetupState, but still currently 07:55:47 # needed when this fixture is not parametrized but depends on a parametrized 07:55:47 # fixture. 07:55:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:47 07:55:47 # Check for (and return) cached value/exception. 07:55:47 if self.cached_result is not None: 07:55:47 request_cache_key = self.cache_key(request) 07:55:47 cache_key = self.cached_result[1] 07:55:47 try: 07:55:47 # Attempt to make a normal == check: this might fail for objects 07:55:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:47 cache_hit = bool(request_cache_key == cache_key) 07:55:47 except (ValueError, RuntimeError): 07:55:47 # If the comparison raises, use 'is' as fallback. 07:55:47 cache_hit = request_cache_key is cache_key 07:55:47 07:55:47 if cache_hit: 07:55:47 if self.cached_result[2] is not None: 07:55:47 exc, exc_tb = self.cached_result[2] 07:55:47 raise exc.with_traceback(exc_tb) 07:55:47 else: 07:55:47 return self.cached_result[0] 07:55:47 # We have a previous but differently parametrized fixture instance 07:55:47 # so we need to tear it down before creating a new one. 07:55:47 self.finish(request) 07:55:47 assert self.cached_result is None 07:55:47 07:55:47 # Add finalizer to requested fixtures we saved previously. 07:55:47 # We make sure to do this after checking for cached value to avoid 07:55:47 # adding our finalizer multiple times. (#12135) 07:55:47 finalizer = functools.partial(self.finish, request=request) 07:55:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:47 parent_fixture.addfinalizer(finalizer) 07:55:47 07:55:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:47 # which is executed last. 07:55:47 > assert not self._finalizers 07:55:47 ^^^^^^^^^^^^^^^^^^^^ 07:55:47 E AssertionError 07:55:47 07:55:47 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:47 =========================== short test summary info ============================ 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_01_meta_data_insertion 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_02_catlog_input_insertion 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_device_connection 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_04_xpdr_device_connected 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_05_xpdr_portmapping_info 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK5 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_08_mpdr_switching_pool 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_09_check_mccapprofile 07:55:47 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 07:55:47 10 errors in 101.94s (0:01:41) 07:55:47 tests190: exit 1 (102.21 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh oc pid=4911 07:55:47 EEtests190: FAIL ✖ in 1 minute 54.01 seconds 07:55:47 tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:55:47 EEEEEEEEEEEEEEEEEEEE [100%] 07:55:49 ==================================== ERRORS ==================================== 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_01_rdm_device_connection __ 07:55:49 07:55:49 cls = 07:55:49 07:55:49 @classmethod 07:55:49 def setUpClass(cls): 07:55:49 > cls.processes = test_utils.start_tpce() 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 07:55:49 transportpce_tests/1.2.1/test01_portmapping.py:33: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 def start_tpce(): 07:55:49 if 'NO_ODL_STARTUP' in os.environ: 07:55:49 print('No OpenDaylight instance to start!') 07:55:49 return [] 07:55:49 print('starting OpenDaylight...') 07:55:49 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:55:49 process = start_lighty() 07:55:49 else: 07:55:49 process = start_karaf() 07:55:49 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:55:49 print('OpenDaylight started !') 07:55:49 else: 07:55:49 print('OpenDaylight failed to start !') 07:55:49 shutdown_process(process) 07:55:49 for pid in process_list: 07:55:49 shutdown_process(pid) 07:55:49 > sys.exit(1) 07:55:49 E SystemExit: 1 07:55:49 07:55:49 transportpce_tests/common/test_utils.py:232: SystemExit 07:55:49 ---------------------------- Captured stdout setup ----------------------------- 07:55:49 starting OpenDaylight... 07:55:49 starting KARAF (karaf121) TransportPCE build... 07:55:49 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:55:49 __ ERROR at setup of TestTransportPCEPortmapping.test_02_rdm_device_connected __ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075760> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 __ ERROR at setup of TestTransportPCEPortmapping.test_03_rdm_portmapping_info __ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a7560> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8041ff740> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_05_rdm_portmapping_SRG1_PP7_TXRX _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc80283f560> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG3_PP1_TXRX _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010753a0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 E cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_07_xpdr_device_connection _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075580> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_08_xpdr_device_connected __ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a7600> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_09_xpdr_portmapping_info __ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a68e0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_portmapping_NETWORK1 _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a6de0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_portmapping_NETWORK2 _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a7600> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_portmapping_CLIENT1 _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a6f20> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_13_xpdr_portmapping_CLIENT2 _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075580> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_14_xpdr_portmapping_CLIENT3 _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a6de0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_15_xpdr_portmapping_CLIENT4 _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a6f20> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_16_xpdr_device_disconnection _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075800> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_17_xpdr_device_disconnected _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075bc0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_18_xpdr_device_not_connected _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075da0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_19_rdm_device_disconnection _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc8010a6840> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_20_rdm_device_disconnected _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc800c79d00> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 _ ERROR at setup of TestTransportPCEPortmapping.test_21_rdm_device_not_connected _ 07:55:49 07:55:49 cls = 07:55:49 func = . at 0x7fc801075bc0> 07:55:49 when = 'setup' 07:55:49 reraise = (, ) 07:55:49 07:55:49 @classmethod 07:55:49 def from_call( 07:55:49 cls, 07:55:49 func: Callable[[], TResult], 07:55:49 when: Literal["collect", "setup", "call", "teardown"], 07:55:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:49 ) -> CallInfo[TResult]: 07:55:49 """Call func, wrapping the result in a CallInfo. 07:55:49 07:55:49 :param func: 07:55:49 The function to call. Called without arguments. 07:55:49 :type func: Callable[[], _pytest.runner.TResult] 07:55:49 :param when: 07:55:49 The phase in which the function is called. 07:55:49 :param reraise: 07:55:49 Exception or exceptions that shall propagate if raised by the 07:55:49 function, instead of being wrapped in the CallInfo. 07:55:49 """ 07:55:49 excinfo = None 07:55:49 instant = timing.Instant() 07:55:49 try: 07:55:49 > result: TResult | None = func() 07:55:49 ^^^^^^ 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:49 lambda: runtest_hook(item=item, **kwds), 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:49 yield 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:49 return (yield) 07:55:49 ^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:49 item.session._setupstate.setup(item) 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:49 col.setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:49 super().setup() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:49 self._request._fillfixtures() 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:49 fixturedef = self._get_active_fixturedef(argname) 07:55:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:49 fixturedef.execute(request=subrequest) 07:55:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:49 07:55:49 self = 07:55:49 request = > 07:55:49 07:55:49 def execute(self, request: SubRequest) -> FixtureValue: 07:55:49 """Return the value of this fixture, executing it if not cached.""" 07:55:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:49 # This needs to be done before checking if we have a cached value, since 07:55:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:49 # parametrization, they finalize themselves and fixtures depending on it 07:55:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:49 # See #4871 07:55:49 requested_fixtures_that_should_finalize_us = [] 07:55:49 for argname in self.argnames: 07:55:49 fixturedef = request._get_active_fixturedef(argname) 07:55:49 # Saves requested fixtures in a list so we later can add our finalizer 07:55:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:49 # down first. This is generally handled by SetupState, but still currently 07:55:49 # needed when this fixture is not parametrized but depends on a parametrized 07:55:49 # fixture. 07:55:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:49 07:55:49 # Check for (and return) cached value/exception. 07:55:49 if self.cached_result is not None: 07:55:49 request_cache_key = self.cache_key(request) 07:55:49 cache_key = self.cached_result[1] 07:55:49 try: 07:55:49 # Attempt to make a normal == check: this might fail for objects 07:55:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:49 cache_hit = bool(request_cache_key == cache_key) 07:55:49 except (ValueError, RuntimeError): 07:55:49 # If the comparison raises, use 'is' as fallback. 07:55:49 cache_hit = request_cache_key is cache_key 07:55:49 07:55:49 if cache_hit: 07:55:49 if self.cached_result[2] is not None: 07:55:49 exc, exc_tb = self.cached_result[2] 07:55:49 raise exc.with_traceback(exc_tb) 07:55:49 else: 07:55:49 return self.cached_result[0] 07:55:49 # We have a previous but differently parametrized fixture instance 07:55:49 # so we need to tear it down before creating a new one. 07:55:49 self.finish(request) 07:55:49 assert self.cached_result is None 07:55:49 07:55:49 # Add finalizer to requested fixtures we saved previously. 07:55:49 # We make sure to do this after checking for cached value to avoid 07:55:49 # adding our finalizer multiple times. (#12135) 07:55:49 finalizer = functools.partial(self.finish, request=request) 07:55:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:49 parent_fixture.addfinalizer(finalizer) 07:55:49 07:55:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:49 # which is executed last. 07:55:49 > assert not self._finalizers 07:55:49 ^^^^^^^^^^^^^^^^^^^^ 07:55:49 E AssertionError 07:55:49 07:55:49 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:49 =========================== short test summary info ============================ 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_rdm_device_connection 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_rdm_device_connected 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_rdm_portmapping_info 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_SRG1_PP7_TXRX 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG3_PP1_TXRX 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_xpdr_device_connection 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_xpdr_device_connected 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_xpdr_portmapping_info 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_portmapping_NETWORK1 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_portmapping_NETWORK2 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_portmapping_CLIENT1 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_13_xpdr_portmapping_CLIENT2 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_14_xpdr_portmapping_CLIENT3 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_15_xpdr_portmapping_CLIENT4 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_16_xpdr_device_disconnection 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_17_xpdr_device_disconnected 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_18_xpdr_device_not_connected 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_19_rdm_device_disconnection 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_20_rdm_device_disconnected 07:55:49 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_21_rdm_device_not_connected 07:55:49 21 errors in 104.12s (0:01:44) 07:55:49 tests121: exit 1 (104.42 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh 1.2.1 pid=4900 07:55:49 EEEEEEEEEEEEEEEEEEEEEEEEtests121: FAIL ✖ in 1 minute 56.16 seconds 07:55:54 tests71: freeze> python -m pip freeze --all 07:55:54 Etests71: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:55:54 tests71: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh 7.1 07:55:54 using environment variables from ./karaf71.env 07:55:54 pytest -q transportpce_tests/7.1/test01_portmapping.py 07:55:54 EEEEEE [100%] 07:55:55 ==================================== ERRORS ==================================== 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_01_get_tapi_topology_T100G _ 07:55:55 07:55:55 cls = 07:55:55 07:55:55 @classmethod 07:55:55 def setUpClass(cls): 07:55:55 cls.init_failed = False 07:55:55 os.environ['JAVA_MIN_MEM'] = '1024M' 07:55:55 os.environ['JAVA_MAX_MEM'] = '4096M' 07:55:55 > cls.processes = test_utils.start_tpce() 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 07:55:55 transportpce_tests/tapi/test01_abstracted_topology.py:148: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 def start_tpce(): 07:55:55 if 'NO_ODL_STARTUP' in os.environ: 07:55:55 print('No OpenDaylight instance to start!') 07:55:55 return [] 07:55:55 print('starting OpenDaylight...') 07:55:55 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:55:55 process = start_lighty() 07:55:55 else: 07:55:55 process = start_karaf() 07:55:55 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:55:55 print('OpenDaylight started !') 07:55:55 else: 07:55:55 print('OpenDaylight failed to start !') 07:55:55 shutdown_process(process) 07:55:55 for pid in process_list: 07:55:55 shutdown_process(pid) 07:55:55 > sys.exit(1) 07:55:55 E SystemExit: 1 07:55:55 07:55:55 transportpce_tests/common/test_utils.py:232: SystemExit 07:55:55 ---------------------------- Captured stdout setup ----------------------------- 07:55:55 starting OpenDaylight... 07:55:55 starting KARAF (karaf221) TransportPCE build... 07:55:55 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_02_get_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d0dbc0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_03_connect_rdmb ___ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5f4c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_04_check_tapi_topos _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae84d3380> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_05_disconnect_roadmb _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae940b740> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_06_connect_xpdra __ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5f560> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_07_check_tapi_topos _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_08_connect_rdma ___ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_09_connect_rdmc ___ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5f880> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_10_check_tapi_topos _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d0dbc0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_11_connect_xpdra_n1_to_roadma_pp1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_12_connect_roadma_pp1_to_xpdra_n1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_13_check_tapi_topology_T100G _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_14_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d0dbc0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_15_connect_xpdrc __ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_16_connect_xpdrc_n1_to_roadmc_pp1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_17_connect_roadmc_pp1_to_xpdrc_n1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5ee80> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_18_check_tapi_topology_T100G _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e660> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_19_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_20_connect_spdr_sa1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5ed40> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_21_connect_spdr_sc1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_22_check_tapi_topology_T100G _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e660> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_23_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11a80> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_24_connect_sprda_n1_to_roadma_pp2 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d0ce00> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_25_connect_roadma_pp2_to_spdra_n1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_26_connect_sprdc_n1_to_roadmc_pp2 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11c60> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_27_connect_roadmc_pp2_to_spdrc_n1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_28_check_tapi_topology_T100G _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d0ce00> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_29_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11f80> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_30_add_oms_attributes _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_31_create_OCH_OTU4_service _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae93bd1c0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_32_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11260> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_33_create_ODU4_service _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_34_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a113a0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_35_connect_sprda_2_n2_to_roadma_pp3 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11120> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_36_connect_roadma_pp3_to_spdra_2_n2 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_37_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a12480> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_38_delete_ODU4_service _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_39_delete_OCH_OTU4_service _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a10900> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_40_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a12a20> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_41_disconnect_xponders_from_roadm _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_42_check_tapi_topology_T0 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a10720> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_43_get_tapi_topology_T100G _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a10ea0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_44_disconnect_roadma _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_45_disconnect_roadmc _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11a80> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_46_check_tapi_topos _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a11260> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_47_disconnect_xpdra _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_48_disconnect_xpdrc _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a12020> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_49_disconnect_spdr_sa1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a114e0> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_50_disconnect_spdr_sc1 _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6d5e700> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_51_check_uninstall_Tapi_Feature _ 07:55:55 07:55:55 cls = 07:55:55 func = . at 0x7faae6a13560> 07:55:55 when = 'setup' 07:55:55 reraise = (, ) 07:55:55 07:55:55 @classmethod 07:55:55 def from_call( 07:55:55 cls, 07:55:55 func: Callable[[], TResult], 07:55:55 when: Literal["collect", "setup", "call", "teardown"], 07:55:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:55:55 ) -> CallInfo[TResult]: 07:55:55 """Call func, wrapping the result in a CallInfo. 07:55:55 07:55:55 :param func: 07:55:55 The function to call. Called without arguments. 07:55:55 :type func: Callable[[], _pytest.runner.TResult] 07:55:55 :param when: 07:55:55 The phase in which the function is called. 07:55:55 :param reraise: 07:55:55 Exception or exceptions that shall propagate if raised by the 07:55:55 function, instead of being wrapped in the CallInfo. 07:55:55 """ 07:55:55 excinfo = None 07:55:55 instant = timing.Instant() 07:55:55 try: 07:55:55 > result: TResult | None = func() 07:55:55 ^^^^^^ 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:55:55 lambda: runtest_hook(item=item, **kwds), 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:55:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:55:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:55:55 yield 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:55:55 return (yield) 07:55:55 ^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:55:55 item.session._setupstate.setup(item) 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:55:55 col.setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:55:55 super().setup() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:55:55 self._request._fillfixtures() 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:55:55 item.funcargs[argname] = self.getfixturevalue(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:55:55 fixturedef = self._get_active_fixturedef(argname) 07:55:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:55:55 fixturedef.execute(request=subrequest) 07:55:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:55:55 07:55:55 self = 07:55:55 request = > 07:55:55 07:55:55 def execute(self, request: SubRequest) -> FixtureValue: 07:55:55 """Return the value of this fixture, executing it if not cached.""" 07:55:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:55:55 # This needs to be done before checking if we have a cached value, since 07:55:55 # if a dependent fixture has their cache invalidated, e.g. due to 07:55:55 # parametrization, they finalize themselves and fixtures depending on it 07:55:55 # (which will likely include this fixture) setting `self.cached_result = None`. 07:55:55 # See #4871 07:55:55 requested_fixtures_that_should_finalize_us = [] 07:55:55 for argname in self.argnames: 07:55:55 fixturedef = request._get_active_fixturedef(argname) 07:55:55 # Saves requested fixtures in a list so we later can add our finalizer 07:55:55 # to them, ensuring that if a requested fixture gets torn down we get torn 07:55:55 # down first. This is generally handled by SetupState, but still currently 07:55:55 # needed when this fixture is not parametrized but depends on a parametrized 07:55:55 # fixture. 07:55:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:55:55 07:55:55 # Check for (and return) cached value/exception. 07:55:55 if self.cached_result is not None: 07:55:55 request_cache_key = self.cache_key(request) 07:55:55 cache_key = self.cached_result[1] 07:55:55 try: 07:55:55 # Attempt to make a normal == check: this might fail for objects 07:55:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:55:55 cache_hit = bool(request_cache_key == cache_key) 07:55:55 except (ValueError, RuntimeError): 07:55:55 # If the comparison raises, use 'is' as fallback. 07:55:55 cache_hit = request_cache_key is cache_key 07:55:55 07:55:55 if cache_hit: 07:55:55 if self.cached_result[2] is not None: 07:55:55 exc, exc_tb = self.cached_result[2] 07:55:55 raise exc.with_traceback(exc_tb) 07:55:55 else: 07:55:55 return self.cached_result[0] 07:55:55 # We have a previous but differently parametrized fixture instance 07:55:55 # so we need to tear it down before creating a new one. 07:55:55 self.finish(request) 07:55:55 assert self.cached_result is None 07:55:55 07:55:55 # Add finalizer to requested fixtures we saved previously. 07:55:55 # We make sure to do this after checking for cached value to avoid 07:55:55 # adding our finalizer multiple times. (#12135) 07:55:55 finalizer = functools.partial(self.finish, request=request) 07:55:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:55:55 parent_fixture.addfinalizer(finalizer) 07:55:55 07:55:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:55:55 # which is executed last. 07:55:55 > assert not self._finalizers 07:55:55 ^^^^^^^^^^^^^^^^^^^^ 07:55:55 E AssertionError 07:55:55 07:55:55 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:55:55 =========================== short test summary info ============================ 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_01_get_tapi_topology_T100G 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_02_get_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_03_connect_rdmb 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_04_check_tapi_topos 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_05_disconnect_roadmb 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_06_connect_xpdra 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_07_check_tapi_topos 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_08_connect_rdma 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_09_connect_rdmc 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_10_check_tapi_topos 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_11_connect_xpdra_n1_to_roadma_pp1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_12_connect_roadma_pp1_to_xpdra_n1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_13_check_tapi_topology_T100G 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_14_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_15_connect_xpdrc 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_16_connect_xpdrc_n1_to_roadmc_pp1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_17_connect_roadmc_pp1_to_xpdrc_n1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_18_check_tapi_topology_T100G 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_19_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_20_connect_spdr_sa1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_21_connect_spdr_sc1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_22_check_tapi_topology_T100G 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_23_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_24_connect_sprda_n1_to_roadma_pp2 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_25_connect_roadma_pp2_to_spdra_n1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_26_connect_sprdc_n1_to_roadmc_pp2 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_27_connect_roadmc_pp2_to_spdrc_n1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_28_check_tapi_topology_T100G 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_29_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_30_add_oms_attributes 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_31_create_OCH_OTU4_service 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_32_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_33_create_ODU4_service 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_34_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_35_connect_sprda_2_n2_to_roadma_pp3 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_36_connect_roadma_pp3_to_spdra_2_n2 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_37_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_38_delete_ODU4_service 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_39_delete_OCH_OTU4_service 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_40_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_41_disconnect_xponders_from_roadm 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_42_check_tapi_topology_T0 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_43_get_tapi_topology_T100G 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_44_disconnect_roadma 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_45_disconnect_roadmc 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_46_check_tapi_topos 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_47_disconnect_xpdra 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_48_disconnect_xpdrc 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_49_disconnect_spdr_sa1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_50_disconnect_spdr_sc1 07:55:55 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_51_check_uninstall_Tapi_Feature 07:55:55 51 errors in 110.52s (0:01:50) 07:55:55 tests_tapi: exit 1 (110.80 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh tapi pid=4886 07:55:56 tests_tapi: FAIL ✖ in 2 minutes 2.33 seconds 07:55:56 tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:56:04 tests221: freeze> python -m pip freeze --all 07:56:04 tests221: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:56:04 tests221: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh 2.2.1 07:56:04 using environment variables from ./karaf221.env 07:56:04 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 07:57:35 EEEEEEEEEEEE [100%] 07:57:37 ==================================== ERRORS ==================================== 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_01_xpdr_device_connection _ 07:57:37 07:57:37 cls = 07:57:37 07:57:37 @classmethod 07:57:37 def setUpClass(cls): 07:57:37 > cls.processes = test_utils.start_tpce() 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 07:57:37 transportpce_tests/7.1/test01_portmapping.py:32: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 def start_tpce(): 07:57:37 if 'NO_ODL_STARTUP' in os.environ: 07:57:37 print('No OpenDaylight instance to start!') 07:57:37 return [] 07:57:37 print('starting OpenDaylight...') 07:57:37 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:57:37 process = start_lighty() 07:57:37 else: 07:57:37 process = start_karaf() 07:57:37 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:57:37 print('OpenDaylight started !') 07:57:37 else: 07:57:37 print('OpenDaylight failed to start !') 07:57:37 shutdown_process(process) 07:57:37 for pid in process_list: 07:57:37 shutdown_process(pid) 07:57:37 > sys.exit(1) 07:57:37 E SystemExit: 1 07:57:37 07:57:37 transportpce_tests/common/test_utils.py:232: SystemExit 07:57:37 ---------------------------- Captured stdout setup ----------------------------- 07:57:37 starting OpenDaylight... 07:57:37 starting KARAF (karaf71) TransportPCE build... 07:57:37 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_02_xpdr_device_connected __ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a0e6700> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_portmapping_info __ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a10b740> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_04_tpdr_portmapping_NETWORK1 _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3c800ea0> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_05_tpdr_portmapping_CLIENT1 _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a0e6700> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK1 _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3b8b3e20> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a0e6700> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 ___ ERROR at setup of TestTransportPCEPortmapping.test_08_check_mccapprofile ___ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a10b600> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 __ ERROR at setup of TestTransportPCEPortmapping.test_09_mpdr_switching_pool ___ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a109d00> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a10b920> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_device_disconnected _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a10b7e0> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_device_not_connected _ 07:57:37 07:57:37 cls = 07:57:37 func = . at 0x7f5d3a0e6700> 07:57:37 when = 'setup' 07:57:37 reraise = (, ) 07:57:37 07:57:37 @classmethod 07:57:37 def from_call( 07:57:37 cls, 07:57:37 func: Callable[[], TResult], 07:57:37 when: Literal["collect", "setup", "call", "teardown"], 07:57:37 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:37 ) -> CallInfo[TResult]: 07:57:37 """Call func, wrapping the result in a CallInfo. 07:57:37 07:57:37 :param func: 07:57:37 The function to call. Called without arguments. 07:57:37 :type func: Callable[[], _pytest.runner.TResult] 07:57:37 :param when: 07:57:37 The phase in which the function is called. 07:57:37 :param reraise: 07:57:37 Exception or exceptions that shall propagate if raised by the 07:57:37 function, instead of being wrapped in the CallInfo. 07:57:37 """ 07:57:37 excinfo = None 07:57:37 instant = timing.Instant() 07:57:37 try: 07:57:37 > result: TResult | None = func() 07:57:37 ^^^^^^ 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:37 lambda: runtest_hook(item=item, **kwds), 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:37 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:37 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:37 yield 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:37 return (yield) 07:57:37 ^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:37 item.session._setupstate.setup(item) 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:37 col.setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:37 super().setup() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:37 self._request._fillfixtures() 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:37 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:37 fixturedef = self._get_active_fixturedef(argname) 07:57:37 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:37 fixturedef.execute(request=subrequest) 07:57:37 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:37 07:57:37 self = 07:57:37 request = > 07:57:37 07:57:37 def execute(self, request: SubRequest) -> FixtureValue: 07:57:37 """Return the value of this fixture, executing it if not cached.""" 07:57:37 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:37 # This needs to be done before checking if we have a cached value, since 07:57:37 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:37 # parametrization, they finalize themselves and fixtures depending on it 07:57:37 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:37 # See #4871 07:57:37 requested_fixtures_that_should_finalize_us = [] 07:57:37 for argname in self.argnames: 07:57:37 fixturedef = request._get_active_fixturedef(argname) 07:57:37 # Saves requested fixtures in a list so we later can add our finalizer 07:57:37 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:37 # down first. This is generally handled by SetupState, but still currently 07:57:37 # needed when this fixture is not parametrized but depends on a parametrized 07:57:37 # fixture. 07:57:37 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:37 07:57:37 # Check for (and return) cached value/exception. 07:57:37 if self.cached_result is not None: 07:57:37 request_cache_key = self.cache_key(request) 07:57:37 cache_key = self.cached_result[1] 07:57:37 try: 07:57:37 # Attempt to make a normal == check: this might fail for objects 07:57:37 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:37 cache_hit = bool(request_cache_key == cache_key) 07:57:37 except (ValueError, RuntimeError): 07:57:37 # If the comparison raises, use 'is' as fallback. 07:57:37 cache_hit = request_cache_key is cache_key 07:57:37 07:57:37 if cache_hit: 07:57:37 if self.cached_result[2] is not None: 07:57:37 exc, exc_tb = self.cached_result[2] 07:57:37 raise exc.with_traceback(exc_tb) 07:57:37 else: 07:57:37 return self.cached_result[0] 07:57:37 # We have a previous but differently parametrized fixture instance 07:57:37 # so we need to tear it down before creating a new one. 07:57:37 self.finish(request) 07:57:37 assert self.cached_result is None 07:57:37 07:57:37 # Add finalizer to requested fixtures we saved previously. 07:57:37 # We make sure to do this after checking for cached value to avoid 07:57:37 # adding our finalizer multiple times. (#12135) 07:57:37 finalizer = functools.partial(self.finish, request=request) 07:57:37 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:37 parent_fixture.addfinalizer(finalizer) 07:57:37 07:57:37 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:37 # which is executed last. 07:57:37 > assert not self._finalizers 07:57:37 ^^^^^^^^^^^^^^^^^^^^ 07:57:37 E AssertionError 07:57:37 07:57:37 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:37 =========================== short test summary info ============================ 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_xpdr_device_connection 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_xpdr_device_connected 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_portmapping_info 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_tpdr_portmapping_NETWORK1 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_tpdr_portmapping_CLIENT1 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK1 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_check_mccapprofile 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_mpdr_switching_pool 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_device_disconnected 07:57:37 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_device_not_connected 07:57:37 12 errors in 102.36s (0:01:42) 07:57:37 tests71: exit 1 (102.64 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh 7.1 pid=5049 07:57:45 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 07:57:51 ==================================== ERRORS ==================================== 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_01_rdm_device_connection __ 07:57:51 07:57:51 cls = 07:57:51 07:57:51 @classmethod 07:57:51 def setUpClass(cls): 07:57:51 > cls.processes = test_utils.start_tpce() 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 07:57:51 transportpce_tests/2.2.1/test01_portmapping.py:33: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 def start_tpce(): 07:57:51 if 'NO_ODL_STARTUP' in os.environ: 07:57:51 print('No OpenDaylight instance to start!') 07:57:51 return [] 07:57:51 print('starting OpenDaylight...') 07:57:51 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:57:51 process = start_lighty() 07:57:51 else: 07:57:51 process = start_karaf() 07:57:51 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:57:51 print('OpenDaylight started !') 07:57:51 else: 07:57:51 print('OpenDaylight failed to start !') 07:57:51 shutdown_process(process) 07:57:51 for pid in process_list: 07:57:51 shutdown_process(pid) 07:57:51 > sys.exit(1) 07:57:51 E SystemExit: 1 07:57:51 07:57:51 transportpce_tests/common/test_utils.py:232: SystemExit 07:57:51 ---------------------------- Captured stdout setup ----------------------------- 07:57:51 starting OpenDaylight... 07:57:51 starting KARAF (karaf221) TransportPCE build... 07:57:51 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:57:51 __ ERROR at setup of TestTransportPCEPortmapping.test_02_rdm_device_connected __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce717560> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 __ ERROR at setup of TestTransportPCEPortmapping.test_03_rdm_portmapping_info __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce75bec0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3cfee6a20> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3d0e2c4a0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG1_PP3_TXRX _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b6ca0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_07_rdm_portmapping_SRG3_PP1_TXRX _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce75bec0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_08_xpdr_device_connection _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3cfee6a20> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_09_xpdr_device_connected __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b4cc0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_portmapping_info __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7176a0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_portmapping_NETWORK1 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce75bec0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_portmapping_XPDR2_NETWORK1 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b4360> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_13_xpdr_portmapping_XPDR1_CLIENT1 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7176a0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_14_xpdr_portmapping_XPDR1_CLIENT2 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b79c0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_15_spdr_device_connection _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b7880> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_16_spdr_device_connected __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_17_spdr_portmapping_info __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716020> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_18_spdr_switching_pool_1 __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_19_spdr_switching_pool_2 __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716020> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_20_spdr_switching_pool_3 __ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b7b00> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_21_spdr_portmapping_mappings _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_22_spdr_portmapping_XPDR1_CLIENT1 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b4b80> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_23_spdr_portmapping_XPDR1_NETWORK1 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b7c40> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_24_spdr_portmapping_XPDR2_CLIENT2 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_25_spdr_portmapping_XPDR2_NETWORK2 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b7880> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_26_spdr_portmapping_XPDR3_CLIENT3 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b4360> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_27_spdr_portmapping_XPDR3_NETWORK1 _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_28_spdr_device_disconnection _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b71a0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_29_xpdr_device_disconnected _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b7100> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_30_xpdr_device_disconnection _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_31_xpdr_device_disconnected _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b65c0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_32_xpdr_device_not_connected _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b6ca0> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_33_rdm_device_disconnection _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_34_rdm_device_disconnected _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce7b7740> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 _ ERROR at setup of TestTransportPCEPortmapping.test_35_rdm_device_not_connected _ 07:57:51 07:57:51 cls = 07:57:51 func = . at 0x7fe3ce716340> 07:57:51 when = 'setup' 07:57:51 reraise = (, ) 07:57:51 07:57:51 @classmethod 07:57:51 def from_call( 07:57:51 cls, 07:57:51 func: Callable[[], TResult], 07:57:51 when: Literal["collect", "setup", "call", "teardown"], 07:57:51 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:57:51 ) -> CallInfo[TResult]: 07:57:51 """Call func, wrapping the result in a CallInfo. 07:57:51 07:57:51 :param func: 07:57:51 The function to call. Called without arguments. 07:57:51 :type func: Callable[[], _pytest.runner.TResult] 07:57:51 :param when: 07:57:51 The phase in which the function is called. 07:57:51 :param reraise: 07:57:51 Exception or exceptions that shall propagate if raised by the 07:57:51 function, instead of being wrapped in the CallInfo. 07:57:51 """ 07:57:51 excinfo = None 07:57:51 instant = timing.Instant() 07:57:51 try: 07:57:51 > result: TResult | None = func() 07:57:51 ^^^^^^ 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:57:51 lambda: runtest_hook(item=item, **kwds), 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:57:51 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:57:51 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:57:51 yield 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:57:51 return (yield) 07:57:51 ^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:57:51 item.session._setupstate.setup(item) 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:57:51 col.setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:57:51 super().setup() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:57:51 self._request._fillfixtures() 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:57:51 item.funcargs[argname] = self.getfixturevalue(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:57:51 fixturedef = self._get_active_fixturedef(argname) 07:57:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:57:51 fixturedef.execute(request=subrequest) 07:57:51 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:57:51 07:57:51 self = 07:57:51 request = > 07:57:51 07:57:51 def execute(self, request: SubRequest) -> FixtureValue: 07:57:51 """Return the value of this fixture, executing it if not cached.""" 07:57:51 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:57:51 # This needs to be done before checking if we have a cached value, since 07:57:51 # if a dependent fixture has their cache invalidated, e.g. due to 07:57:51 # parametrization, they finalize themselves and fixtures depending on it 07:57:51 # (which will likely include this fixture) setting `self.cached_result = None`. 07:57:51 # See #4871 07:57:51 requested_fixtures_that_should_finalize_us = [] 07:57:51 for argname in self.argnames: 07:57:51 fixturedef = request._get_active_fixturedef(argname) 07:57:51 # Saves requested fixtures in a list so we later can add our finalizer 07:57:51 # to them, ensuring that if a requested fixture gets torn down we get torn 07:57:51 # down first. This is generally handled by SetupState, but still currently 07:57:51 # needed when this fixture is not parametrized but depends on a parametrized 07:57:51 # fixture. 07:57:51 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:57:51 07:57:51 # Check for (and return) cached value/exception. 07:57:51 if self.cached_result is not None: 07:57:51 request_cache_key = self.cache_key(request) 07:57:51 cache_key = self.cached_result[1] 07:57:51 try: 07:57:51 # Attempt to make a normal == check: this might fail for objects 07:57:51 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:57:51 cache_hit = bool(request_cache_key == cache_key) 07:57:51 except (ValueError, RuntimeError): 07:57:51 # If the comparison raises, use 'is' as fallback. 07:57:51 cache_hit = request_cache_key is cache_key 07:57:51 07:57:51 if cache_hit: 07:57:51 if self.cached_result[2] is not None: 07:57:51 exc, exc_tb = self.cached_result[2] 07:57:51 raise exc.with_traceback(exc_tb) 07:57:51 else: 07:57:51 return self.cached_result[0] 07:57:51 # We have a previous but differently parametrized fixture instance 07:57:51 # so we need to tear it down before creating a new one. 07:57:51 self.finish(request) 07:57:51 assert self.cached_result is None 07:57:51 07:57:51 # Add finalizer to requested fixtures we saved previously. 07:57:51 # We make sure to do this after checking for cached value to avoid 07:57:51 # adding our finalizer multiple times. (#12135) 07:57:51 finalizer = functools.partial(self.finish, request=request) 07:57:51 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:57:51 parent_fixture.addfinalizer(finalizer) 07:57:51 07:57:51 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:57:51 # which is executed last. 07:57:51 > assert not self._finalizers 07:57:51 ^^^^^^^^^^^^^^^^^^^^ 07:57:51 E AssertionError 07:57:51 07:57:51 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:57:51 =========================== short test summary info ============================ 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_rdm_device_connection 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_rdm_device_connected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_rdm_portmapping_info 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG1_PP3_TXRX 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_rdm_portmapping_SRG3_PP1_TXRX 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_xpdr_device_connection 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_xpdr_device_connected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_portmapping_info 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_portmapping_NETWORK1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_portmapping_XPDR2_NETWORK1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_13_xpdr_portmapping_XPDR1_CLIENT1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_14_xpdr_portmapping_XPDR1_CLIENT2 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_15_spdr_device_connection 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_16_spdr_device_connected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_17_spdr_portmapping_info 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_18_spdr_switching_pool_1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_19_spdr_switching_pool_2 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_20_spdr_switching_pool_3 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_21_spdr_portmapping_mappings 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_22_spdr_portmapping_XPDR1_CLIENT1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_23_spdr_portmapping_XPDR1_NETWORK1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_24_spdr_portmapping_XPDR2_CLIENT2 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_25_spdr_portmapping_XPDR2_NETWORK2 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_26_spdr_portmapping_XPDR3_CLIENT3 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_27_spdr_portmapping_XPDR3_NETWORK1 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_28_spdr_device_disconnection 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_29_xpdr_device_disconnected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_30_xpdr_device_disconnection 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_31_xpdr_device_disconnected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_32_xpdr_device_not_connected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_33_rdm_device_disconnection 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_34_rdm_device_disconnected 07:57:51 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_35_rdm_device_not_connected 07:57:51 35 errors in 106.66s (0:01:46) 07:57:51 tests71: FAIL ✖ in 1 minute 49.96 seconds 07:57:51 tests221: exit 1 (106.92 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh 2.2.1 pid=5126 07:57:51 tests221: FAIL ✖ in 1 minute 55.61 seconds 07:57:51 tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-vanadium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-vanadium/tests/test-requirements.txt 07:57:59 tests_hybrid: freeze> python -m pip freeze --all 07:57:59 tests_hybrid: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 07:57:59 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh hybrid 07:57:59 using environment variables from ./karaf221.env 07:57:59 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 07:59:40 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 07:59:49 ==================================== ERRORS ==================================== 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_01_connect_xpdrA _ 07:59:49 07:59:49 cls = 07:59:49 07:59:49 @classmethod 07:59:49 def setUpClass(cls): 07:59:49 > cls.processes = test_utils.start_tpce() 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 07:59:49 transportpce_tests/hybrid/test01_device_change_notifications.py:77: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 def start_tpce(): 07:59:49 if 'NO_ODL_STARTUP' in os.environ: 07:59:49 print('No OpenDaylight instance to start!') 07:59:49 return [] 07:59:49 print('starting OpenDaylight...') 07:59:49 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 07:59:49 process = start_lighty() 07:59:49 else: 07:59:49 process = start_karaf() 07:59:49 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 07:59:49 print('OpenDaylight started !') 07:59:49 else: 07:59:49 print('OpenDaylight failed to start !') 07:59:49 shutdown_process(process) 07:59:49 for pid in process_list: 07:59:49 shutdown_process(pid) 07:59:49 > sys.exit(1) 07:59:49 E SystemExit: 1 07:59:49 07:59:49 transportpce_tests/common/test_utils.py:232: SystemExit 07:59:49 ---------------------------- Captured stdout setup ----------------------------- 07:59:49 starting OpenDaylight... 07:59:49 starting KARAF (karaf221) TransportPCE build... 07:59:49 Pattern not found after 100 seconds! OpenDaylight failed to start ! 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_02_connect_xpdrC _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a575023e0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_03_connect_rdmA _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755eac0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_04_connect_rdmC _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a58c7e7a0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_05_connect_xpdrA_N1_to_roadmA_PP1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a57503ba0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_06_connect_roadmA_PP1_to_xpdrA_N1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a57503f60> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_07_connect_xpdrC_N1_to_roadmC_PP1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a57503ba0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_08_connect_roadmC_PP1_to_xpdrC_N1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755e3e0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_09_add_omsAttributes_ROADMA_ROADMC _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0360> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_10_add_omsAttributes_ROADMC_ROADMA _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a59bc58a0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_11_create_eth_service1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a57503f60> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_12_get_eth_service1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f420> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_13_change_status_line_port_xpdra _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0040> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_14_check_update_portmapping _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a59bc58a0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_15_check_update_openroadm_topo _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f880> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_16_check_update_service1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a59bc58a0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_17_restore_status_line_port_xpdra _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0220> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_18_check_update_portmapping_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f880> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_19_check_update_openroadm_topo_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a59bc58a0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_20_check_update_service1_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0220> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_21_change_status_port_roadma_srg _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_22_check_update_portmapping _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0220> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_23_check_update_openroadm_topo _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755c040> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_24_restore_status_port_roadma_srg _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_25_check_update_portmapping_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755c040> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_26_check_update_openroadm_topo_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755e660> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_27_check_update_service1_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_28_change_status_line_port_roadma_deg _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755ede0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_29_check_update_portmapping _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755eca0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_30_check_update_openroadm_topo _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_31_restore_status_line_port_roadma_srg _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755fd80> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_32_check_update_portmapping_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f6a0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_33_check_update_openroadm_topo_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_34_check_update_service1_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755fc40> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_35_change_status_line_port_xpdrc _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_36_check_update_portmapping _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f600> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_37_check_update_openroadm_topo _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f740> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_38_restore_status_line_port_xpdrc _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_39_check_update_portmapping_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755fd80> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_40_check_update_openroadm_topo_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755eca0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_41_check_update_service1_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_42_change_status_port_roadma_srg _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755c040> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_43_check_update_portmapping _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f740> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_44_check_update_openroadm_topo _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755f880> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_45_check_update_service1_ok _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_46_delete_eth_service1 _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755e660> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_47_disconnect_xponders_from_roadm _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_48_disconnect_XPDRA _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755eb60> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_49_disconnect_XPDRC _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755ede0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_50_disconnect_ROADMA _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a574c0400> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_51_disconnect_ROADMC _ 07:59:49 07:59:49 cls = 07:59:49 func = . at 0x7f6a5755e3e0> 07:59:49 when = 'setup' 07:59:49 reraise = (, ) 07:59:49 07:59:49 @classmethod 07:59:49 def from_call( 07:59:49 cls, 07:59:49 func: Callable[[], TResult], 07:59:49 when: Literal["collect", "setup", "call", "teardown"], 07:59:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 07:59:49 ) -> CallInfo[TResult]: 07:59:49 """Call func, wrapping the result in a CallInfo. 07:59:49 07:59:49 :param func: 07:59:49 The function to call. Called without arguments. 07:59:49 :type func: Callable[[], _pytest.runner.TResult] 07:59:49 :param when: 07:59:49 The phase in which the function is called. 07:59:49 :param reraise: 07:59:49 Exception or exceptions that shall propagate if raised by the 07:59:49 function, instead of being wrapped in the CallInfo. 07:59:49 """ 07:59:49 excinfo = None 07:59:49 instant = timing.Instant() 07:59:49 try: 07:59:49 > result: TResult | None = func() 07:59:49 ^^^^^^ 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 07:59:49 lambda: runtest_hook(item=item, **kwds), 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 07:59:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 07:59:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 07:59:49 yield 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 07:59:49 return (yield) 07:59:49 ^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 07:59:49 item.session._setupstate.setup(item) 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 07:59:49 col.setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 07:59:49 super().setup() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 07:59:49 self._request._fillfixtures() 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 07:59:49 item.funcargs[argname] = self.getfixturevalue(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 07:59:49 fixturedef = self._get_active_fixturedef(argname) 07:59:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 07:59:49 fixturedef.execute(request=subrequest) 07:59:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 07:59:49 07:59:49 self = 07:59:49 request = > 07:59:49 07:59:49 def execute(self, request: SubRequest) -> FixtureValue: 07:59:49 """Return the value of this fixture, executing it if not cached.""" 07:59:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 07:59:49 # This needs to be done before checking if we have a cached value, since 07:59:49 # if a dependent fixture has their cache invalidated, e.g. due to 07:59:49 # parametrization, they finalize themselves and fixtures depending on it 07:59:49 # (which will likely include this fixture) setting `self.cached_result = None`. 07:59:49 # See #4871 07:59:49 requested_fixtures_that_should_finalize_us = [] 07:59:49 for argname in self.argnames: 07:59:49 fixturedef = request._get_active_fixturedef(argname) 07:59:49 # Saves requested fixtures in a list so we later can add our finalizer 07:59:49 # to them, ensuring that if a requested fixture gets torn down we get torn 07:59:49 # down first. This is generally handled by SetupState, but still currently 07:59:49 # needed when this fixture is not parametrized but depends on a parametrized 07:59:49 # fixture. 07:59:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 07:59:49 07:59:49 # Check for (and return) cached value/exception. 07:59:49 if self.cached_result is not None: 07:59:49 request_cache_key = self.cache_key(request) 07:59:49 cache_key = self.cached_result[1] 07:59:49 try: 07:59:49 # Attempt to make a normal == check: this might fail for objects 07:59:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 07:59:49 cache_hit = bool(request_cache_key == cache_key) 07:59:49 except (ValueError, RuntimeError): 07:59:49 # If the comparison raises, use 'is' as fallback. 07:59:49 cache_hit = request_cache_key is cache_key 07:59:49 07:59:49 if cache_hit: 07:59:49 if self.cached_result[2] is not None: 07:59:49 exc, exc_tb = self.cached_result[2] 07:59:49 raise exc.with_traceback(exc_tb) 07:59:49 else: 07:59:49 return self.cached_result[0] 07:59:49 # We have a previous but differently parametrized fixture instance 07:59:49 # so we need to tear it down before creating a new one. 07:59:49 self.finish(request) 07:59:49 assert self.cached_result is None 07:59:49 07:59:49 # Add finalizer to requested fixtures we saved previously. 07:59:49 # We make sure to do this after checking for cached value to avoid 07:59:49 # adding our finalizer multiple times. (#12135) 07:59:49 finalizer = functools.partial(self.finish, request=request) 07:59:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 07:59:49 parent_fixture.addfinalizer(finalizer) 07:59:49 07:59:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 07:59:49 # which is executed last. 07:59:49 > assert not self._finalizers 07:59:49 ^^^^^^^^^^^^^^^^^^^^ 07:59:49 E AssertionError 07:59:49 07:59:49 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 07:59:49 =========================== short test summary info ============================ 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_01_connect_xpdrA 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_02_connect_xpdrC 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_03_connect_rdmA 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_04_connect_rdmC 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_05_connect_xpdrA_N1_to_roadmA_PP1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_06_connect_roadmA_PP1_to_xpdrA_N1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_07_connect_xpdrC_N1_to_roadmC_PP1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_08_connect_roadmC_PP1_to_xpdrC_N1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_09_add_omsAttributes_ROADMA_ROADMC 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_10_add_omsAttributes_ROADMC_ROADMA 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_11_create_eth_service1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_12_get_eth_service1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_13_change_status_line_port_xpdra 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_14_check_update_portmapping 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_15_check_update_openroadm_topo 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_16_check_update_service1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_17_restore_status_line_port_xpdra 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_18_check_update_portmapping_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_19_check_update_openroadm_topo_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_20_check_update_service1_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_21_change_status_port_roadma_srg 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_22_check_update_portmapping 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_23_check_update_openroadm_topo 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_24_restore_status_port_roadma_srg 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_25_check_update_portmapping_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_26_check_update_openroadm_topo_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_27_check_update_service1_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_28_change_status_line_port_roadma_deg 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_29_check_update_portmapping 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_30_check_update_openroadm_topo 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_31_restore_status_line_port_roadma_srg 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_32_check_update_portmapping_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_33_check_update_openroadm_topo_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_34_check_update_service1_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_35_change_status_line_port_xpdrc 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_36_check_update_portmapping 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_37_check_update_openroadm_topo 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_38_restore_status_line_port_xpdrc 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_39_check_update_portmapping_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_40_check_update_openroadm_topo_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_41_check_update_service1_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_42_change_status_port_roadma_srg 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_43_check_update_portmapping 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_44_check_update_openroadm_topo 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_45_check_update_service1_ok 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_46_delete_eth_service1 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_47_disconnect_xponders_from_roadm 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_48_disconnect_XPDRA 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_49_disconnect_XPDRC 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_50_disconnect_ROADMA 07:59:49 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_51_disconnect_ROADMC 07:59:49 51 errors in 109.28s (0:01:49) 07:59:49 tests_hybrid: exit 1 (109.57 seconds) /w/workspace/transportpce-tox-verify-vanadium/tests> ./launch_tests.sh hybrid pid=5246 07:59:49 buildcontroller: FAIL code 1 (44.28=setup[9.37]+cmd[34.92] seconds) 07:59:49 sims: OK (11.06=setup[8.30]+cmd[2.76] seconds) 07:59:49 build_karaf_tests121: FAIL code 127 (18.96=setup[6.75]+cmd[12.21] seconds) 07:59:49 testsPCE: FAIL code 1 (262.87=setup[138.84]+cmd[124.03] seconds) 07:59:49 tests121: FAIL code 1 (116.16=setup[11.75]+cmd[104.42] seconds) 07:59:49 build_karaf_tests221: FAIL code 127 (19.72=setup[7.14]+cmd[12.58] seconds) 07:59:49 tests_tapi: FAIL code 1 (122.33=setup[11.53]+cmd[110.80] seconds) 07:59:49 tests221: FAIL code 1 (115.61=setup[8.69]+cmd[106.92] seconds) 07:59:49 build_karaf_tests71: FAIL code 127 (18.31=setup[7.68]+cmd[10.64] seconds) 07:59:49 tests71: FAIL code 1 (109.96=setup[7.31]+cmd[102.64] seconds) 07:59:49 build_karaf_tests190: FAIL code 127 (16.44=setup[10.63]+cmd[5.81] seconds) 07:59:49 tests190: FAIL code 1 (114.01=setup[11.79]+cmd[102.21] seconds) 07:59:49 tests_hybrid: FAIL code 1 (118.12=setup[8.54]+cmd[109.57] seconds) 07:59:49 buildlighty: FAIL code 9 (117.39=setup[8.90]+cmd[108.49] seconds) 07:59:49 docs: OK (19.47=setup[16.94]+cmd[2.53] seconds) 07:59:49 docs-linkcheck: OK (30.25=setup[17.72]+cmd[12.53] seconds) 07:59:49 checkbashisms: OK (3.09=setup[1.91]+cmd[0.00,0.04,1.14] seconds) 07:59:49 pre-commit: OK (44.88=setup[2.72]+cmd[0.00,0.01,35.54,6.61] seconds) 07:59:49 pylint: OK (26.26=setup[4.88]+cmd[21.38] seconds) 07:59:49 evaluation failed :( (683.40 seconds) 07:59:49 + tox_status=1 07:59:49 + echo '---> Completed tox runs' 07:59:49 ---> Completed tox runs 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/build_karaf_tests121/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=build_karaf_tests121 07:59:49 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/build_karaf_tests121 07:59:49 + for i in .tox/*/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 ++ echo .tox/build_karaf_tests190/log 07:59:49 + tox_env=build_karaf_tests190 07:59:49 + cp -r .tox/build_karaf_tests190/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/build_karaf_tests190 07:59:49 + for i in .tox/*/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 ++ echo .tox/build_karaf_tests221/log 07:59:49 + tox_env=build_karaf_tests221 07:59:49 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/build_karaf_tests221 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/build_karaf_tests71/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=build_karaf_tests71 07:59:49 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/build_karaf_tests71 07:59:49 + for i in .tox/*/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 ++ echo .tox/buildcontroller/log 07:59:49 + tox_env=buildcontroller 07:59:49 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/buildcontroller 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/buildlighty/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=buildlighty 07:59:49 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/buildlighty 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/checkbashisms/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=checkbashisms 07:59:49 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/checkbashisms 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/docs-linkcheck/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=docs-linkcheck 07:59:49 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/docs-linkcheck 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/docs/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=docs 07:59:49 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/docs 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/pre-commit/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=pre-commit 07:59:49 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/pre-commit 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/pylint/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=pylint 07:59:49 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/pylint 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/sims/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=sims 07:59:49 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/sims 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/tests121/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=tests121 07:59:49 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tests121 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/tests190/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=tests190 07:59:49 + cp -r .tox/tests190/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tests190 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/tests221/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=tests221 07:59:49 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tests221 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/tests71/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=tests71 07:59:49 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tests71 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/testsPCE/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=testsPCE 07:59:49 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/testsPCE 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/tests_hybrid/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=tests_hybrid 07:59:49 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tests_hybrid 07:59:49 + for i in .tox/*/log 07:59:49 ++ echo .tox/tests_tapi/log 07:59:49 ++ awk -F/ '{print $2}' 07:59:49 + tox_env=tests_tapi 07:59:49 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-vanadium/archives/tox/tests_tapi 07:59:49 + DOC_DIR=docs/_build/html 07:59:49 + [[ -d docs/_build/html ]] 07:59:49 + echo '---> Archiving generated docs' 07:59:49 ---> Archiving generated docs 07:59:49 + mv docs/_build/html /w/workspace/transportpce-tox-verify-vanadium/archives/docs 07:59:49 + echo '---> tox-run.sh ends' 07:59:49 ---> tox-run.sh ends 07:59:49 + test 1 -eq 0 07:59:49 + exit 1 07:59:49 ++ '[' 1 = 1 ']' 07:59:49 ++ '[' -x /usr/bin/clear_console ']' 07:59:49 ++ /usr/bin/clear_console -q 07:59:49 Build step 'Execute shell' marked build as failure 07:59:49 $ ssh-agent -k 07:59:49 unset SSH_AUTH_SOCK; 07:59:49 unset SSH_AGENT_PID; 07:59:49 echo Agent pid 1563 killed; 07:59:49 [ssh-agent] Stopped. 07:59:49 [PostBuildScript] - [INFO] Executing post build scripts. 07:59:49 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins4585466230978174335.sh 07:59:49 ---> sysstat.sh 07:59:50 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins9485539712825308986.sh 07:59:50 ---> package-listing.sh 07:59:50 ++ facter osfamily 07:59:50 ++ tr '[:upper:]' '[:lower:]' 07:59:50 + OS_FAMILY=debian 07:59:50 + workspace=/w/workspace/transportpce-tox-verify-vanadium 07:59:50 + START_PACKAGES=/tmp/packages_start.txt 07:59:50 + END_PACKAGES=/tmp/packages_end.txt 07:59:50 + DIFF_PACKAGES=/tmp/packages_diff.txt 07:59:50 + PACKAGES=/tmp/packages_start.txt 07:59:50 + '[' /w/workspace/transportpce-tox-verify-vanadium ']' 07:59:50 + PACKAGES=/tmp/packages_end.txt 07:59:50 + case "${OS_FAMILY}" in 07:59:50 + dpkg -l 07:59:50 + grep '^ii' 07:59:50 + '[' -f /tmp/packages_start.txt ']' 07:59:50 + '[' -f /tmp/packages_end.txt ']' 07:59:50 + diff /tmp/packages_start.txt /tmp/packages_end.txt 07:59:50 + '[' /w/workspace/transportpce-tox-verify-vanadium ']' 07:59:50 + mkdir -p /w/workspace/transportpce-tox-verify-vanadium/archives/ 07:59:50 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-vanadium/archives/ 07:59:50 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins14959609278229148081.sh 07:59:50 ---> capture-instance-metadata.sh 07:59:50 Setup pyenv: 07:59:50 system 07:59:50 3.8.20 07:59:50 3.9.20 07:59:50 3.10.15 07:59:51 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-vanadium/.python-version) 07:59:51 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-4Sjw from file:/tmp/.os_lf_venv 07:59:51 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 07:59:53 lf-activate-venv(): INFO: Installing additional packages: lftools 08:00:07 lf-activate-venv(): INFO: Adding /tmp/venv-4Sjw/bin to PATH 08:00:07 INFO: Running in OpenStack, capturing instance metadata 08:00:08 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins9683246402170386341.sh 08:00:08 provisioning config files... 08:00:08 Could not find credentials [logs] for transportpce-tox-verify-vanadium #31 08:00:08 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-vanadium@tmp/config14254854540448974976tmp 08:00:08 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 08:00:08 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 08:00:08 provisioning config files... 08:00:08 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 08:00:08 [EnvInject] - Injecting environment variables from a build step. 08:00:08 [EnvInject] - Injecting as environment variables the properties content 08:00:08 SERVER_ID=logs 08:00:08 08:00:08 [EnvInject] - Variables injected successfully. 08:00:08 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins3646529787648212591.sh 08:00:08 ---> create-netrc.sh 08:00:08 WARN: Log server credential not found. 08:00:08 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins2723085017064720718.sh 08:00:08 ---> python-tools-install.sh 08:00:08 Setup pyenv: 08:00:09 system 08:00:09 3.8.20 08:00:09 3.9.20 08:00:09 3.10.15 08:00:09 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-vanadium/.python-version) 08:00:09 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-4Sjw from file:/tmp/.os_lf_venv 08:00:09 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 08:00:11 lf-activate-venv(): INFO: Installing additional packages: lftools 08:00:21 lf-activate-venv(): INFO: Adding /tmp/venv-4Sjw/bin to PATH 08:00:21 [transportpce-tox-verify-vanadium] $ /bin/sh /tmp/jenkins5557257281828584985.sh 08:00:21 ---> uv-install.sh 08:00:21 uv 0.12.10 is already installed 08:00:21 uvx 0.12.10 (x86_64-unknown-linux-gnu) 08:00:21 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins11172275630250730872.sh 08:00:21 ---> sudo-logs.sh 08:00:21 Archiving 'sudo' log.. 08:00:21 [transportpce-tox-verify-vanadium] $ /bin/bash /tmp/jenkins12831802793324457817.sh 08:00:21 ---> job-cost.sh 08:00:21 INFO: Activating Python virtual environment... 08:00:21 Setup pyenv: 08:00:21 system 08:00:21 3.8.20 08:00:21 3.9.20 08:00:21 3.10.15 08:00:21 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-vanadium/.python-version) 08:00:22 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-4Sjw from file:/tmp/.os_lf_venv 08:00:22 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 08:00:23 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 08:00:33 lf-activate-venv(): INFO: Adding /tmp/venv-4Sjw/bin to PATH 08:00:33 INFO: No stack-cost file found 08:00:33 INFO: Instance uptime: 886s 08:00:33 INFO: Fetching instance metadata (attempt 1 of 3)... 08:00:33 DEBUG: URL: http://169.254.169.254/latest/meta-data/instance-type 08:00:33 INFO: Successfully fetched instance metadata 08:00:33 INFO: Instance type: v3-standard-4 08:00:33 INFO: Retrieving pricing info for: v3-standard-4 08:00:33 INFO: Fetching Vexxhost pricing API (attempt 1 of 3)... 08:00:33 DEBUG: URL: https://pricing.vexxhost.net/v1/pricing/v3-standard-4/cost?seconds=886 08:00:33 INFO: Successfully fetched Vexxhost pricing API 08:00:33 INFO: Retrieved cost: 0.11 08:00:33 INFO: Retrieved resource: v3-standard-4 08:00:33 INFO: Creating archive directory: /w/workspace/transportpce-tox-verify-vanadium/archives/cost 08:00:33 INFO: Archiving costs to: /w/workspace/transportpce-tox-verify-vanadium/archives/cost.csv 08:00:33 INFO: Successfully archived job cost data 08:00:33 DEBUG: Cost data: transportpce-tox-verify-vanadium,31,2026-09-07 08:00:33,v3-standard-4,886,0.11,0.00,FAILURE 08:00:33 [transportpce-tox-verify-vanadium] $ /bin/bash -l /tmp/jenkins2335687995874045169.sh 08:00:33 ---> logs-deploy.sh 08:00:33 Setup pyenv: 08:00:33 system 08:00:33 3.8.20 08:00:33 3.9.20 08:00:33 3.10.15 08:00:33 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-vanadium/.python-version) 08:00:33 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-4Sjw from file:/tmp/.os_lf_venv 08:00:33 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 08:00:35 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 08:00:45 lf-activate-venv(): INFO: Adding /tmp/venv-4Sjw/bin to PATH 08:00:45 WARNING: Nexus logging server not set 08:00:45 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-vanadium/31/ 08:00:45 INFO: archiving logs to S3 08:00:46 ---> uname -a: 08:00:46 Linux prd-ubuntu2204-docker-4c-16g-2837 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux 08:00:46 08:00:46 08:00:46 ---> lscpu: 08:00:46 Architecture: x86_64 08:00:46 CPU op-mode(s): 32-bit, 64-bit 08:00:46 Address sizes: 40 bits physical, 48 bits virtual 08:00:46 Byte Order: Little Endian 08:00:46 CPU(s): 4 08:00:46 On-line CPU(s) list: 0-3 08:00:46 Vendor ID: AuthenticAMD 08:00:46 Model name: AMD EPYC-Rome Processor 08:00:46 CPU family: 23 08:00:46 Model: 49 08:00:46 Thread(s) per core: 1 08:00:46 Core(s) per socket: 1 08:00:46 Socket(s): 4 08:00:46 Stepping: 0 08:00:46 BogoMIPS: 5600.00 08:00:46 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy svm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 clzero xsaveerptr wbnoinvd arat npt lbrv nrip_save tsc_scale vmcb_clean flushbyasid pausefilter pfthreshold v_vmsave_vmload vgif umip rdpid arch_capabilities 08:00:46 Virtualization: AMD-V 08:00:46 Hypervisor vendor: KVM 08:00:46 Virtualization type: full 08:00:46 L1d cache: 128 KiB (4 instances) 08:00:46 L1i cache: 128 KiB (4 instances) 08:00:46 L2 cache: 2 MiB (4 instances) 08:00:46 L3 cache: 64 MiB (4 instances) 08:00:46 NUMA node(s): 1 08:00:46 NUMA node0 CPU(s): 0-3 08:00:46 Vulnerability Gather data sampling: Not affected 08:00:46 Vulnerability Indirect target selection: Not affected 08:00:46 Vulnerability Itlb multihit: Not affected 08:00:46 Vulnerability L1tf: Not affected 08:00:46 Vulnerability Mds: Not affected 08:00:46 Vulnerability Meltdown: Not affected 08:00:46 Vulnerability Mmio stale data: Not affected 08:00:46 Vulnerability Reg file data sampling: Not affected 08:00:46 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 08:00:46 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 08:00:46 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 08:00:46 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 08:00:46 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 08:00:46 Vulnerability Srbds: Not affected 08:00:46 Vulnerability Tsa: Not affected 08:00:46 Vulnerability Tsx async abort: Not affected 08:00:46 Vulnerability Vmscape: Not affected 08:00:46 08:00:46 08:00:46 ---> nproc: 08:00:46 4 08:00:46 08:00:46 08:00:46 ---> df -h: 08:00:46 Filesystem Size Used Avail Use% Mounted on 08:00:46 tmpfs 1.6G 1.1M 1.6G 1% /run 08:00:46 /dev/vda1 78G 12G 66G 15% / 08:00:46 tmpfs 7.9G 0 7.9G 0% /dev/shm 08:00:46 tmpfs 5.0M 0 5.0M 0% /run/lock 08:00:46 /dev/vda15 105M 6.1M 99M 6% /boot/efi 08:00:46 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 08:00:46 08:00:46 08:00:46 ---> free -m: 08:00:46 total used free shared buff/cache available 08:00:46 Mem: 15989 724 9318 4 5946 14920 08:00:46 Swap: 1023 0 1023 08:00:46 08:00:46 08:00:46 ---> ip addr: 08:00:46 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 08:00:46 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 08:00:46 inet 127.0.0.1/8 scope host lo 08:00:46 valid_lft forever preferred_lft forever 08:00:46 inet6 ::1/128 scope host 08:00:46 valid_lft forever preferred_lft forever 08:00:46 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 08:00:46 link/ether fa:16:3e:37:fd:37 brd ff:ff:ff:ff:ff:ff 08:00:46 altname enp0s3 08:00:46 inet 10.30.171.86/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 08:00:46 valid_lft 85518sec preferred_lft 85518sec 08:00:46 inet6 fe80::f816:3eff:fe37:fd37/64 scope link 08:00:46 valid_lft forever preferred_lft forever 08:00:46 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 08:00:46 link/ether 02:ac:20:5a:01:18 brd ff:ff:ff:ff:ff:ff 08:00:46 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 08:00:46 valid_lft forever preferred_lft forever 08:00:46 08:00:46 08:00:46 ---> sar -b -r -n DEV: 08:00:46 Linux 5.15.0-190-generic (prd-ubuntu2204-docker-4c-16g-2837) 09/07/26 _x86_64_ (4 CPU) 08:00:46 08:00:46 07:46:07 LINUX RESTART (4 CPU) 08:00:46 08:00:46 07:50:10 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 08:00:46 08:00:07 25.98 0.32 23.48 2.19 34.43 6779.13 12433.38 08:00:46 Average: 25.98 0.32 23.48 2.19 34.43 6779.13 12433.38 08:00:46 08:00:46 07:50:10 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 08:00:46 08:00:07 9622784 15356056 586240 3.58 198136 5478244 1215916 6.98 532160 5611700 28972 08:00:46 Average: 9622784 15356056 586240 3.58 198136 5478244 1215916 6.98 532160 5611700 28972 08:00:46 08:00:46 07:50:10 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 08:00:46 08:00:07 lo 0.23 0.23 0.02 0.02 0.00 0.00 0.00 0.00 08:00:46 08:00:07 ens3 101.18 65.16 857.16 9.13 0.00 0.00 0.00 0.00 08:00:46 08:00:07 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:00:46 Average: lo 0.23 0.23 0.02 0.02 0.00 0.00 0.00 0.00 08:00:46 Average: ens3 101.18 65.16 857.16 9.13 0.00 0.00 0.00 0.00 08:00:46 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 08:00:46 08:00:46 08:00:46 ---> sar -P ALL: 08:00:46 Linux 5.15.0-190-generic (prd-ubuntu2204-docker-4c-16g-2837) 09/07/26 _x86_64_ (4 CPU) 08:00:46 08:00:46 07:46:07 LINUX RESTART (4 CPU) 08:00:46 08:00:46 07:50:10 CPU %user %nice %system %iowait %steal %idle 08:00:46 08:00:07 all 6.02 0.00 0.65 0.28 0.01 93.05 08:00:46 08:00:07 0 3.78 0.00 0.67 0.38 0.01 95.16 08:00:46 08:00:07 1 5.59 0.00 0.64 0.33 0.01 93.44 08:00:46 08:00:07 2 6.99 0.00 0.58 0.17 0.01 92.25 08:00:46 08:00:07 3 7.71 0.00 0.70 0.24 0.01 91.34 08:00:46 Average: all 6.02 0.00 0.65 0.28 0.01 93.05 08:00:46 Average: 0 3.78 0.00 0.67 0.38 0.01 95.16 08:00:46 Average: 1 5.59 0.00 0.64 0.33 0.01 93.44 08:00:46 Average: 2 6.99 0.00 0.58 0.17 0.01 92.25 08:00:46 Average: 3 7.71 0.00 0.70 0.24 0.01 91.34 08:00:46 08:00:46 08:00:46