22:15:58 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/126680 22:15:58 Running as SYSTEM 22:15:58 [EnvInject] - Loading node environment variables. 22:15:58 Building remotely on prd-ubuntu2204-docker-4c-16g-62479 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 22:15:59 [ssh-agent] Looking for ssh-agent implementation... 22:15:59 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 22:15:59 $ ssh-agent 22:15:59 SSH_AUTH_SOCK=/tmp/ssh-XXXXXXLs6tix/agent.4278 22:15:59 SSH_AGENT_PID=4280 22:15:59 [ssh-agent] Started. 22:15:59 Running ssh-add (command line suppressed) 22:15:59 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_2686548710290590419.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_2686548710290590419.key) 22:15:59 [ssh-agent] Using credentials jenkins (jenkins-ssh) 22:15:59 The recommended git tool is: NONE 22:16:01 using credential jenkins-ssh 22:16:01 Wiping out workspace first. 22:16:01 Cloning the remote Git repository 22:16:01 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 22:16:01 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 22:16:01 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 22:16:01 > git --version # timeout=10 22:16:01 > git --version # 'git version 2.34.1' 22:16:01 using GIT_SSH to set credentials jenkins-ssh 22:16:01 Verifying host key using known hosts file, will automatically accept unseen keys 22:16:01 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 22:16:05 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 22:16:05 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 22:16:05 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 22:16:05 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 22:16:05 using GIT_SSH to set credentials jenkins-ssh 22:16:05 Verifying host key using known hosts file, will automatically accept unseen keys 22:16:06 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/80/126680/1 # timeout=10 22:16:06 > git rev-parse a44ec78ce7b95768344aed547759b39320b56169^{commit} # timeout=10 22:16:06 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 22:16:06 Checking out Revision a44ec78ce7b95768344aed547759b39320b56169 (refs/changes/80/126680/1) 22:16:06 > git config core.sparsecheckout # timeout=10 22:16:06 > git checkout -f a44ec78ce7b95768344aed547759b39320b56169 # timeout=10 22:16:09 Commit message: "Fix test-common code style violations" 22:16:09 > git rev-parse FETCH_HEAD^{commit} # timeout=10 22:16:09 > git rev-list --no-walk e7da138c8b5751d49f2f1b179c4b029fd24c72f8 # timeout=10 22:16:09 > git remote # timeout=10 22:16:09 > git submodule init # timeout=10 22:16:09 > git submodule sync # timeout=10 22:16:10 > git config --get remote.origin.url # timeout=10 22:16:10 > git submodule init # timeout=10 22:16:10 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 22:16:10 ERROR: No submodules found. 22:16:10 provisioning config files... 22:16:10 copy managed file [npmrc] to file:/home/jenkins/.npmrc 22:16:10 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 22:16:10 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins1047896357010349206.sh 22:16:10 ---> python-tools-install.sh 22:16:10 Setup pyenv: 22:16:10 * system (set by /opt/pyenv/version) 22:16:10 * 3.8.20 (set by /opt/pyenv/version) 22:16:10 * 3.9.20 (set by /opt/pyenv/version) 22:16:10 3.10.15 22:16:10 3.11.10 22:16:15 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-yf3Q 22:16:15 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 22:16:15 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:16:19 lf-activate-venv(): INFO: Installing additional packages: lftools 22:16:47 lf-activate-venv(): INFO: Adding /tmp/venv-yf3Q/bin to PATH 22:16:47 Generating Requirements File 22:17:17 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. 22:17:17 httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 22:17:17 Python 3.11.10 22:17:17 pip 26.2.1 from /tmp/venv-yf3Q/lib/python3.11/site-packages/pip (python 3.11) 22:17:17 aiohappyeyeballs==2.7.1 22:17:17 aiohttp==3.14.4 22:17:17 aiosignal==1.4.0 22:17:17 appdirs==1.4.4 22:17:17 argcomplete==3.7.2 22:17:17 aspy.yaml==1.3.0 22:17:17 attrs==26.1.0 22:17:17 autopage==0.6.0 22:17:17 beautifulsoup4==4.15.0 22:17:17 boto3==1.43.108 22:17:17 botocore==1.43.108 22:17:17 bs4==0.0.2 22:17:17 certifi==2026.7.22 22:17:17 cffi==2.1.1 22:17:17 cfgv==3.5.0 22:17:17 chardet==7.6.0 22:17:17 charset-normalizer==3.5.2 22:17:17 click==8.5.0 22:17:17 cliff==4.16.0 22:17:17 cmd2==4.2.4 22:17:17 cryptography==3.3.2 22:17:17 debtcollector==3.1.0 22:17:17 decorator==5.3.1 22:17:17 defusedxml==0.7.1 22:17:17 Deprecated==1.3.1 22:17:17 distlib==0.4.3 22:17:17 dnspython==2.8.0 22:17:17 docker==7.2.0 22:17:17 dogpile.cache==1.5.0 22:17:17 durationpy==0.11 22:17:17 email-validator==2.3.0 22:17:17 filelock==4.0.12 22:17:17 frozenlist==1.8.0 22:17:17 future==1.0.0 22:17:17 gitdb==4.0.12 22:17:17 GitPython==3.2.0 22:17:17 httplib2==0.30.2 22:17:17 identify==2.6.20 22:17:17 idna==3.20 22:17:17 importlib-resources==1.5.0 22:17:17 iso8601==2.1.0 22:17:17 Jinja2==3.1.6 22:17:17 jmespath==1.1.0 22:17:17 jsonpatch==1.33 22:17:17 jsonpointer==3.1.1 22:17:17 jsonschema==4.26.0 22:17:17 jsonschema-specifications==2025.9.1 22:17:17 keystoneauth1==5.17.0 22:17:17 kubernetes==36.0.3 22:17:17 lftools==0.37.23 22:17:17 lxml==6.1.3 22:17:17 markdown-it-py==4.2.0 22:17:17 MarkupSafe==3.0.4 22:17:17 mdurl==0.1.2 22:17:17 msgpack==1.2.3 22:17:17 multi_key_dict==2.0.3 22:17:17 multidict==6.9.1 22:17:17 munch==4.0.0 22:17:17 netaddr==1.3.0 22:17:17 niet==1.4.2 22:17:17 nodeenv==1.11.0 22:17:17 oauth2client==4.1.3 22:17:17 oauthlib==4.0.0 22:17:17 openstacksdk==4.20.0 22:17:17 os-service-types==1.9.0 22:17:17 osc-lib==4.7.0 22:17:17 oslo.config==10.7.0 22:17:17 oslo.context==6.5.0 22:17:17 oslo.i18n==6.9.0 22:17:17 oslo.log==8.3.2 22:17:17 oslo.serialization==5.11.0 22:17:17 oslo.utils==10.2.0 22:17:17 packaging==26.3 22:17:17 pbr==7.0.3 22:17:17 platformdirs==4.12.3 22:17:17 prettytable==3.18.0 22:17:17 prompt_toolkit==3.0.53 22:17:17 propcache==0.5.4 22:17:17 psutil==7.2.2 22:17:17 pyasn1==0.6.4 22:17:17 pyasn1_modules==0.4.2 22:17:17 pycparser==3.0 22:17:17 pygerrit2==2.0.15 22:17:17 PyGithub==2.10.0 22:17:17 Pygments==2.21.0 22:17:17 PyJWT==2.15.1 22:17:17 PyNaCl==1.6.2 22:17:17 pyparsing==2.4.7 22:17:17 pyperclip==1.11.0 22:17:17 pyrsistent==0.20.0 22:17:17 python-dateutil==2.9.0.post0 22:17:17 python-discovery==1.6.1 22:17:17 python-heatclient==5.3.0 22:17:17 python-jenkins==1.8.3 22:17:17 python-keystoneclient==6.0.0 22:17:17 python-magnumclient==5.0.0 22:17:17 python-manilaclient==6.3.0 22:17:17 python-openstackclient==10.3.0 22:17:17 python-swiftclient==4.11.0 22:17:17 PyYAML==6.0.3 22:17:17 referencing==0.37.0 22:17:17 requests==2.34.2 22:17:17 requests-oauthlib==2.0.0 22:17:17 rfc3986==2.0.0 22:17:17 rich==15.0.0 22:17:17 rich-argparse==1.8.0 22:17:17 rpds-py==2026.9.1 22:17:17 rsa==4.9.1 22:17:17 ruamel.yaml==0.19.1 22:17:17 ruamel.yaml.clib==0.2.15 22:17:17 s3transfer==0.19.2 22:17:17 simplejson==4.2.0 22:17:17 six==1.17.0 22:17:17 smmap==5.0.3 22:17:17 soupsieve==2.10 22:17:17 stevedore==5.9.1 22:17:17 tabulate==0.10.0 22:17:17 toml==0.10.2 22:17:17 tomlkit==0.15.1 22:17:17 tqdm==4.70.1 22:17:17 typing_extensions==4.16.0 22:17:17 urllib3==1.26.20 22:17:17 virtualenv==21.14.5 22:17:17 wcwidth==0.9.2 22:17:17 websocket-client==1.9.2 22:17:17 wrapt==2.5.0 22:17:17 xdg==6.0.0 22:17:17 xmltodict==1.0.4 22:17:17 yarl==1.25.1 22:17:17 yq==4.4.0 22:17:18 [transportpce-tox-verify-transportpce-master] $ /bin/sh /tmp/jenkins4308745766353682680.sh 22:17:18 ---> uv-install.sh 22:17:18 Installing uv/uvx (latest) using shell installer 22:17:18 2026-10-06 22:17:18 URL:https://releases.astral.sh/installers/uv/latest/uv-installer.sh [71308/71308] -> "/tmp/uv-install-eSyaoO.sh" [1] 22:17:18 downloading uv 0.12.23 x86_64-unknown-linux-gnu 22:17:19 installing to /home/jenkins/.local/bin 22:17:19 uv 22:17:19 uvx 22:17:19 everything's installed! 22:17:19 22:17:19 To add $HOME/.local/bin to your PATH, either restart your shell or run: 22:17:19 22:17:19 source $HOME/.local/bin/env (sh, bash, zsh) 22:17:19 source $HOME/.local/bin/env.fish (fish) 22:17:19 Adding install location to PATH 22:17:19 ---> Validating uv/uvx install 22:17:19 uvx 0.12.23 (x86_64-unknown-linux-gnu) 22:17:19 [EnvInject] - Injecting environment variables from a build step. 22:17:19 [EnvInject] - Injecting as environment variables the properties content 22:17:19 PYTHON=python3 22:17:19 22:17:19 [EnvInject] - Variables injected successfully. 22:17:19 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins9147653670619254359.sh 22:17:19 ---> tox-install.sh 22:17:19 + source /home/jenkins/lf-env.sh 22:17:19 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 22:17:19 ++ mktemp -d /tmp/venv-XXXX 22:17:19 + lf_venv=/tmp/venv-ObKp 22:17:19 + local venv_file=/tmp/.os_lf_venv 22:17:19 + local python=python3 22:17:19 + local options 22:17:19 + local set_path=true 22:17:19 + local install_args= 22:17:19 ++ 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 22:17:19 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 22:17:19 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 22:17:19 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 22:17:19 + true 22:17:19 + case $1 in 22:17:19 + venv_file=/tmp/.toxenv 22:17:19 + shift 2 22:17:19 + true 22:17:19 + case $1 in 22:17:19 + shift 22:17:19 + break 22:17:19 + case $python in 22:17:19 + local pkg_list= 22:17:19 + [[ -d /opt/pyenv ]] 22:17:19 + echo 'Setup pyenv:' 22:17:19 Setup pyenv: 22:17:19 + export PYENV_ROOT=/opt/pyenv 22:17:19 + PYENV_ROOT=/opt/pyenv 22:17:19 + 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 22:17:19 + 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 22:17:19 + pyenv versions 22:17:19 system 22:17:19 3.8.20 22:17:19 3.9.20 22:17:19 3.10.15 22:17:19 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:17:19 + command -v pyenv 22:17:19 ++ pyenv init - --no-rehash 22:17:19 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 22:17:19 for i in ${!paths[@]}; do 22:17:19 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 22:17:19 fi; done; 22:17:19 echo "${paths[*]}"'\'')" 22:17:19 export PATH="/opt/pyenv/shims:${PATH}" 22:17:19 export PYENV_SHELL=bash 22:17:19 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 22:17:19 pyenv() { 22:17:19 local command 22:17:19 command="${1:-}" 22:17:19 if [ "$#" -gt 0 ]; then 22:17:19 shift 22:17:19 fi 22:17:19 22:17:19 case "$command" in 22:17:19 rehash|shell) 22:17:19 eval "$(pyenv "sh-$command" "$@")" 22:17:19 ;; 22:17:19 *) 22:17:19 command pyenv "$command" "$@" 22:17:19 ;; 22:17:19 esac 22:17:19 }' 22:17:19 +++ bash --norc -ec 'IFS=:; paths=($PATH); 22:17:19 for i in ${!paths[@]}; do 22:17:19 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 22:17:19 fi; done; 22:17:19 echo "${paths[*]}"' 22:17:19 ++ 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 22:17:19 ++ 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 22:17:19 ++ 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 22:17:19 ++ export PYENV_SHELL=bash 22:17:19 ++ PYENV_SHELL=bash 22:17:19 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 22:17:19 +++ complete -F _pyenv pyenv 22:17:19 ++ lf-pyver python3 22:17:19 ++ local py_version_xy=python3 22:17:19 ++ local py_version_xyz= 22:17:19 ++ pyenv versions 22:17:19 ++ local command 22:17:19 ++ command=versions 22:17:19 ++ '[' 1 -gt 0 ']' 22:17:19 ++ shift 22:17:19 ++ case "$command" in 22:17:19 ++ command pyenv versions 22:17:19 ++ sed 's/^[ *]* //' 22:17:19 ++ grep -E '^[0-9.]*[0-9]$' 22:17:19 ++ awk '{ print $1 }' 22:17:19 ++ [[ ! -s /tmp/.pyenv_versions ]] 22:17:19 +++ grep '^3' /tmp/.pyenv_versions 22:17:19 +++ tail -n 1 22:17:19 +++ sort -V 22:17:19 ++ py_version_xyz=3.11.10 22:17:19 ++ [[ -z 3.11.10 ]] 22:17:19 ++ echo 3.11.10 22:17:19 ++ return 0 22:17:19 + pyenv local 3.11.10 22:17:19 + local command 22:17:19 + command=local 22:17:19 + '[' 2 -gt 0 ']' 22:17:19 + shift 22:17:19 + case "$command" in 22:17:19 + command pyenv local 3.11.10 22:17:19 + for arg in "$@" 22:17:19 + case $arg in 22:17:19 + pkg_list+='tox ' 22:17:19 + for arg in "$@" 22:17:19 + case $arg in 22:17:19 + pkg_list+='virtualenv ' 22:17:19 + for arg in "$@" 22:17:19 + case $arg in 22:17:19 + pkg_list+='urllib3~=1.26.15 ' 22:17:19 + [[ -f /tmp/.toxenv ]] 22:17:19 + [[ ! -f /tmp/.toxenv ]] 22:17:19 + [[ -n '' ]] 22:17:19 + python3 -m venv /tmp/venv-ObKp 22:17:23 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-ObKp' 22:17:23 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-ObKp 22:17:23 + echo /tmp/venv-ObKp 22:17:23 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 22:17:23 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 22:17:23 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 22:17:23 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:17:23 + local 'pip_opts=--upgrade --quiet' 22:17:23 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 22:17:23 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 22:17:23 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 22:17:23 + [[ -n '' ]] 22:17:23 + [[ -n '' ]] 22:17:23 + lf-venv-pip-install /tmp/venv-ObKp/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 22:17:23 + local venv_python=/tmp/venv-ObKp/bin/python3 22:17:23 + shift 22:17:23 + local upstream=https://pypi.org/simple 22:17:23 + /tmp/venv-ObKp/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 22:17:27 + return 0 22:17:27 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 22:17:27 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 22:17:27 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 22:17:27 + lf-venv-pip-install /tmp/venv-ObKp/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 22:17:27 + local venv_python=/tmp/venv-ObKp/bin/python3 22:17:27 + shift 22:17:27 + local upstream=https://pypi.org/simple 22:17:27 + /tmp/venv-ObKp/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 22:17:30 + return 0 22:17:30 + type python3 22:17:30 + true 22:17:30 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-ObKp/bin to PATH' 22:17:30 lf-activate-venv(): INFO: Adding /tmp/venv-ObKp/bin to PATH 22:17:30 + PATH=/tmp/venv-ObKp/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 22:17:30 + return 0 22:17:30 + python3 --version 22:17:30 Python 3.11.10 22:17:30 + python3 -m pip --version 22:17:30 pip 26.2.1 from /tmp/venv-ObKp/lib/python3.11/site-packages/pip (python 3.11) 22:17:30 + python3 -m pip freeze 22:17:30 cachetools==7.2.1 22:17:30 colorama==0.4.6 22:17:30 distlib==0.4.3 22:17:30 filelock==4.0.12 22:17:30 packaging==26.3 22:17:30 platformdirs==4.12.3 22:17:30 pluggy==1.6.0 22:17:30 pyproject-api==1.11.3 22:17:30 python-discovery==1.6.1 22:17:30 tomli_w==1.2.0 22:17:30 tox==4.64.9 22:17:30 typing_extensions==4.16.0 22:17:30 urllib3==1.26.20 22:17:30 virtualenv==21.14.5 22:17:30 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins11408824485427771302.sh 22:17:30 [EnvInject] - Injecting environment variables from a build step. 22:17:30 [EnvInject] - Injecting as environment variables the properties content 22:17:30 PARALLEL=True 22:17:30 22:17:30 [EnvInject] - Variables injected successfully. 22:17:30 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins10948688536173604439.sh 22:17:30 ---> tox-run.sh 22:17:30 + 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 22:17:30 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 22:17:30 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 22:17:30 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 22:17:30 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 22:17:30 + source /home/jenkins/lf-env.sh 22:17:30 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 22:17:30 ++ mktemp -d /tmp/venv-XXXX 22:17:30 + lf_venv=/tmp/venv-XSNA 22:17:30 + local venv_file=/tmp/.os_lf_venv 22:17:30 + local python=python3 22:17:30 + local options 22:17:30 + local set_path=true 22:17:30 + local install_args= 22:17:30 ++ 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 22:17:30 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 22:17:30 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 22:17:30 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 22:17:30 + true 22:17:30 + case $1 in 22:17:30 + venv_file=/tmp/.toxenv 22:17:30 + shift 2 22:17:30 + true 22:17:30 + case $1 in 22:17:30 + shift 22:17:30 + break 22:17:30 + case $python in 22:17:30 + local pkg_list= 22:17:30 + [[ -d /opt/pyenv ]] 22:17:30 + echo 'Setup pyenv:' 22:17:30 Setup pyenv: 22:17:30 + export PYENV_ROOT=/opt/pyenv 22:17:30 + PYENV_ROOT=/opt/pyenv 22:17:30 + 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 22:17:30 + 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 22:17:30 + pyenv versions 22:17:30 system 22:17:30 3.8.20 22:17:30 3.9.20 22:17:30 3.10.15 22:17:30 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:17:30 + command -v pyenv 22:17:30 ++ pyenv init - --no-rehash 22:17:30 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 22:17:30 for i in ${!paths[@]}; do 22:17:30 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 22:17:30 fi; done; 22:17:30 echo "${paths[*]}"'\'')" 22:17:30 export PATH="/opt/pyenv/shims:${PATH}" 22:17:30 export PYENV_SHELL=bash 22:17:30 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 22:17:30 pyenv() { 22:17:30 local command 22:17:30 command="${1:-}" 22:17:30 if [ "$#" -gt 0 ]; then 22:17:30 shift 22:17:30 fi 22:17:30 22:17:30 case "$command" in 22:17:30 rehash|shell) 22:17:30 eval "$(pyenv "sh-$command" "$@")" 22:17:30 ;; 22:17:30 *) 22:17:30 command pyenv "$command" "$@" 22:17:30 ;; 22:17:30 esac 22:17:30 }' 22:17:30 +++ bash --norc -ec 'IFS=:; paths=($PATH); 22:17:30 for i in ${!paths[@]}; do 22:17:30 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 22:17:30 fi; done; 22:17:30 echo "${paths[*]}"' 22:17:30 ++ 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 22:17:30 ++ 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 22:17:30 ++ 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 22:17:30 ++ export PYENV_SHELL=bash 22:17:30 ++ PYENV_SHELL=bash 22:17:30 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 22:17:30 +++ complete -F _pyenv pyenv 22:17:30 ++ lf-pyver python3 22:17:30 ++ local py_version_xy=python3 22:17:30 ++ local py_version_xyz= 22:17:30 ++ pyenv versions 22:17:30 ++ local command 22:17:30 ++ command=versions 22:17:30 ++ '[' 1 -gt 0 ']' 22:17:30 ++ shift 22:17:30 ++ case "$command" in 22:17:30 ++ command pyenv versions 22:17:30 ++ sed 's/^[ *]* //' 22:17:30 ++ awk '{ print $1 }' 22:17:30 ++ grep -E '^[0-9.]*[0-9]$' 22:17:30 ++ [[ ! -s /tmp/.pyenv_versions ]] 22:17:30 +++ grep '^3' /tmp/.pyenv_versions 22:17:30 +++ sort -V 22:17:30 +++ tail -n 1 22:17:30 ++ py_version_xyz=3.11.10 22:17:30 ++ [[ -z 3.11.10 ]] 22:17:30 ++ echo 3.11.10 22:17:30 ++ return 0 22:17:30 + pyenv local 3.11.10 22:17:30 + local command 22:17:30 + command=local 22:17:30 + '[' 2 -gt 0 ']' 22:17:30 + shift 22:17:30 + case "$command" in 22:17:30 + command pyenv local 3.11.10 22:17:30 + for arg in "$@" 22:17:30 + case $arg in 22:17:30 + pkg_list+='tox ' 22:17:30 + for arg in "$@" 22:17:30 + case $arg in 22:17:30 + pkg_list+='virtualenv ' 22:17:30 + for arg in "$@" 22:17:30 + case $arg in 22:17:30 + pkg_list+='urllib3~=1.26.15 ' 22:17:30 + [[ -f /tmp/.toxenv ]] 22:17:30 ++ cat /tmp/.toxenv 22:17:30 + lf_venv=/tmp/venv-ObKp 22:17:30 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-ObKp from' file:/tmp/.toxenv 22:17:30 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-ObKp from file:/tmp/.toxenv 22:17:30 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 22:17:30 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:17:30 + local 'pip_opts=--upgrade --quiet' 22:17:30 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 22:17:30 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 22:17:30 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 22:17:30 + [[ -n '' ]] 22:17:30 + [[ -n '' ]] 22:17:30 + lf-venv-pip-install /tmp/venv-ObKp/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 22:17:30 + local venv_python=/tmp/venv-ObKp/bin/python3 22:17:30 + shift 22:17:30 + local upstream=https://pypi.org/simple 22:17:30 + /tmp/venv-ObKp/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 22:17:31 + return 0 22:17:31 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 22:17:31 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 22:17:31 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 22:17:31 + lf-venv-pip-install /tmp/venv-ObKp/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 22:17:31 + local venv_python=/tmp/venv-ObKp/bin/python3 22:17:31 + shift 22:17:31 + local upstream=https://pypi.org/simple 22:17:31 + /tmp/venv-ObKp/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 22:17:32 + return 0 22:17:32 + type python3 22:17:32 + true 22:17:32 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-ObKp/bin to PATH' 22:17:32 lf-activate-venv(): INFO: Adding /tmp/venv-ObKp/bin to PATH 22:17:32 + PATH=/tmp/venv-ObKp/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 22:17:32 + return 0 22:17:32 + [[ -d /opt/pyenv ]] 22:17:32 + echo '---> Setting up pyenv' 22:17:32 ---> Setting up pyenv 22:17:32 + export PYENV_ROOT=/opt/pyenv 22:17:32 + PYENV_ROOT=/opt/pyenv 22:17:32 + export PATH=/opt/pyenv/bin:/tmp/venv-ObKp/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 22:17:32 + PATH=/opt/pyenv/bin:/tmp/venv-ObKp/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 22:17:32 ++ pwd 22:17:32 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 22:17:32 + export PYTHONPATH 22:17:32 + export TOX_TESTENV_PASSENV=PYTHONPATH 22:17:32 + TOX_TESTENV_PASSENV=PYTHONPATH 22:17:32 + tox --version 22:17:33 4.64.9 from /tmp/venv-ObKp/lib/python3.11/site-packages/tox/__init__.py 22:17:33 + PARALLEL=True 22:17:33 + TOX_OPTIONS_LIST= 22:17:33 + [[ -n '' ]] 22:17:33 + case ${PARALLEL,,} in 22:17:33 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 22:17:33 + tox --parallel auto --parallel-live 22:17:33 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 22:17:34 docs: install_deps> python -I -m pip install -r docs/requirements.txt 22:17:34 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 22:17:34 checkbashisms: freeze> python -m pip freeze --all 22:17:34 buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:17:35 checkbashisms: pip==26.2.1,setuptools==84.0.0 22:17:35 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 22:17:35 checkbashisms: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/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)' 22:17:35 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 22:17:36 checkbashisms: OK ✔ in 3.07 seconds 22:17:36 pre-commit: install_deps> python -I -m pip install pre-commit 22:17:39 pre-commit: freeze> python -m pip freeze --all 22:17:39 pre-commit: cfgv==3.5.0,distlib==0.4.3,filelock==4.0.12,identify==2.6.20,nodeenv==1.11.0,packaging==26.3,pip==26.2.1,platformdirs==4.12.3,pre_commit==4.6.2,python-discovery==1.6.1,PyYAML==6.0.3,setuptools==84.0.0,virtualenv==21.14.5 22:17:39 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 22:17:39 pre-commit: commands[1] /w/workspace/transportpce-tox-verify-transportpce-master/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)' 22:17:39 /usr/bin/cpan 22:17:39 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 22:17:40 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 22:17:40 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 22:17:40 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 22:17:42 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 22:17:42 [INFO] Initializing environment for https://github.com/hhatto/autopep8. 22:17:42 buildcontroller: freeze> python -m pip freeze --all 22:17:42 buildcontroller: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:17:42 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 22:17:42 + update-java-alternatives -l 22:17:42 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 22:17:42 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 22:17:42 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 22:17:42 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 22:17:43 update-alternatives: error: no alternatives for jaotc 22:17:43 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 22:17:43 update-alternatives: error: no alternatives for rmic 22:17:43 + + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 22:17:43 java -version 22:17:43 21.0 22:17:43 + JAVA_VER=21.0 22:17:43 + echo 21.0 22:17:43 + javac -version 22:17:43 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 22:17:43 21.0 22:17:43 + JAVAC_VER=21.0 22:17:43 + echo 21.0 22:17:43 + [ 21.0 -ge 21 ] 22:17:43 ./installMavenUbuntu.sh: 14: [: Illegal number: 21.0 22:17:43 + echo No java21 or newer available 22:17:43 + exit 1 22:17:43 No java21 or newer available 22:17:43 buildcontroller: exit 1 (0.77 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh pid=5494 22:17:43 buildcontroller: FAIL ✖ in 10.15 seconds 22:17:43 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 22:17:44 [INFO] Initializing environment for https://github.com/koalaman/shellcheck-precommit. 22:17:44 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier. 22:17:45 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier:prettier@4.0.0-alpha.8. 22:17:45 [INFO] Initializing environment for https://github.com/adrienverge/yamllint. 22:17:45 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 22:17:45 [INFO] Once installed this environment will be reused. 22:17:45 [INFO] This may take a few minutes... 22:17:47 pylint: freeze> python -m pip freeze --all 22:17:48 pylint: astroid==4.3.3,dill==0.4.1,isort==9.0.2,mccabe==0.7.0,mypy_extensions==1.1.0,pip==26.2.1,platformdirs==4.12.3,pylint==4.1.2,setuptools==84.0.0,tomlkit==0.15.1 22:17:48 pylint: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/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}$' '{}' + 22:17:50 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 22:17:50 [INFO] Once installed this environment will be reused. 22:17:50 [INFO] This may take a few minutes... 22:17:50 docs: freeze> python -m pip freeze --all 22:17:50 docs-linkcheck: freeze> python -m pip freeze --all 22:17:50 docs: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.7.22,charset-normalizer==3.5.2,deepmerge==3.0.1,docutils==0.22.4,idna==3.20,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.4,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.9.1,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.1.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.8.0 22:17:50 docs: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -W --keep-going -b html -n -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/html 22:17:50 docs-linkcheck: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.7.22,charset-normalizer==3.5.2,deepmerge==3.0.1,docutils==0.22.4,idna==3.20,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.4,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.9.1,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.1.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.8.0 22:17:50 docs-linkcheck: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> sphinx-build -q -b linkcheck -d /w/workspace/transportpce-tox-verify-transportpce-master/.tox/docs-linkcheck/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-transportpce-master/docs/_build/linkcheck 22:17:53 docs: OK ✔ in 19.7 seconds 22:17:53 build_karaf_tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:17:55 docs-linkcheck: OK ✔ in 21.51 seconds 22:17:55 build_karaf_tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:17:55 [INFO] Installing environment for https://github.com/hhatto/autopep8. 22:17:55 [INFO] Once installed this environment will be reused. 22:17:55 [INFO] This may take a few minutes... 22:17:59 [INFO] Installing environment for https://github.com/perltidy/perltidy. 22:17:59 [INFO] Once installed this environment will be reused. 22:17:59 [INFO] This may take a few minutes... 22:17:59 build_karaf_tests221: freeze> python -m pip freeze --all 22:18:00 build_karaf_tests221: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:18:00 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 22:18:00 ./build_karaf_for_tests.sh: 21: cd: can't cd to ../karaf221 22:18:00 ./build_karaf_for_tests.sh: 22: mvn: not found 22:18:00 build karaf in karaf221 with ./karaf221.env 22:18:00 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 22:18:00 build_karaf_tests221: exit 127 (0.01 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh pid=6049 22:18:00 build_karaf_tests221: FAIL ✖ in 6.82 seconds 22:18:00 build_karaf_tests200: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:18:01 build_karaf_tests71: freeze> python -m pip freeze --all 22:18:01 build_karaf_tests71: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:18:01 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 22:18:01 ./build_karaf_for_tests.sh: 21: cd: can't cd to ../karaf71 22:18:01 ./build_karaf_for_tests.sh: 22: mvn: not found 22:18:01 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 22:18:01 build karaf in karaf71 with ./karaf71.env 22:18:01 build_karaf_tests71: exit 127 (0.00 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh pid=6077 22:18:01 build_karaf_tests71: FAIL ✖ in 6.71 seconds 22:18:01 buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:18:05 ************* Module 2.2.1.test12_end2end 22:18:05 transportpce_tests/2.2.1/test12_end2end.py:435:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 ************* Module common.test_utils 22:18:05 transportpce_tests/common/test_utils.py:532:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 transportpce_tests/common/test_utils.py:555:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 transportpce_tests/common/test_utils.py:581:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 transportpce_tests/common/test_utils.py:617:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 transportpce_tests/common/test_utils.py:635:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 transportpce_tests/common/test_utils.py:666:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 transportpce_tests/common/test_utils.py:687:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 22:18:05 22:18:05 ----------------------------------- 22:18:05 Your code has been rated at 9.99/10 22:18:05 22:18:06 build_karaf_tests200: freeze> python -m pip freeze --all 22:18:06 build_karaf_tests200: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:18:06 build_karaf_tests200: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 22:18:06 pylint: exit 1 (18.43 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/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}$' '{}' + pid=5934 22:18:06 ./build_karaf_for_tests.sh: 21: cd: can't cd to ../karafoc200 22:18:06 ./build_karaf_for_tests.sh: 22: mvn: not found 22:18:06 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 22:18:06 build karaf in karafoc200 with ./karafoc200.env 22:18:06 pylint: FAIL ✖ in 22.91 seconds 22:18:06 build_karaf_tests200: exit 127 (0.02 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh pid=6195 22:18:06 build_karaf_tests200: FAIL ✖ in 6.54 seconds 22:18:06 sims: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:18:06 testsPCE: install_deps> python -I -m pip install gnpy4tpce==2.4.7 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:18:07 [INFO] Installing environment for https://github.com/pre-commit/mirrors-prettier. 22:18:07 [INFO] Once installed this environment will be reused. 22:18:07 [INFO] This may take a few minutes... 22:18:08 buildlighty: freeze> python -m pip freeze --all 22:18:08 buildlighty: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:18:08 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 22:18:08 ./build.sh: 7: mvn: not found 22:18:08 unzip: cannot find or open target/tpce-bin.zip, target/tpce-bin.zip.zip or target/tpce-bin.zip.ZIP. 22:18:08 buildlighty: exit 9 (0.01 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh pid=6242 22:18:10 [INFO] Installing environment for https://github.com/adrienverge/yamllint. 22:18:10 [INFO] Once installed this environment will be reused. 22:18:10 [INFO] This may take a few minutes... 22:18:13 buildlighty: FAIL ✖ in 6.66 seconds 22:18:13 sims: freeze> python -m pip freeze --all 22:18:13 sims: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:18:13 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 22:18:13 Using lighynode version 22.1.0.7 22:18:13 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 22:18:15 trim trailing whitespace.................................................Passed 22:18:15 fix end of files.........................................................Passed 22:18:15 check for added large files..............................................Passed 22:18:15 check for merge conflicts................................................Passed 22:18:15 check for case conflicts.................................................Passed 22:18:16 check json...............................................................Passed 22:18:16 mixed line ending........................................................Passed 22:18:16 Tabs remover.............................................................Passed 22:18:16 autopep8.................................................................Passed 22:18:18 perltidy.................................................................Passed 22:18:19 ShellCheck v0.11.0.......................................................Passed 22:18:25 prettier.................................................................Passed 22:18:26 yamllint.................................................................Passed 22:18:26 sims: OK ✔ in 10.99 seconds 22:18:26 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 22:18:26 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 22:18:26 [INFO] Once installed this environment will be reused. 22:18:26 [INFO] This may take a few minutes... 22:18:36 gitlint..................................................................Passed 22:18:56 pre-commit: OK ✔ in 59.62 seconds 22:18:56 testsPCE: freeze> python -m pip freeze --all 22:18:56 testsPCE: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,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.66.1,gnpy4tpce==2.4.7,idna==3.20,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.4,matplotlib==3.11.2,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.3,pytest==9.1.1,python-dateutil==2.9.0.post0,pytz==2026.5,requests==2.34.2,scipy==1.17.1,setuptools==50.3.2,six==1.17.0,urllib3==2.8.0,Werkzeug==2.0.3,xlrd==1.2.0 22:18:56 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 22:18:56 pytest -q transportpce_tests/pce/test01_pce.py 22:20:57 EEEEEEEEEEEEEEEEEEEE [100%] 22:21:00 ==================================== ERRORS ==================================== 22:21:00 _______ ERROR at setup of TestTransportPCEPce.test_01_load_port_mapping ________ 22:21:00 22:21:00 cls = 22:21:00 22:21:00 @classmethod 22:21:00 def setUpClass(cls): 22:21:00 # pylint: disable=bare-except 22:21:00 sample_files_parsed = False 22:21:00 time.sleep(20) 22:21:00 try: 22:21:00 TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 22:21:00 "..", "..", "sample_configs", "honeynode-topo.json") 22:21:00 with open(TOPO_BI_DIR_FILE, 'r', encoding='utf-8') as topo_bi_dir: 22:21:00 cls.simple_topo_bi_dir_data = topo_bi_dir.read() 22:21:00 22:21:00 TOPO_UNI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 22:21:00 "..", "..", "sample_configs", "NW-simple-topology.json") 22:21:00 22:21:00 with open(TOPO_UNI_DIR_FILE, 'r', encoding='utf-8') as topo_uni_dir: 22:21:00 cls.simple_topo_uni_dir_data = topo_uni_dir.read() 22:21:00 22:21:00 TOPO_UNI_DIR_COMPLEX_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 22:21:00 "..", "..", "sample_configs", "NW-for-test-5-4.json") 22:21:00 with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r', encoding='utf-8') as topo_uni_dir_complex: 22:21:00 cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() 22:21:00 PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 22:21:00 "..", "..", "sample_configs", "pce_portmapping_221.json") 22:21:00 with open(PORT_MAPPING_FILE, 'r', encoding='utf-8') as port_mapping: 22:21:00 cls.port_mapping_data = port_mapping.read() 22:21:00 sample_files_parsed = True 22:21:00 except PermissionError as err: 22:21:00 print("Permission Error when trying to read sample files\n", err) 22:21:00 sys.exit(2) 22:21:00 except FileNotFoundError as err: 22:21:00 print("File Not found Error when trying to read sample files\n", err) 22:21:00 sys.exit(2) 22:21:00 except: 22:21:00 print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) 22:21:00 sys.exit(2) 22:21:00 finally: 22:21:00 if sample_files_parsed: 22:21:00 print("sample files content loaded") 22:21:00 22:21:00 > cls.processes = test_utils.start_tpce() 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 22:21:00 transportpce_tests/pce/test01_pce.py:93: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 def start_tpce(): 22:21:00 if 'NO_ODL_STARTUP' in os.environ: 22:21:00 print('No OpenDaylight instance to start!') 22:21:00 return [] 22:21:00 print('starting OpenDaylight...') 22:21:00 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:21:00 process = start_lighty() 22:21:00 else: 22:21:00 process = start_karaf() 22:21:00 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:21:00 print('OpenDaylight started !') 22:21:00 else: 22:21:00 print('OpenDaylight failed to start !') 22:21:00 shutdown_process(process) 22:21:00 for pid in process_list: 22:21:00 shutdown_process(pid) 22:21:00 > sys.exit(1) 22:21:00 E SystemExit: 1 22:21:00 22:21:00 transportpce_tests/common/test_utils.py:234: SystemExit 22:21:00 ---------------------------- Captured stdout setup ----------------------------- 22:21:00 sample files content loaded 22:21:00 starting OpenDaylight... 22:21:00 starting KARAF (karaf) TransportPCE build... 22:21:00 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:21:00 ____ ERROR at setup of TestTransportPCEPce.test_02_load_simple_topology_bi _____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b548a660> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___________ ERROR at setup of TestTransportPCEPce.test_03_get_nodeId ___________ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b548bc40> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___________ ERROR at setup of TestTransportPCEPce.test_04_get_linkId ___________ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b548b420> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ____ ERROR at setup of TestTransportPCEPce.test_05_path_computation_xpdr_bi ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b7904040> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ____ ERROR at setup of TestTransportPCEPce.test_06_path_computation_rdm_bi _____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b548b1a0> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ____ ERROR at setup of TestTransportPCEPce.test_07_load_simple_topology_uni ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b548bc40> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___________ ERROR at setup of TestTransportPCEPce.test_08_get_nodeId ___________ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b4ee1da0> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___________ ERROR at setup of TestTransportPCEPce.test_09_get_linkId ___________ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5473ce0> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___ ERROR at setup of TestTransportPCEPce.test_10_path_computation_xpdr_uni ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5473a60> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ____ ERROR at setup of TestTransportPCEPce.test_11_path_computation_rdm_uni ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5473ce0> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 _____ ERROR at setup of TestTransportPCEPce.test_12_load_complex_topology ______ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b4ee1940> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___________ ERROR at setup of TestTransportPCEPce.test_13_get_nodeId ___________ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b548b1a0> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 _____ ERROR at setup of TestTransportPCEPce.test_14_fail_path_computation ______ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5473a60> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___ ERROR at setup of TestTransportPCEPce.test_15_success1_path_computation ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b4ee2980> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___ ERROR at setup of TestTransportPCEPce.test_16_success2_path_computation ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5473a60> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 ___ ERROR at setup of TestTransportPCEPce.test_17_success3_path_computation ____ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5488400> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 _ ERROR at setup of TestTransportPCEPce.test_18_path_computation_before_oms_attribute_deletion _ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b4ee22a0> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 _ ERROR at setup of TestTransportPCEPce.test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link _ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5488400> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 _ ERROR at setup of TestTransportPCEPce.test_20_path_computation_after_oms_attribute_deletion _ 22:21:00 22:21:00 cls = 22:21:00 func = . at 0x7fb3b5488180> 22:21:00 when = 'setup' 22:21:00 reraise = (, ) 22:21:00 22:21:00 @classmethod 22:21:00 def from_call( 22:21:00 cls, 22:21:00 func: Callable[[], TResult], 22:21:00 when: Literal["collect", "setup", "call", "teardown"], 22:21:00 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:21:00 ) -> CallInfo[TResult]: 22:21:00 """Call func, wrapping the result in a CallInfo. 22:21:00 22:21:00 :param func: 22:21:00 The function to call. Called without arguments. 22:21:00 :type func: Callable[[], _pytest.runner.TResult] 22:21:00 :param when: 22:21:00 The phase in which the function is called. 22:21:00 :param reraise: 22:21:00 Exception or exceptions that shall propagate if raised by the 22:21:00 function, instead of being wrapped in the CallInfo. 22:21:00 """ 22:21:00 excinfo = None 22:21:00 instant = timing.Instant() 22:21:00 try: 22:21:00 > result: TResult | None = func() 22:21:00 ^^^^^^ 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:21:00 lambda: runtest_hook(item=item, **kwds), 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:21:00 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:21:00 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:21:00 yield 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:21:00 return (yield) 22:21:00 ^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:21:00 item.session._setupstate.setup(item) 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:21:00 col.setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:21:00 super().setup() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:21:00 self._request._fillfixtures() 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:21:00 item.funcargs[argname] = self.getfixturevalue(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:21:00 fixturedef = self._get_active_fixturedef(argname) 22:21:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:21:00 fixturedef.execute(request=subrequest) 22:21:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:21:00 22:21:00 self = 22:21:00 request = > 22:21:00 22:21:00 def execute(self, request: SubRequest) -> FixtureValue: 22:21:00 """Return the value of this fixture, executing it if not cached.""" 22:21:00 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:21:00 # This needs to be done before checking if we have a cached value, since 22:21:00 # if a dependent fixture has their cache invalidated, e.g. due to 22:21:00 # parametrization, they finalize themselves and fixtures depending on it 22:21:00 # (which will likely include this fixture) setting `self.cached_result = None`. 22:21:00 # See #4871 22:21:00 requested_fixtures_that_should_finalize_us = [] 22:21:00 for argname in self.argnames: 22:21:00 fixturedef = request._get_active_fixturedef(argname) 22:21:00 # Saves requested fixtures in a list so we later can add our finalizer 22:21:00 # to them, ensuring that if a requested fixture gets torn down we get torn 22:21:00 # down first. This is generally handled by SetupState, but still currently 22:21:00 # needed when this fixture is not parametrized but depends on a parametrized 22:21:00 # fixture. 22:21:00 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:21:00 22:21:00 # Check for (and return) cached value/exception. 22:21:00 if self.cached_result is not None: 22:21:00 request_cache_key = self.cache_key(request) 22:21:00 cache_key = self.cached_result[1] 22:21:00 try: 22:21:00 # Attempt to make a normal == check: this might fail for objects 22:21:00 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:21:00 cache_hit = bool(request_cache_key == cache_key) 22:21:00 except (ValueError, RuntimeError): 22:21:00 # If the comparison raises, use 'is' as fallback. 22:21:00 cache_hit = request_cache_key is cache_key 22:21:00 22:21:00 if cache_hit: 22:21:00 if self.cached_result[2] is not None: 22:21:00 exc, exc_tb = self.cached_result[2] 22:21:00 raise exc.with_traceback(exc_tb) 22:21:00 else: 22:21:00 return self.cached_result[0] 22:21:00 # We have a previous but differently parametrized fixture instance 22:21:00 # so we need to tear it down before creating a new one. 22:21:00 self.finish(request) 22:21:00 assert self.cached_result is None 22:21:00 22:21:00 # Add finalizer to requested fixtures we saved previously. 22:21:00 # We make sure to do this after checking for cached value to avoid 22:21:00 # adding our finalizer multiple times. (#12135) 22:21:00 finalizer = functools.partial(self.finish, request=request) 22:21:00 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:21:00 parent_fixture.addfinalizer(finalizer) 22:21:00 22:21:00 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:21:00 # which is executed last. 22:21:00 > assert not self._finalizers 22:21:00 ^^^^^^^^^^^^^^^^^^^^ 22:21:00 E AssertionError 22:21:00 22:21:00 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:21:00 =========================== short test summary info ============================ 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_01_load_port_mapping 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_02_load_simple_topology_bi 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_03_get_nodeId 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_04_get_linkId 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_05_path_computation_xpdr_bi 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_06_path_computation_rdm_bi 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_07_load_simple_topology_uni 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_08_get_nodeId 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_09_get_linkId 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_10_path_computation_xpdr_uni 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_11_path_computation_rdm_uni 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_12_load_complex_topology 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_13_get_nodeId 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_14_fail_path_computation 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_15_success1_path_computation 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_16_success2_path_computation 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_17_success3_path_computation 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_18_path_computation_before_oms_attribute_deletion 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link 22:21:00 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_20_path_computation_after_oms_attribute_deletion 22:21:00 20 errors in 123.77s (0:02:03) 22:21:00 testsPCE: exit 1 (124.04 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pid=6880 22:21:01 testsPCE: FAIL ✖ in 2 minutes 54.22 seconds 22:21:01 tests_tapi: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:21:09 tests_tapi: freeze> python -m pip freeze --all 22:21:09 tests_tapi: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:21:09 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 22:21:09 using environment variables from ./karaf221.env 22:21:09 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 22:22:49 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 22:22:58 ==================================== ERRORS ==================================== 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_01_get_tapi_topology_T100G _ 22:22:58 22:22:58 cls = 22:22:58 22:22:58 @classmethod 22:22:58 def setUpClass(cls): 22:22:58 cls.init_failed = False 22:22:58 os.environ['JAVA_MIN_MEM'] = '1024M' 22:22:58 os.environ['JAVA_MAX_MEM'] = '4096M' 22:22:58 > cls.processes = test_utils.start_tpce() 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 22:22:58 transportpce_tests/tapi/test01_abstracted_topology.py:148: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 def start_tpce(): 22:22:58 if 'NO_ODL_STARTUP' in os.environ: 22:22:58 print('No OpenDaylight instance to start!') 22:22:58 return [] 22:22:58 print('starting OpenDaylight...') 22:22:58 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:22:58 process = start_lighty() 22:22:58 else: 22:22:58 process = start_karaf() 22:22:58 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:22:58 print('OpenDaylight started !') 22:22:58 else: 22:22:58 print('OpenDaylight failed to start !') 22:22:58 shutdown_process(process) 22:22:58 for pid in process_list: 22:22:58 shutdown_process(pid) 22:22:58 > sys.exit(1) 22:22:58 E SystemExit: 1 22:22:58 22:22:58 transportpce_tests/common/test_utils.py:234: SystemExit 22:22:58 ---------------------------- Captured stdout setup ----------------------------- 22:22:58 starting OpenDaylight... 22:22:58 starting KARAF (karaf221) TransportPCE build... 22:22:58 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_02_get_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd79c0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_03_connect_rdmb ___ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fae27c40> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_04_check_tapi_topos _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fd4d3060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_05_disconnect_roadmb _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fc713060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_06_connect_xpdra __ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fae27100> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_07_check_tapi_topos _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd7880> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_08_connect_rdma ___ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fae276a0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_09_connect_rdmc ___ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fd4d3060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_10_check_tapi_topos _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd60c0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_11_connect_xpdra_n1_to_roadma_pp1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fd4d3060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_12_connect_roadma_pp1_to_xpdra_n1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fe020> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_13_check_tapi_topology_T100G _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fd4d3060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_14_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd63e0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_15_connect_xpdrc __ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fe5c0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_16_connect_xpdrc_n1_to_roadmc_pp1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_17_connect_roadmc_pp1_to_xpdrc_n1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd5e40> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_18_check_tapi_topology_T100G _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fae27100> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_19_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd5e40> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_20_connect_spdr_sa1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fd4d3060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_21_connect_spdr_sc1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_22_check_tapi_topology_T100G _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fd4d3060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_23_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fdbc0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_24_connect_sprda_n1_to_roadma_pp2 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_25_connect_roadma_pp2_to_spdra_n1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fdbc0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_26_connect_sprdc_n1_to_roadmc_pp2 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fcd60> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_27_connect_roadmc_pp2_to_spdrc_n1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_28_check_tapi_topology_T100G _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fc7c0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_29_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9feac0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_30_add_oms_attributes _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_31_create_OCH_OTU4_service _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fd300> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_32_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9feac0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_33_create_ODU4_service _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_34_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fda80> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_35_connect_sprda_2_n2_to_roadma_pp3 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fefc0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_36_connect_roadma_pp3_to_spdra_2_n2 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_37_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fde40> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_38_delete_ODU4_service _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_39_delete_OCH_OTU4_service _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fe020> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_40_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fe340> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_41_disconnect_xponders_from_roadm _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_42_check_tapi_topology_T0 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fe340> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_43_get_tapi_topology_T100G _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9ff240> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_44_disconnect_roadma _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_45_disconnect_roadmc _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9ff420> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_46_check_tapi_topos _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9ff560> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_47_disconnect_xpdra _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_48_disconnect_xpdrc _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fe3e0> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_49_disconnect_spdr_sa1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9fda80> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_50_disconnect_spdr_sc1 _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fadd6660> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_51_check_uninstall_Tapi_Feature _ 22:22:58 22:22:58 cls = 22:22:58 func = . at 0x7fc6fa9ff060> 22:22:58 when = 'setup' 22:22:58 reraise = (, ) 22:22:58 22:22:58 @classmethod 22:22:58 def from_call( 22:22:58 cls, 22:22:58 func: Callable[[], TResult], 22:22:58 when: Literal["collect", "setup", "call", "teardown"], 22:22:58 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:22:58 ) -> CallInfo[TResult]: 22:22:58 """Call func, wrapping the result in a CallInfo. 22:22:58 22:22:58 :param func: 22:22:58 The function to call. Called without arguments. 22:22:58 :type func: Callable[[], _pytest.runner.TResult] 22:22:58 :param when: 22:22:58 The phase in which the function is called. 22:22:58 :param reraise: 22:22:58 Exception or exceptions that shall propagate if raised by the 22:22:58 function, instead of being wrapped in the CallInfo. 22:22:58 """ 22:22:58 excinfo = None 22:22:58 instant = timing.Instant() 22:22:58 try: 22:22:58 > result: TResult | None = func() 22:22:58 ^^^^^^ 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:22:58 lambda: runtest_hook(item=item, **kwds), 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:22:58 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:22:58 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:22:58 yield 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:22:58 return (yield) 22:22:58 ^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:22:58 item.session._setupstate.setup(item) 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:22:58 col.setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:22:58 super().setup() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:22:58 self._request._fillfixtures() 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:22:58 item.funcargs[argname] = self.getfixturevalue(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:22:58 fixturedef = self._get_active_fixturedef(argname) 22:22:58 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:22:58 fixturedef.execute(request=subrequest) 22:22:58 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:22:58 22:22:58 self = 22:22:58 request = > 22:22:58 22:22:58 def execute(self, request: SubRequest) -> FixtureValue: 22:22:58 """Return the value of this fixture, executing it if not cached.""" 22:22:58 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:22:58 # This needs to be done before checking if we have a cached value, since 22:22:58 # if a dependent fixture has their cache invalidated, e.g. due to 22:22:58 # parametrization, they finalize themselves and fixtures depending on it 22:22:58 # (which will likely include this fixture) setting `self.cached_result = None`. 22:22:58 # See #4871 22:22:58 requested_fixtures_that_should_finalize_us = [] 22:22:58 for argname in self.argnames: 22:22:58 fixturedef = request._get_active_fixturedef(argname) 22:22:58 # Saves requested fixtures in a list so we later can add our finalizer 22:22:58 # to them, ensuring that if a requested fixture gets torn down we get torn 22:22:58 # down first. This is generally handled by SetupState, but still currently 22:22:58 # needed when this fixture is not parametrized but depends on a parametrized 22:22:58 # fixture. 22:22:58 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:22:58 22:22:58 # Check for (and return) cached value/exception. 22:22:58 if self.cached_result is not None: 22:22:58 request_cache_key = self.cache_key(request) 22:22:58 cache_key = self.cached_result[1] 22:22:58 try: 22:22:58 # Attempt to make a normal == check: this might fail for objects 22:22:58 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:22:58 cache_hit = bool(request_cache_key == cache_key) 22:22:58 except (ValueError, RuntimeError): 22:22:58 # If the comparison raises, use 'is' as fallback. 22:22:58 cache_hit = request_cache_key is cache_key 22:22:58 22:22:58 if cache_hit: 22:22:58 if self.cached_result[2] is not None: 22:22:58 exc, exc_tb = self.cached_result[2] 22:22:58 raise exc.with_traceback(exc_tb) 22:22:58 else: 22:22:58 return self.cached_result[0] 22:22:58 # We have a previous but differently parametrized fixture instance 22:22:58 # so we need to tear it down before creating a new one. 22:22:58 self.finish(request) 22:22:58 assert self.cached_result is None 22:22:58 22:22:58 # Add finalizer to requested fixtures we saved previously. 22:22:58 # We make sure to do this after checking for cached value to avoid 22:22:58 # adding our finalizer multiple times. (#12135) 22:22:58 finalizer = functools.partial(self.finish, request=request) 22:22:58 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:22:58 parent_fixture.addfinalizer(finalizer) 22:22:58 22:22:58 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:22:58 # which is executed last. 22:22:58 > assert not self._finalizers 22:22:58 ^^^^^^^^^^^^^^^^^^^^ 22:22:58 E AssertionError 22:22:58 22:22:58 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:22:58 =========================== short test summary info ============================ 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_01_get_tapi_topology_T100G 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_02_get_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_03_connect_rdmb 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_04_check_tapi_topos 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_05_disconnect_roadmb 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_06_connect_xpdra 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_07_check_tapi_topos 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_08_connect_rdma 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_09_connect_rdmc 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_10_check_tapi_topos 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_11_connect_xpdra_n1_to_roadma_pp1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_12_connect_roadma_pp1_to_xpdra_n1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_13_check_tapi_topology_T100G 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_14_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_15_connect_xpdrc 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_16_connect_xpdrc_n1_to_roadmc_pp1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_17_connect_roadmc_pp1_to_xpdrc_n1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_18_check_tapi_topology_T100G 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_19_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_20_connect_spdr_sa1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_21_connect_spdr_sc1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_22_check_tapi_topology_T100G 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_23_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_24_connect_sprda_n1_to_roadma_pp2 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_25_connect_roadma_pp2_to_spdra_n1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_26_connect_sprdc_n1_to_roadmc_pp2 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_27_connect_roadmc_pp2_to_spdrc_n1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_28_check_tapi_topology_T100G 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_29_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_30_add_oms_attributes 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_31_create_OCH_OTU4_service 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_32_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_33_create_ODU4_service 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_34_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_35_connect_sprda_2_n2_to_roadma_pp3 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_36_connect_roadma_pp3_to_spdra_2_n2 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_37_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_38_delete_ODU4_service 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_39_delete_OCH_OTU4_service 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_40_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_41_disconnect_xponders_from_roadm 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_42_check_tapi_topology_T0 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_43_get_tapi_topology_T100G 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_44_disconnect_roadma 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_45_disconnect_roadmc 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_46_check_tapi_topos 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_47_disconnect_xpdra 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_48_disconnect_xpdrc 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_49_disconnect_spdr_sa1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_50_disconnect_spdr_sc1 22:22:58 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_51_check_uninstall_Tapi_Feature 22:22:58 51 errors in 109.09s (0:01:49) 22:22:58 tests_tapi: exit 1 (109.34 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=6959 22:22:59 tests_tapi: FAIL ✖ in 1 minute 57.87 seconds 22:22:59 tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:22:59 tests200: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:23:07 tests221: freeze> python -m pip freeze --all 22:23:07 tests200: freeze> python -m pip freeze --all 22:23:07 tests221: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:23:07 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 22:23:07 using environment variables from ./karaf221.env 22:23:07 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 22:23:07 tests200: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:23:07 tests200: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc200 22:23:07 using environment variables from ./karafoc200.env 22:23:07 pytest -q transportpce_tests/oc200/test01_portmapping.py 22:24:48 EEEEEEEEEEEEEEEEEEE [100%] 22:24:49 ==================================== ERRORS ==================================== 22:24:49 __ ERROR at setup of TestTransportPCEPortmapping.test_01_meta_data_insertion ___ 22:24:49 22:24:49 cls = 22:24:49 22:24:49 @classmethod 22:24:49 def setUpClass(cls): 22:24:49 > cls.processes = test_utils.start_tpce() 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 22:24:49 transportpce_tests/oc200/test01_portmapping.py:29: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 def start_tpce(): 22:24:49 if 'NO_ODL_STARTUP' in os.environ: 22:24:49 print('No OpenDaylight instance to start!') 22:24:49 return [] 22:24:49 print('starting OpenDaylight...') 22:24:49 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:24:49 process = start_lighty() 22:24:49 else: 22:24:49 process = start_karaf() 22:24:49 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:24:49 print('OpenDaylight started !') 22:24:49 else: 22:24:49 print('OpenDaylight failed to start !') 22:24:49 shutdown_process(process) 22:24:49 for pid in process_list: 22:24:49 shutdown_process(pid) 22:24:49 > sys.exit(1) 22:24:49 E SystemExit: 1 22:24:49 22:24:49 transportpce_tests/common/test_utils.py:234: SystemExit 22:24:49 ---------------------------- Captured stdout setup ----------------------------- 22:24:49 starting OpenDaylight... 22:24:49 starting KARAF (karafoc200) TransportPCE build... 22:24:49 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_02_catalog_input_insertion _ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa02b513420> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_device_connection _ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa028e17ec0> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_04_xpdr_device_connected __ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa02a5c7600> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_05_xpdr_portmapping_info __ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa028def740> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK5 _ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa02b513420> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa02a5c7600> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 __ ERROR at setup of TestTransportPCEPortmapping.test_08_mpdr_switching_pool ___ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa028e17880> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 ___ ERROR at setup of TestTransportPCEPortmapping.test_09_check_mccapprofile ___ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa028e176a0> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 22:24:49 22:24:49 cls = 22:24:49 func = . at 0x7fa028e17600> 22:24:49 when = 'setup' 22:24:49 reraise = (, ) 22:24:49 22:24:49 @classmethod 22:24:49 def from_call( 22:24:49 cls, 22:24:49 func: Callable[[], TResult], 22:24:49 when: Literal["collect", "setup", "call", "teardown"], 22:24:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:49 ) -> CallInfo[TResult]: 22:24:49 """Call func, wrapping the result in a CallInfo. 22:24:49 22:24:49 :param func: 22:24:49 The function to call. Called without arguments. 22:24:49 :type func: Callable[[], _pytest.runner.TResult] 22:24:49 :param when: 22:24:49 The phase in which the function is called. 22:24:49 :param reraise: 22:24:49 Exception or exceptions that shall propagate if raised by the 22:24:49 function, instead of being wrapped in the CallInfo. 22:24:49 """ 22:24:49 excinfo = None 22:24:49 instant = timing.Instant() 22:24:49 try: 22:24:49 > result: TResult | None = func() 22:24:49 ^^^^^^ 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:49 lambda: runtest_hook(item=item, **kwds), 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:49 yield 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:49 return (yield) 22:24:49 ^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:49 item.session._setupstate.setup(item) 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:49 col.setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:49 super().setup() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:49 self._request._fillfixtures() 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:49 fixturedef = self._get_active_fixturedef(argname) 22:24:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:49 fixturedef.execute(request=subrequest) 22:24:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:49 22:24:49 self = 22:24:49 request = > 22:24:49 22:24:49 def execute(self, request: SubRequest) -> FixtureValue: 22:24:49 """Return the value of this fixture, executing it if not cached.""" 22:24:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:49 # This needs to be done before checking if we have a cached value, since 22:24:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:49 # parametrization, they finalize themselves and fixtures depending on it 22:24:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:49 # See #4871 22:24:49 requested_fixtures_that_should_finalize_us = [] 22:24:49 for argname in self.argnames: 22:24:49 fixturedef = request._get_active_fixturedef(argname) 22:24:49 # Saves requested fixtures in a list so we later can add our finalizer 22:24:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:49 # down first. This is generally handled by SetupState, but still currently 22:24:49 # needed when this fixture is not parametrized but depends on a parametrized 22:24:49 # fixture. 22:24:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:49 22:24:49 # Check for (and return) cached value/exception. 22:24:49 if self.cached_result is not None: 22:24:49 request_cache_key = self.cache_key(request) 22:24:49 cache_key = self.cached_result[1] 22:24:49 try: 22:24:49 # Attempt to make a normal == check: this might fail for objects 22:24:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:49 cache_hit = bool(request_cache_key == cache_key) 22:24:49 except (ValueError, RuntimeError): 22:24:49 # If the comparison raises, use 'is' as fallback. 22:24:49 cache_hit = request_cache_key is cache_key 22:24:49 22:24:49 if cache_hit: 22:24:49 if self.cached_result[2] is not None: 22:24:49 exc, exc_tb = self.cached_result[2] 22:24:49 raise exc.with_traceback(exc_tb) 22:24:49 else: 22:24:49 return self.cached_result[0] 22:24:49 # We have a previous but differently parametrized fixture instance 22:24:49 # so we need to tear it down before creating a new one. 22:24:49 self.finish(request) 22:24:49 assert self.cached_result is None 22:24:49 22:24:49 # Add finalizer to requested fixtures we saved previously. 22:24:49 # We make sure to do this after checking for cached value to avoid 22:24:49 # adding our finalizer multiple times. (#12135) 22:24:49 finalizer = functools.partial(self.finish, request=request) 22:24:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:49 parent_fixture.addfinalizer(finalizer) 22:24:49 22:24:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:49 # which is executed last. 22:24:49 > assert not self._finalizers 22:24:49 ^^^^^^^^^^^^^^^^^^^^ 22:24:49 E AssertionError 22:24:49 22:24:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:49 =========================== short test summary info ============================ 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_01_meta_data_insertion 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_02_catalog_input_insertion 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_device_connection 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_04_xpdr_device_connected 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_05_xpdr_portmapping_info 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK5 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_08_mpdr_switching_pool 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_09_check_mccapprofile 22:24:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 22:24:49 10 errors in 101.90s (0:01:41) 22:24:49 Etests200: exit 1 (102.18 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc200 pid=7112 22:24:49 tests200: FAIL ✖ in 1 minute 51 seconds 22:24:49 tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:24:49 EEEEEEEEEEEEEEEEEEEEEEEEE [100%] 22:24:54 ==================================== ERRORS ==================================== 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_01_rdm_device_connection __ 22:24:54 22:24:54 cls = 22:24:54 22:24:54 @classmethod 22:24:54 def setUpClass(cls): 22:24:54 > cls.processes = test_utils.start_tpce() 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 22:24:54 transportpce_tests/2.2.1/test01_portmapping.py:33: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 def start_tpce(): 22:24:54 if 'NO_ODL_STARTUP' in os.environ: 22:24:54 print('No OpenDaylight instance to start!') 22:24:54 return [] 22:24:54 print('starting OpenDaylight...') 22:24:54 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:24:54 process = start_lighty() 22:24:54 else: 22:24:54 process = start_karaf() 22:24:54 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:24:54 print('OpenDaylight started !') 22:24:54 else: 22:24:54 print('OpenDaylight failed to start !') 22:24:54 shutdown_process(process) 22:24:54 for pid in process_list: 22:24:54 shutdown_process(pid) 22:24:54 > sys.exit(1) 22:24:54 E SystemExit: 1 22:24:54 22:24:54 transportpce_tests/common/test_utils.py:234: SystemExit 22:24:54 ---------------------------- Captured stdout setup ----------------------------- 22:24:54 starting OpenDaylight... 22:24:54 starting KARAF (karaf221) TransportPCE build... 22:24:54 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:24:54 __ ERROR at setup of TestTransportPCEPortmapping.test_02_rdm_device_connected __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31e700> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 __ ERROR at setup of TestTransportPCEPortmapping.test_03_rdm_portmapping_info __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35ed40> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52da27240> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52cc3b060> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG1_PP3_TXRX _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31e200> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_07_rdm_portmapping_SRG3_PP1_TXRX _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52da27240> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_08_xpdr_device_connection _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35fba0> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_09_xpdr_device_connected __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35f240> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_portmapping_info __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52da27240> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_portmapping_NETWORK1 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35f7e0> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_portmapping_XPDR2_NETWORK1 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35fce0> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_13_xpdr_portmapping_XPDR1_CLIENT1 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35f240> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_14_xpdr_portmapping_XPDR1_CLIENT2 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35ee80> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_15_spdr_device_connection _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52da27240> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_16_spdr_device_connected __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35e520> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_17_spdr_portmapping_info __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35db20> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_18_spdr_switching_pool_1 __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35fba0> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_19_spdr_switching_pool_2 __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35ed40> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_20_spdr_switching_pool_3 __ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d3a0> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_21_spdr_portmapping_mappings _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35fd80> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_22_spdr_portmapping_XPDR1_CLIENT1 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35db20> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_23_spdr_portmapping_XPDR1_NETWORK1 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d120> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_24_spdr_portmapping_XPDR2_CLIENT2 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d300> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_25_spdr_portmapping_XPDR2_NETWORK2 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35db20> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_26_spdr_portmapping_XPDR3_CLIENT3 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b394180> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_27_spdr_portmapping_XPDR3_NETWORK1 _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d120> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_28_spdr_device_disconnection _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b35db20> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_29_xpdr_device_disconnected _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b3944a0> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_30_xpdr_device_disconnection _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d120> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_31_xpdr_device_disconnected _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b395800> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_32_xpdr_device_not_connected _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b395440> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_33_rdm_device_disconnection _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d120> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_34_rdm_device_disconnected _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b395580> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 _ ERROR at setup of TestTransportPCEPortmapping.test_35_rdm_device_not_connected _ 22:24:54 22:24:54 cls = 22:24:54 func = . at 0x7ff52b31d120> 22:24:54 when = 'setup' 22:24:54 reraise = (, ) 22:24:54 22:24:54 @classmethod 22:24:54 def from_call( 22:24:54 cls, 22:24:54 func: Callable[[], TResult], 22:24:54 when: Literal["collect", "setup", "call", "teardown"], 22:24:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:24:54 ) -> CallInfo[TResult]: 22:24:54 """Call func, wrapping the result in a CallInfo. 22:24:54 22:24:54 :param func: 22:24:54 The function to call. Called without arguments. 22:24:54 :type func: Callable[[], _pytest.runner.TResult] 22:24:54 :param when: 22:24:54 The phase in which the function is called. 22:24:54 :param reraise: 22:24:54 Exception or exceptions that shall propagate if raised by the 22:24:54 function, instead of being wrapped in the CallInfo. 22:24:54 """ 22:24:54 excinfo = None 22:24:54 instant = timing.Instant() 22:24:54 try: 22:24:54 > result: TResult | None = func() 22:24:54 ^^^^^^ 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:24:54 lambda: runtest_hook(item=item, **kwds), 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:24:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:24:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:24:54 yield 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:24:54 return (yield) 22:24:54 ^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:24:54 item.session._setupstate.setup(item) 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:24:54 col.setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:24:54 super().setup() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:24:54 self._request._fillfixtures() 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:24:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:24:54 fixturedef = self._get_active_fixturedef(argname) 22:24:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:24:54 fixturedef.execute(request=subrequest) 22:24:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:24:54 22:24:54 self = 22:24:54 request = > 22:24:54 22:24:54 def execute(self, request: SubRequest) -> FixtureValue: 22:24:54 """Return the value of this fixture, executing it if not cached.""" 22:24:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:24:54 # This needs to be done before checking if we have a cached value, since 22:24:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:24:54 # parametrization, they finalize themselves and fixtures depending on it 22:24:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:24:54 # See #4871 22:24:54 requested_fixtures_that_should_finalize_us = [] 22:24:54 for argname in self.argnames: 22:24:54 fixturedef = request._get_active_fixturedef(argname) 22:24:54 # Saves requested fixtures in a list so we later can add our finalizer 22:24:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:24:54 # down first. This is generally handled by SetupState, but still currently 22:24:54 # needed when this fixture is not parametrized but depends on a parametrized 22:24:54 # fixture. 22:24:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:24:54 22:24:54 # Check for (and return) cached value/exception. 22:24:54 if self.cached_result is not None: 22:24:54 request_cache_key = self.cache_key(request) 22:24:54 cache_key = self.cached_result[1] 22:24:54 try: 22:24:54 # Attempt to make a normal == check: this might fail for objects 22:24:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:24:54 cache_hit = bool(request_cache_key == cache_key) 22:24:54 except (ValueError, RuntimeError): 22:24:54 # If the comparison raises, use 'is' as fallback. 22:24:54 cache_hit = request_cache_key is cache_key 22:24:54 22:24:54 if cache_hit: 22:24:54 if self.cached_result[2] is not None: 22:24:54 exc, exc_tb = self.cached_result[2] 22:24:54 raise exc.with_traceback(exc_tb) 22:24:54 else: 22:24:54 return self.cached_result[0] 22:24:54 # We have a previous but differently parametrized fixture instance 22:24:54 # so we need to tear it down before creating a new one. 22:24:54 self.finish(request) 22:24:54 assert self.cached_result is None 22:24:54 22:24:54 # Add finalizer to requested fixtures we saved previously. 22:24:54 # We make sure to do this after checking for cached value to avoid 22:24:54 # adding our finalizer multiple times. (#12135) 22:24:54 finalizer = functools.partial(self.finish, request=request) 22:24:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:24:54 parent_fixture.addfinalizer(finalizer) 22:24:54 22:24:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:24:54 # which is executed last. 22:24:54 > assert not self._finalizers 22:24:54 ^^^^^^^^^^^^^^^^^^^^ 22:24:54 E AssertionError 22:24:54 22:24:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:24:54 =========================== short test summary info ============================ 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_rdm_device_connection 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_rdm_device_connected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_rdm_portmapping_info 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG1_PP3_TXRX 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_rdm_portmapping_SRG3_PP1_TXRX 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_xpdr_device_connection 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_xpdr_device_connected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_portmapping_info 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_portmapping_NETWORK1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_portmapping_XPDR2_NETWORK1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_13_xpdr_portmapping_XPDR1_CLIENT1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_14_xpdr_portmapping_XPDR1_CLIENT2 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_15_spdr_device_connection 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_16_spdr_device_connected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_17_spdr_portmapping_info 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_18_spdr_switching_pool_1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_19_spdr_switching_pool_2 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_20_spdr_switching_pool_3 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_21_spdr_portmapping_mappings 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_22_spdr_portmapping_XPDR1_CLIENT1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_23_spdr_portmapping_XPDR1_NETWORK1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_24_spdr_portmapping_XPDR2_CLIENT2 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_25_spdr_portmapping_XPDR2_NETWORK2 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_26_spdr_portmapping_XPDR3_CLIENT3 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_27_spdr_portmapping_XPDR3_NETWORK1 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_28_spdr_device_disconnection 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_29_xpdr_device_disconnected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_30_xpdr_device_disconnection 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_31_xpdr_device_disconnected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_32_xpdr_device_not_connected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_33_rdm_device_disconnection 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_34_rdm_device_disconnected 22:24:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_35_rdm_device_not_connected 22:24:54 35 errors in 106.55s (0:01:46) 22:24:54 tests221: exit 1 (106.81 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 pid=7101 22:24:54 tests221: FAIL ✖ in 1 minute 55.62 seconds 22:24:54 tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-transportpce-master/tests/test-requirements.txt 22:24:56 tests71: freeze> python -m pip freeze --all 22:24:56 tests71: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:24:56 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 22:24:56 using environment variables from ./karaf71.env 22:24:56 pytest -q transportpce_tests/7.1/test01_portmapping.py 22:25:00 tests_hybrid: freeze> python -m pip freeze --all 22:25:00 tests_hybrid: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.2,cryptography==50.0.2,dict2xml==1.7.8,idna==3.20,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.8.0 22:25:00 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 22:25:00 using environment variables from ./karaf221.env 22:25:00 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 22:26:37 EEEEEEEEEEEE [100%] 22:26:39 ==================================== ERRORS ==================================== 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_01_xpdr_device_connection _ 22:26:39 22:26:39 cls = 22:26:39 22:26:39 @classmethod 22:26:39 def setUpClass(cls): 22:26:39 > cls.processes = test_utils.start_tpce() 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 22:26:39 transportpce_tests/7.1/test01_portmapping.py:32: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 def start_tpce(): 22:26:39 if 'NO_ODL_STARTUP' in os.environ: 22:26:39 print('No OpenDaylight instance to start!') 22:26:39 return [] 22:26:39 print('starting OpenDaylight...') 22:26:39 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:26:39 process = start_lighty() 22:26:39 else: 22:26:39 process = start_karaf() 22:26:39 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:26:39 print('OpenDaylight started !') 22:26:39 else: 22:26:39 print('OpenDaylight failed to start !') 22:26:39 shutdown_process(process) 22:26:39 for pid in process_list: 22:26:39 shutdown_process(pid) 22:26:39 > sys.exit(1) 22:26:39 E SystemExit: 1 22:26:39 22:26:39 transportpce_tests/common/test_utils.py:234: SystemExit 22:26:39 ---------------------------- Captured stdout setup ----------------------------- 22:26:39 starting OpenDaylight... 22:26:39 starting KARAF (karaf71) TransportPCE build... 22:26:39 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_02_xpdr_device_connected __ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab736122a0> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_portmapping_info __ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab73613a60> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_04_tpdr_portmapping_NETWORK1 _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab75d332e0> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_05_tpdr_portmapping_CLIENT1 _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab73613a60> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK1 _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab736137e0> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab73613880> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 ___ ERROR at setup of TestTransportPCEPortmapping.test_08_check_mccapprofile ___ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab736136a0> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 __ ERROR at setup of TestTransportPCEPortmapping.test_09_mpdr_switching_pool ___ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab73610900> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab736136a0> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_device_disconnected _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab736137e0> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_device_not_connected _ 22:26:39 22:26:39 cls = 22:26:39 func = . at 0x7fab73610900> 22:26:39 when = 'setup' 22:26:39 reraise = (, ) 22:26:39 22:26:39 @classmethod 22:26:39 def from_call( 22:26:39 cls, 22:26:39 func: Callable[[], TResult], 22:26:39 when: Literal["collect", "setup", "call", "teardown"], 22:26:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:39 ) -> CallInfo[TResult]: 22:26:39 """Call func, wrapping the result in a CallInfo. 22:26:39 22:26:39 :param func: 22:26:39 The function to call. Called without arguments. 22:26:39 :type func: Callable[[], _pytest.runner.TResult] 22:26:39 :param when: 22:26:39 The phase in which the function is called. 22:26:39 :param reraise: 22:26:39 Exception or exceptions that shall propagate if raised by the 22:26:39 function, instead of being wrapped in the CallInfo. 22:26:39 """ 22:26:39 excinfo = None 22:26:39 instant = timing.Instant() 22:26:39 try: 22:26:39 > result: TResult | None = func() 22:26:39 ^^^^^^ 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:39 lambda: runtest_hook(item=item, **kwds), 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:39 yield 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:39 return (yield) 22:26:39 ^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:39 item.session._setupstate.setup(item) 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:39 col.setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:39 super().setup() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:39 self._request._fillfixtures() 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:39 fixturedef = self._get_active_fixturedef(argname) 22:26:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:39 fixturedef.execute(request=subrequest) 22:26:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:39 22:26:39 self = 22:26:39 request = > 22:26:39 22:26:39 def execute(self, request: SubRequest) -> FixtureValue: 22:26:39 """Return the value of this fixture, executing it if not cached.""" 22:26:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:39 # This needs to be done before checking if we have a cached value, since 22:26:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:39 # parametrization, they finalize themselves and fixtures depending on it 22:26:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:39 # See #4871 22:26:39 requested_fixtures_that_should_finalize_us = [] 22:26:39 for argname in self.argnames: 22:26:39 fixturedef = request._get_active_fixturedef(argname) 22:26:39 # Saves requested fixtures in a list so we later can add our finalizer 22:26:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:39 # down first. This is generally handled by SetupState, but still currently 22:26:39 # needed when this fixture is not parametrized but depends on a parametrized 22:26:39 # fixture. 22:26:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:39 22:26:39 # Check for (and return) cached value/exception. 22:26:39 if self.cached_result is not None: 22:26:39 request_cache_key = self.cache_key(request) 22:26:39 cache_key = self.cached_result[1] 22:26:39 try: 22:26:39 # Attempt to make a normal == check: this might fail for objects 22:26:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:39 cache_hit = bool(request_cache_key == cache_key) 22:26:39 except (ValueError, RuntimeError): 22:26:39 # If the comparison raises, use 'is' as fallback. 22:26:39 cache_hit = request_cache_key is cache_key 22:26:39 22:26:39 if cache_hit: 22:26:39 if self.cached_result[2] is not None: 22:26:39 exc, exc_tb = self.cached_result[2] 22:26:39 raise exc.with_traceback(exc_tb) 22:26:39 else: 22:26:39 return self.cached_result[0] 22:26:39 # We have a previous but differently parametrized fixture instance 22:26:39 # so we need to tear it down before creating a new one. 22:26:39 self.finish(request) 22:26:39 assert self.cached_result is None 22:26:39 22:26:39 # Add finalizer to requested fixtures we saved previously. 22:26:39 # We make sure to do this after checking for cached value to avoid 22:26:39 # adding our finalizer multiple times. (#12135) 22:26:39 finalizer = functools.partial(self.finish, request=request) 22:26:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:39 parent_fixture.addfinalizer(finalizer) 22:26:39 22:26:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:39 # which is executed last. 22:26:39 > assert not self._finalizers 22:26:39 ^^^^^^^^^^^^^^^^^^^^ 22:26:39 E AssertionError 22:26:39 22:26:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:39 =========================== short test summary info ============================ 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_xpdr_device_connection 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_xpdr_device_connected 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_portmapping_info 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_tpdr_portmapping_NETWORK1 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_tpdr_portmapping_CLIENT1 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK1 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_check_mccapprofile 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_mpdr_switching_pool 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_device_disconnected 22:26:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_device_not_connected 22:26:39 12 errors in 102.21s (0:01:42) 22:26:39 tests71: exit 1 (102.47 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 pid=7235 22:26:41 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 22:26:50 ==================================== ERRORS ==================================== 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_01_connect_xpdrA _ 22:26:50 22:26:50 cls = 22:26:50 22:26:50 @classmethod 22:26:50 def setUpClass(cls): 22:26:50 > cls.processes = test_utils.start_tpce() 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 22:26:50 transportpce_tests/hybrid/test01_device_change_notifications.py:76: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 def start_tpce(): 22:26:50 if 'NO_ODL_STARTUP' in os.environ: 22:26:50 print('No OpenDaylight instance to start!') 22:26:50 return [] 22:26:50 print('starting OpenDaylight...') 22:26:50 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:26:50 process = start_lighty() 22:26:50 else: 22:26:50 process = start_karaf() 22:26:50 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:26:50 print('OpenDaylight started !') 22:26:50 else: 22:26:50 print('OpenDaylight failed to start !') 22:26:50 shutdown_process(process) 22:26:50 for pid in process_list: 22:26:50 shutdown_process(pid) 22:26:50 > sys.exit(1) 22:26:50 E SystemExit: 1 22:26:50 22:26:50 transportpce_tests/common/test_utils.py:234: SystemExit 22:26:50 ---------------------------- Captured stdout setup ----------------------------- 22:26:50 starting OpenDaylight... 22:26:50 starting KARAF (karaf221) TransportPCE build... 22:26:50 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_02_connect_xpdrC _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919276ca0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_03_connect_rdmA _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192cbe20> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_04_connect_rdmC _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f291b97af20> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_05_connect_xpdrA_N1_to_roadmA_PP1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919275080> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_06_connect_roadmA_PP1_to_xpdrA_N1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919274f40> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_07_connect_xpdrC_N1_to_roadmC_PP1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919276ca0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_08_connect_roadmC_PP1_to_xpdrC_N1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f291b97af20> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_09_add_omsAttributes_ROADMA_ROADMC _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192ca5c0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_10_add_omsAttributes_ROADMC_ROADMA _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192ca840> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_11_create_eth_service1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919276ca0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_12_get_eth_service1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9940> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_13_change_status_line_port_xpdra _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192cab60> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_14_check_update_portmapping _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919276ca0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_15_check_update_openroadm_topo _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9da0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_16_check_update_service1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_17_restore_status_line_port_xpdra _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919275580> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_18_check_update_portmapping_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9da0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_19_check_update_openroadm_topo_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919275580> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_20_check_update_service1_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_21_change_status_port_roadma_srg _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2919275580> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_22_check_update_portmapping _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_23_check_update_openroadm_topo _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918caa0c0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_24_restore_status_port_roadma_srg _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_25_check_update_portmapping_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918caa0c0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_26_check_update_openroadm_topo_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9440> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_27_check_update_service1_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_28_change_status_line_port_roadma_deg _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9940> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_29_check_update_portmapping _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9a80> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_30_check_update_openroadm_topo _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_31_restore_status_line_port_roadma_srg _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9760> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_32_check_update_portmapping_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca8900> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_33_check_update_openroadm_topo_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_34_check_update_service1_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca8e00> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_35_change_status_line_port_xpdrc _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca8900> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_36_check_update_portmapping _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_37_check_update_openroadm_topo _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca89a0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_38_restore_status_line_port_xpdrc _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_39_check_update_portmapping_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca9120> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_40_check_update_openroadm_topo_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca8fe0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_41_check_update_service1_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_42_change_status_port_roadma_srg _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca8fe0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_43_check_update_portmapping _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918caaa20> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_44_check_update_openroadm_topo _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_45_check_update_service1_ok _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca91c0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_46_delete_eth_service1 _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca93a0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_47_disconnect_xponders_from_roadm _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_48_disconnect_XPDRA _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918ca89a0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_49_disconnect_XPDRC _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918caa5c0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_50_disconnect_ROADMA _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f29192759e0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_51_disconnect_ROADMC _ 22:26:50 22:26:50 cls = 22:26:50 func = . at 0x7f2918caa2a0> 22:26:50 when = 'setup' 22:26:50 reraise = (, ) 22:26:50 22:26:50 @classmethod 22:26:50 def from_call( 22:26:50 cls, 22:26:50 func: Callable[[], TResult], 22:26:50 when: Literal["collect", "setup", "call", "teardown"], 22:26:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:26:50 ) -> CallInfo[TResult]: 22:26:50 """Call func, wrapping the result in a CallInfo. 22:26:50 22:26:50 :param func: 22:26:50 The function to call. Called without arguments. 22:26:50 :type func: Callable[[], _pytest.runner.TResult] 22:26:50 :param when: 22:26:50 The phase in which the function is called. 22:26:50 :param reraise: 22:26:50 Exception or exceptions that shall propagate if raised by the 22:26:50 function, instead of being wrapped in the CallInfo. 22:26:50 """ 22:26:50 excinfo = None 22:26:50 instant = timing.Instant() 22:26:50 try: 22:26:50 > result: TResult | None = func() 22:26:50 ^^^^^^ 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:26:50 lambda: runtest_hook(item=item, **kwds), 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:26:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:26:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:26:50 yield 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:26:50 return (yield) 22:26:50 ^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:26:50 item.session._setupstate.setup(item) 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:26:50 col.setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:26:50 super().setup() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:26:50 self._request._fillfixtures() 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:26:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:26:50 fixturedef = self._get_active_fixturedef(argname) 22:26:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:26:50 fixturedef.execute(request=subrequest) 22:26:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:26:50 22:26:50 self = 22:26:50 request = > 22:26:50 22:26:50 def execute(self, request: SubRequest) -> FixtureValue: 22:26:50 """Return the value of this fixture, executing it if not cached.""" 22:26:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:26:50 # This needs to be done before checking if we have a cached value, since 22:26:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:26:50 # parametrization, they finalize themselves and fixtures depending on it 22:26:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:26:50 # See #4871 22:26:50 requested_fixtures_that_should_finalize_us = [] 22:26:50 for argname in self.argnames: 22:26:50 fixturedef = request._get_active_fixturedef(argname) 22:26:50 # Saves requested fixtures in a list so we later can add our finalizer 22:26:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:26:50 # down first. This is generally handled by SetupState, but still currently 22:26:50 # needed when this fixture is not parametrized but depends on a parametrized 22:26:50 # fixture. 22:26:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:26:50 22:26:50 # Check for (and return) cached value/exception. 22:26:50 if self.cached_result is not None: 22:26:50 request_cache_key = self.cache_key(request) 22:26:50 cache_key = self.cached_result[1] 22:26:50 try: 22:26:50 # Attempt to make a normal == check: this might fail for objects 22:26:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:26:50 cache_hit = bool(request_cache_key == cache_key) 22:26:50 except (ValueError, RuntimeError): 22:26:50 # If the comparison raises, use 'is' as fallback. 22:26:50 cache_hit = request_cache_key is cache_key 22:26:50 22:26:50 if cache_hit: 22:26:50 if self.cached_result[2] is not None: 22:26:50 exc, exc_tb = self.cached_result[2] 22:26:50 raise exc.with_traceback(exc_tb) 22:26:50 else: 22:26:50 return self.cached_result[0] 22:26:50 # We have a previous but differently parametrized fixture instance 22:26:50 # so we need to tear it down before creating a new one. 22:26:50 self.finish(request) 22:26:50 assert self.cached_result is None 22:26:50 22:26:50 # Add finalizer to requested fixtures we saved previously. 22:26:50 # We make sure to do this after checking for cached value to avoid 22:26:50 # adding our finalizer multiple times. (#12135) 22:26:50 finalizer = functools.partial(self.finish, request=request) 22:26:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:26:50 parent_fixture.addfinalizer(finalizer) 22:26:50 22:26:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:26:50 # which is executed last. 22:26:50 > assert not self._finalizers 22:26:50 ^^^^^^^^^^^^^^^^^^^^ 22:26:50 E AssertionError 22:26:50 22:26:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:26:50 =========================== short test summary info ============================ 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_01_connect_xpdrA 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_02_connect_xpdrC 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_03_connect_rdmA 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_04_connect_rdmC 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_05_connect_xpdrA_N1_to_roadmA_PP1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_06_connect_roadmA_PP1_to_xpdrA_N1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_07_connect_xpdrC_N1_to_roadmC_PP1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_08_connect_roadmC_PP1_to_xpdrC_N1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_09_add_omsAttributes_ROADMA_ROADMC 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_10_add_omsAttributes_ROADMC_ROADMA 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_11_create_eth_service1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_12_get_eth_service1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_13_change_status_line_port_xpdra 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_14_check_update_portmapping 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_15_check_update_openroadm_topo 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_16_check_update_service1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_17_restore_status_line_port_xpdra 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_18_check_update_portmapping_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_19_check_update_openroadm_topo_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_20_check_update_service1_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_21_change_status_port_roadma_srg 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_22_check_update_portmapping 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_23_check_update_openroadm_topo 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_24_restore_status_port_roadma_srg 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_25_check_update_portmapping_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_26_check_update_openroadm_topo_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_27_check_update_service1_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_28_change_status_line_port_roadma_deg 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_29_check_update_portmapping 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_30_check_update_openroadm_topo 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_31_restore_status_line_port_roadma_srg 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_32_check_update_portmapping_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_33_check_update_openroadm_topo_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_34_check_update_service1_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_35_change_status_line_port_xpdrc 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_36_check_update_portmapping 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_37_check_update_openroadm_topo 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_38_restore_status_line_port_xpdrc 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_39_check_update_portmapping_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_40_check_update_openroadm_topo_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_41_check_update_service1_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_42_change_status_port_roadma_srg 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_43_check_update_portmapping 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_44_check_update_openroadm_topo 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_45_check_update_service1_ok 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_46_delete_eth_service1 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_47_disconnect_xponders_from_roadm 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_48_disconnect_XPDRA 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_49_disconnect_XPDRC 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_50_disconnect_ROADMA 22:26:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_51_disconnect_ROADMC 22:26:50 51 errors in 109.52s (0:01:49) 22:26:50 tests71: FAIL ✖ in 1 minute 49.51 seconds 22:26:50 tests_hybrid: exit 1 (109.82 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid pid=7252 22:26:50 buildcontroller: FAIL code 1 (10.14=setup[9.37]+cmd[0.77] seconds) 22:26:50 sims: OK (10.99=setup[7.14]+cmd[3.85] seconds) 22:26:50 testsPCE: FAIL code 1 (174.22=setup[50.18]+cmd[124.04] seconds) 22:26:50 build_karaf_tests221: FAIL code 127 (6.82=setup[6.81]+cmd[0.01] seconds) 22:26:50 tests_tapi: FAIL code 1 (117.87=setup[8.52]+cmd[109.34] seconds) 22:26:50 tests221: FAIL code 1 (115.62=setup[8.81]+cmd[106.81] seconds) 22:26:50 build_karaf_tests71: FAIL code 127 (6.71=setup[6.71]+cmd[0.00] seconds) 22:26:50 tests71: FAIL code 1 (109.51=setup[7.04]+cmd[102.47] seconds) 22:26:50 build_karaf_tests200: FAIL code 127 (6.54=setup[6.52]+cmd[0.02] seconds) 22:26:50 tests200: FAIL code 1 (111.00=setup[8.82]+cmd[102.18] seconds) 22:26:50 tests_hybrid: FAIL code 1 (116.22=setup[6.40]+cmd[109.82] seconds) 22:26:50 buildlighty: FAIL code 9 (6.66=setup[6.65]+cmd[0.01] seconds) 22:26:50 docs: OK (19.70=setup[17.07]+cmd[2.63] seconds) 22:26:50 docs-linkcheck: OK (21.51=setup[17.27]+cmd[4.24] seconds) 22:26:50 checkbashisms: OK (3.06=setup[1.88]+cmd[0.01,0.04,1.14] seconds) 22:26:50 pre-commit: OK (59.62=setup[3.18]+cmd[0.00,0.00,46.83,9.60] seconds) 22:26:50 pylint: FAIL code 1 (22.91=setup[4.48]+cmd[18.43] seconds) 22:26:50 evaluation failed :( (557.04 seconds) 22:26:50 + tox_status=1 22:26:50 + echo '---> Completed tox runs' 22:26:50 ---> Completed tox runs 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/build_karaf_tests200/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=build_karaf_tests200 22:26:50 + cp -r .tox/build_karaf_tests200/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests200 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/build_karaf_tests221/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=build_karaf_tests221 22:26:50 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/build_karaf_tests71/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=build_karaf_tests71 22:26:50 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/buildcontroller/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=buildcontroller 22:26:50 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/buildlighty/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=buildlighty 22:26:50 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/checkbashisms/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=checkbashisms 22:26:50 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/docs-linkcheck/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=docs-linkcheck 22:26:50 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/docs/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=docs 22:26:50 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/pre-commit/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=pre-commit 22:26:50 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/pylint/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=pylint 22:26:50 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/sims/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=sims 22:26:50 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/tests200/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=tests200 22:26:50 + cp -r .tox/tests200/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests200 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/tests221/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=tests221 22:26:50 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/tests71/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=tests71 22:26:50 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/testsPCE/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=testsPCE 22:26:50 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/tests_hybrid/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=tests_hybrid 22:26:50 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 22:26:50 + for i in .tox/*/log 22:26:50 ++ echo .tox/tests_tapi/log 22:26:50 ++ awk -F/ '{print $2}' 22:26:50 + tox_env=tests_tapi 22:26:50 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 22:26:50 + DOC_DIR=docs/_build/html 22:26:50 + [[ -d docs/_build/html ]] 22:26:50 + echo '---> Archiving generated docs' 22:26:50 ---> Archiving generated docs 22:26:50 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 22:26:50 + echo '---> tox-run.sh ends' 22:26:50 ---> tox-run.sh ends 22:26:50 + test 1 -eq 0 22:26:50 + exit 1 22:26:50 ++ '[' 1 = 1 ']' 22:26:50 ++ '[' -x /usr/bin/clear_console ']' 22:26:50 ++ /usr/bin/clear_console -q 22:26:50 Build step 'Execute shell' marked build as failure 22:26:50 $ ssh-agent -k 22:26:50 unset SSH_AUTH_SOCK; 22:26:50 unset SSH_AGENT_PID; 22:26:50 echo Agent pid 4280 killed; 22:26:50 [ssh-agent] Stopped. 22:26:50 [PostBuildScript] - [INFO] Executing post build scripts. 22:26:50 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins12697879521671526229.sh 22:26:50 ---> sysstat.sh 22:26:50 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins16494894345683745835.sh 22:26:50 ---> package-listing.sh 22:26:50 + '[' -f /etc/os-release ']' 22:26:50 + . /etc/os-release 22:26:50 ++ PRETTY_NAME='Ubuntu 22.04.5 LTS' 22:26:50 ++ NAME=Ubuntu 22:26:50 ++ VERSION_ID=22.04 22:26:50 ++ VERSION='22.04.5 LTS (Jammy Jellyfish)' 22:26:50 ++ VERSION_CODENAME=jammy 22:26:50 ++ ID=ubuntu 22:26:50 ++ ID_LIKE=debian 22:26:50 ++ HOME_URL=https://www.ubuntu.com/ 22:26:50 ++ SUPPORT_URL=https://help.ubuntu.com/ 22:26:50 ++ BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/ 22:26:50 ++ PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy 22:26:50 ++ UBUNTU_CODENAME=jammy 22:26:50 + case " ${ID:-} ${ID_LIKE:-} " in 22:26:50 + OS_FAMILY=debian 22:26:50 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 22:26:50 + START_PACKAGES=/tmp/packages_start.txt 22:26:50 + END_PACKAGES=/tmp/packages_end.txt 22:26:50 + DIFF_PACKAGES=/tmp/packages_diff.txt 22:26:50 + PACKAGES=/tmp/packages_start.txt 22:26:50 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 22:26:50 + PACKAGES=/tmp/packages_end.txt 22:26:50 + case "${OS_FAMILY}" in 22:26:50 + dpkg -l 22:26:50 + grep '^ii' 22:26:51 + '[' -f /tmp/packages_start.txt ']' 22:26:51 + '[' -f /tmp/packages_end.txt ']' 22:26:51 + diff /tmp/packages_start.txt /tmp/packages_end.txt 22:26:51 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 22:26:51 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 22:26:51 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 22:26:51 + exit 0 22:26:51 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins9058456190671102072.sh 22:26:51 ---> capture-instance-metadata.sh 22:26:51 Setup pyenv: 22:26:51 system 22:26:51 3.8.20 22:26:51 3.9.20 22:26:51 3.10.15 22:26:51 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:26:51 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-yf3Q from file:/tmp/.os_lf_venv 22:26:51 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:26:53 lf-activate-venv(): INFO: Installing additional packages: lftools 22:27:09 lf-activate-venv(): INFO: Adding /tmp/venv-yf3Q/bin to PATH 22:27:09 INFO: Running in OpenStack, capturing instance metadata 22:27:10 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins1430631842262725953.sh 22:27:10 provisioning config files... 22:27:10 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #6139 22:27:10 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config11534407578959771758tmp 22:27:10 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 22:27:10 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 22:27:10 provisioning config files... 22:27:10 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 22:27:10 [EnvInject] - Injecting environment variables from a build step. 22:27:10 [EnvInject] - Injecting as environment variables the properties content 22:27:10 SERVER_ID=logs 22:27:10 22:27:10 [EnvInject] - Variables injected successfully. 22:27:10 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins11236938111226031220.sh 22:27:10 ---> create-netrc.sh 22:27:10 WARN: Log server credential not found. 22:27:10 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins7125219087931048412.sh 22:27:10 ---> python-tools-install.sh 22:27:11 Setup pyenv: 22:27:11 system 22:27:11 3.8.20 22:27:11 3.9.20 22:27:11 3.10.15 22:27:11 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:27:11 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-yf3Q from file:/tmp/.os_lf_venv 22:27:11 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:27:13 lf-activate-venv(): INFO: Installing additional packages: lftools 22:27:21 lf-activate-venv(): INFO: Adding /tmp/venv-yf3Q/bin to PATH 22:27:21 [transportpce-tox-verify-transportpce-master] $ /bin/sh /tmp/jenkins13184916981209501183.sh 22:27:21 ---> uv-install.sh 22:27:21 uv 0.12.23 is already installed 22:27:21 uvx 0.12.23 (x86_64-unknown-linux-gnu) 22:27:21 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins1424249643753586852.sh 22:27:21 ---> sudo-logs.sh 22:27:21 Archiving 'sudo' log.. 22:27:22 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins16379724807728792385.sh 22:27:22 ---> job-cost.sh 22:27:22 INFO: Activating Python virtual environment... 22:27:22 Setup pyenv: 22:27:22 system 22:27:22 3.8.20 22:27:22 3.9.20 22:27:22 3.10.15 22:27:22 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:27:22 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-yf3Q from file:/tmp/.os_lf_venv 22:27:22 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:27:24 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 22:27:32 lf-activate-venv(): INFO: Adding /tmp/venv-yf3Q/bin to PATH 22:27:32 INFO: No stack-cost file found 22:27:32 INFO: Instance uptime: 24186s 22:27:32 INFO: Fetching instance metadata (attempt 1 of 3)... 22:27:32 DEBUG: URL: http://169.254.169.254/latest/meta-data/instance-type 22:27:32 INFO: Successfully fetched instance metadata 22:27:32 INFO: Instance type: v3-standard-4 22:27:32 INFO: Retrieving pricing info for: v3-standard-4 22:27:32 INFO: Fetching Vexxhost pricing API (attempt 1 of 3)... 22:27:32 DEBUG: URL: https://pricing.vexxhost.net/v1/pricing/v3-standard-4/cost?seconds=24186 22:27:32 INFO: Successfully fetched Vexxhost pricing API 22:27:32 INFO: Retrieved cost: 0.77 22:27:32 INFO: Retrieved resource: v3-standard-4 22:27:32 INFO: Creating archive directory: /w/workspace/transportpce-tox-verify-transportpce-master/archives/cost 22:27:32 INFO: Archiving costs to: /w/workspace/transportpce-tox-verify-transportpce-master/archives/cost.csv 22:27:32 INFO: Successfully archived job cost data 22:27:32 DEBUG: Cost data: transportpce-tox-verify-transportpce-master,6139,2026-10-06 22:27:32,v3-standard-4,24186,0.77,0.00,FAILURE 22:27:32 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins14752483970357365200.sh 22:27:32 ---> logs-deploy.sh 22:27:32 Setup pyenv: 22:27:32 system 22:27:32 3.8.20 22:27:32 3.9.20 22:27:32 3.10.15 22:27:32 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:27:33 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-yf3Q from file:/tmp/.os_lf_venv 22:27:33 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:27:34 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 22:27:43 lf-activate-venv(): INFO: Adding /tmp/venv-yf3Q/bin to PATH 22:27:43 WARNING: Nexus logging server not set 22:27:43 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/6139/ 22:27:43 INFO: archiving logs to S3 22:27:44 ---> uname -a: 22:27:44 Linux prd-ubuntu2204-docker-4c-16g-62479 5.15.0-198-generic #208-Ubuntu SMP Fri Sep 4 10:22:38 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux 22:27:44 22:27:44 22:27:44 ---> lscpu: 22:27:44 Architecture: x86_64 22:27:44 CPU op-mode(s): 32-bit, 64-bit 22:27:44 Address sizes: 40 bits physical, 48 bits virtual 22:27:44 Byte Order: Little Endian 22:27:44 CPU(s): 4 22:27:44 On-line CPU(s) list: 0-3 22:27:44 Vendor ID: AuthenticAMD 22:27:44 Model name: AMD EPYC-Rome Processor 22:27:44 CPU family: 23 22:27:44 Model: 49 22:27:44 Thread(s) per core: 1 22:27:44 Core(s) per socket: 1 22:27:44 Socket(s): 4 22:27:44 Stepping: 0 22:27:44 BogoMIPS: 5600.00 22:27:44 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 22:27:44 Virtualization: AMD-V 22:27:44 Hypervisor vendor: KVM 22:27:44 Virtualization type: full 22:27:44 L1d cache: 128 KiB (4 instances) 22:27:44 L1i cache: 128 KiB (4 instances) 22:27:44 L2 cache: 2 MiB (4 instances) 22:27:44 L3 cache: 64 MiB (4 instances) 22:27:44 NUMA node(s): 1 22:27:44 NUMA node0 CPU(s): 0-3 22:27:44 Vulnerability Gather data sampling: Not affected 22:27:44 Vulnerability Indirect target selection: Not affected 22:27:44 Vulnerability Itlb multihit: Not affected 22:27:44 Vulnerability L1tf: Not affected 22:27:44 Vulnerability Mds: Not affected 22:27:44 Vulnerability Meltdown: Not affected 22:27:44 Vulnerability Mmio stale data: Not affected 22:27:44 Vulnerability Reg file data sampling: Not affected 22:27:44 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 22:27:44 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 22:27:44 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 22:27:44 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 22:27:44 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 22:27:44 Vulnerability Srbds: Not affected 22:27:44 Vulnerability Tsa: Not affected 22:27:44 Vulnerability Tsx async abort: Not affected 22:27:44 Vulnerability Vmscape: Not affected 22:27:44 22:27:44 22:27:44 ---> nproc: 22:27:44 4 22:27:44 22:27:44 22:27:44 ---> df -h: 22:27:44 Filesystem Size Used Avail Use% Mounted on 22:27:44 tmpfs 1.6G 1.1M 1.6G 1% /run 22:27:44 /dev/vda1 78G 11G 67G 15% / 22:27:44 tmpfs 7.9G 0 7.9G 0% /dev/shm 22:27:44 tmpfs 5.0M 0 5.0M 0% /run/lock 22:27:44 /dev/vda15 105M 6.1M 99M 6% /boot/efi 22:27:44 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 22:27:44 22:27:44 22:27:44 ---> free -m: 22:27:44 total used free shared buff/cache available 22:27:44 Mem: 15989 722 9456 4 5809 14923 22:27:44 Swap: 1023 0 1023 22:27:44 22:27:44 22:27:44 ---> ip addr: 22:27:44 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 22:27:44 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 22:27:44 inet 127.0.0.1/8 scope host lo 22:27:44 valid_lft forever preferred_lft forever 22:27:44 inet6 ::1/128 scope host 22:27:44 valid_lft forever preferred_lft forever 22:27:44 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 22:27:44 link/ether fa:16:3e:0b:85:f4 brd ff:ff:ff:ff:ff:ff 22:27:44 altname enp0s3 22:27:44 inet 10.30.170.73/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 22:27:44 valid_lft 62210sec preferred_lft 62210sec 22:27:44 inet6 fe80::f816:3eff:fe0b:85f4/64 scope link 22:27:44 valid_lft forever preferred_lft forever 22:27:44 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 22:27:44 link/ether de:e6:12:28:dc:8e brd ff:ff:ff:ff:ff:ff 22:27:44 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 22:27:44 valid_lft forever preferred_lft forever 22:27:44 inet6 fe80::dce6:12ff:fe28:dc8e/64 scope link 22:27:44 valid_lft forever preferred_lft forever 22:27:44 22:27:44 22:27:44 ---> sar -b -r -n DEV: 22:27:44 Linux 5.15.0-198-generic (prd-ubuntu2204-docker-4c-16g-62479) 10/06/26 _x86_64_ (4 CPU) 22:27:44 22:27:44 15:44:38 LINUX RESTART (4 CPU) 22:27:44 22:27:44 15:50:10 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 22:27:44 16:00:14 1.57 0.01 1.56 0.00 0.65 17.74 215.08 22:27:44 16:10:00 1.42 0.00 1.42 0.00 0.00 15.99 0.00 22:27:44 16:20:14 1.59 0.00 1.59 0.00 0.09 17.55 0.00 22:27:44 16:30:14 1.56 0.00 1.56 0.00 0.00 16.89 0.00 22:27:44 16:40:00 1.55 0.00 1.55 0.00 0.00 16.74 0.00 22:27:44 16:50:14 1.64 0.00 1.64 0.00 0.16 18.07 0.00 22:27:44 17:00:25 14.22 0.00 1.58 12.64 0.14 17.83 238601.33 22:27:44 17:10:01 1.56 0.00 1.56 0.00 0.00 17.15 0.00 22:27:44 17:20:14 1.62 0.00 1.62 0.00 0.00 17.91 0.00 22:27:44 17:30:14 1.57 0.00 1.57 0.00 0.00 17.33 0.00 22:27:44 17:40:01 1.48 0.00 1.48 0.00 0.00 16.49 0.00 22:27:44 17:50:14 1.64 0.00 1.64 0.00 0.00 17.98 0.00 22:27:44 18:00:14 1.65 0.00 1.65 0.00 0.00 17.85 0.00 22:27:44 18:10:01 1.60 0.00 1.60 0.00 0.00 17.16 0.00 22:27:44 18:20:14 1.68 0.00 1.68 0.00 0.00 17.93 0.00 22:27:44 18:30:14 1.67 0.00 1.67 0.00 0.00 17.76 0.00 22:27:44 18:40:01 1.58 0.00 1.58 0.00 0.00 17.19 0.00 22:27:44 18:50:14 1.66 0.00 1.66 0.00 0.00 17.83 0.00 22:27:44 19:00:14 1.65 0.00 1.65 0.00 0.00 17.85 0.00 22:27:44 19:10:01 1.60 0.00 1.60 0.00 0.00 17.38 0.00 22:27:44 19:20:14 1.71 0.00 1.71 0.00 0.00 18.63 0.00 22:27:44 19:30:25 1.61 0.00 1.61 0.00 0.00 17.64 0.00 22:27:44 19:40:01 1.36 0.00 1.36 0.00 0.00 15.01 0.00 22:27:44 19:50:14 1.37 0.00 1.37 0.00 0.00 15.23 0.00 22:27:44 20:00:25 1.32 0.00 1.32 0.00 0.00 14.47 0.00 22:27:44 20:10:01 1.32 0.00 1.32 0.00 0.00 14.46 0.00 22:27:44 20:20:25 1.38 0.00 1.38 0.00 0.00 15.28 0.00 22:27:44 20:30:25 1.35 0.00 1.35 0.00 0.00 14.67 0.00 22:27:44 20:40:01 1.34 0.00 1.34 0.00 0.00 14.72 0.00 22:27:44 20:50:14 1.37 0.00 1.37 0.00 0.00 14.64 0.00 22:27:44 21:00:25 1.39 0.00 1.38 0.00 0.10 15.05 0.00 22:27:44 21:10:01 1.31 0.00 1.31 0.00 0.00 14.34 0.00 22:27:44 21:20:00 19.02 12.02 6.32 0.68 137.10 1020.45 15413.25 22:27:44 21:30:25 1.95 0.00 1.91 0.04 0.00 32.11 9.19 22:27:44 21:40:01 1.41 0.00 1.41 0.00 0.00 15.30 0.00 22:27:44 21:50:14 1.36 0.00 1.36 0.00 0.00 14.51 0.00 22:27:44 22:00:14 1.24 0.00 1.24 0.00 0.00 13.35 0.00 22:27:44 22:10:01 1.26 0.00 1.26 0.00 0.00 13.74 0.00 22:27:44 22:20:25 76.60 6.42 66.63 3.54 705.35 9621.61 2209.98 22:27:44 Average: 4.29 0.48 3.37 0.44 22.32 298.29 6677.16 22:27:44 22:27:44 15:50:10 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 22:27:44 16:00:14 13733152 15520432 497672 3.04 54616 1960656 1164968 6.69 186520 2208428 12 22:27:44 16:10:00 13732352 15520208 497848 3.04 55192 1960668 1164952 6.69 187060 2209616 4 22:27:44 16:20:14 13727696 15516392 501696 3.06 55812 1960820 1165160 6.69 187704 2214552 12 22:27:44 16:30:14 13726168 15515472 502644 3.07 56396 1960836 1165224 6.69 188296 2214612 24 22:27:44 16:40:00 13726660 15516564 501424 3.06 56980 1960844 1165208 6.69 188860 2214612 4 22:27:44 16:50:14 13725024 15515788 502248 3.07 57612 1961036 1165224 6.69 189520 2214892 24 22:27:44 17:00:25 13721792 15518292 499700 3.05 58488 1965876 1165224 6.69 195200 2214776 12 22:27:44 17:10:01 13720112 15517204 500724 3.06 59060 1965880 1165332 6.69 195764 2215212 20 22:27:44 17:20:14 13720096 15517792 500104 3.05 59652 1965892 1165288 6.69 196356 2215052 24 22:27:44 17:30:14 13719560 15517976 500024 3.05 60236 1966024 1165284 6.69 196932 2215320 16 22:27:44 17:40:01 13718832 15517852 500080 3.05 60804 1966044 1165340 6.69 197524 2216256 168 22:27:44 17:50:14 13718092 15517740 500080 3.05 61404 1966052 1165356 6.69 198116 2216616 16 22:27:44 18:00:14 13718096 15518504 499456 3.05 62012 1966192 1165356 6.69 198724 2216828 32 22:27:44 18:10:01 13716332 15517292 500580 3.06 62596 1966188 1165340 6.69 199260 2216800 204 22:27:44 18:20:14 13715328 15517092 500756 3.06 63220 1966336 1165356 6.69 199924 2217064 32 22:27:44 18:30:14 13714824 15517212 500712 3.06 63812 1966348 1165356 6.69 200516 2217084 36 22:27:44 18:40:01 13713316 15516312 501632 3.06 64396 1966356 1165340 6.69 201108 2217080 8 22:27:44 18:50:14 13711300 15514916 502968 3.07 65012 1966368 1165356 6.69 201708 2217240 44 22:27:44 19:00:14 13709732 15513988 503820 3.08 65620 1966380 1165356 6.69 202324 2217316 24 22:27:44 19:10:01 13706768 15511868 505844 3.09 66228 1966640 1163224 6.68 202884 2215892 204 22:27:44 19:20:14 13706264 15512064 505780 3.09 66860 1966652 1163176 6.68 203564 2215564 24 22:27:44 19:30:25 13704752 15511164 506588 3.09 67468 1966664 1163176 6.68 204180 2215644 48 22:27:44 19:40:01 13702992 15509912 507764 3.10 67836 1966800 1163208 6.68 204548 2215932 208 22:27:44 19:50:14 13701240 15508568 509180 3.11 68236 1966808 1163176 6.68 204932 2215808 48 22:27:44 20:00:25 13700232 15507916 509836 3.11 68588 1966816 1171368 6.72 205276 2215968 24 22:27:44 20:10:01 13699728 15507888 509820 3.11 68932 1966944 1171352 6.72 205612 2216108 200 22:27:44 20:20:25 13699728 15508288 509496 3.11 69300 1966964 1171432 6.72 205996 2216204 20 22:27:44 20:30:25 13699728 15508644 509148 3.11 69644 1966972 1171496 6.72 206340 2216252 12 22:27:44 20:40:01 13699728 15509016 508704 3.11 69996 1966984 1171480 6.72 206684 2216432 200 22:27:44 20:50:14 13701268 15511020 506720 3.09 70364 1967044 1171496 6.72 207060 2216372 44 22:27:44 21:00:25 13700260 15510588 507192 3.10 70748 1967224 1171496 6.72 207452 2216572 20 22:27:44 21:10:01 13700624 15511480 506288 3.09 71132 1967360 1171480 6.72 207836 2216672 200 22:27:44 21:20:00 13319028 15490540 512564 3.13 82132 2305912 1183640 6.79 281188 2502240 1752 22:27:44 21:30:25 13297100 15478364 524668 3.20 82564 2315340 1172860 6.73 316136 2471540 20 22:27:44 21:40:01 13297504 15478972 524084 3.20 82756 2315352 1172844 6.73 316324 2471692 208 22:27:44 21:50:14 13298348 15480156 522980 3.19 82964 2315488 1172860 6.73 316524 2471808 12 22:27:44 22:00:14 13298268 15480312 522776 3.19 83180 2315500 1172860 6.73 316748 2471820 208 22:27:44 22:10:01 13298044 15480328 522788 3.19 83392 2315512 1172844 6.73 316972 2471900 292 22:27:44 22:20:25 10107584 15270452 675868 4.13 189496 4969796 1396576 8.02 652896 5052564 4 22:27:44 Average: 13557119 15502938 510827 3.12 69865 2096091 1173643 6.74 228220 2328522 114 22:27:44 22:27:44 15:50:10 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 22:27:44 16:00:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 16:00:14 ens3 0.35 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 16:00:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 16:10:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 16:10:00 ens3 0.25 0.11 0.05 0.03 0.00 0.00 0.00 0.00 22:27:44 16:10:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 16:20:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 16:20:14 ens3 0.49 0.30 0.08 0.43 0.00 0.00 0.00 0.00 22:27:44 16:20:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 16:30:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 16:30:14 ens3 0.38 0.14 0.10 0.06 0.00 0.00 0.00 0.00 22:27:44 16:30:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 16:40:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 16:40:00 ens3 0.23 0.07 0.03 0.01 0.00 0.00 0.00 0.00 22:27:44 16:40:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 16:50:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 16:50:14 ens3 0.24 0.10 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 16:50:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 17:00:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 17:00:25 ens3 0.23 0.09 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 17:00:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 17:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 17:10:01 ens3 0.31 0.13 0.08 0.05 0.00 0.00 0.00 0.00 22:27:44 17:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 17:20:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 17:20:14 ens3 0.24 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:27:44 17:20:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 17:30:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 17:30:14 ens3 0.23 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:27:44 17:30:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 17:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 17:40:01 ens3 0.34 0.12 0.09 0.05 0.00 0.00 0.00 0.00 22:27:44 17:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 17:50:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 17:50:14 ens3 0.36 0.13 0.09 0.05 0.00 0.00 0.00 0.00 22:27:44 17:50:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 18:00:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 18:00:14 ens3 0.24 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 18:00:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 18:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 18:10:01 ens3 0.24 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:27:44 18:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 18:20:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 18:20:14 ens3 0.26 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 18:20:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 18:30:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 18:30:14 ens3 0.24 0.07 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 18:30:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 18:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 18:40:01 ens3 0.21 0.06 0.03 0.01 0.00 0.00 0.00 0.00 22:27:44 18:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 18:50:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 18:50:14 ens3 0.26 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:27:44 18:50:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 19:00:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 19:00:14 ens3 0.24 0.08 0.03 0.02 0.00 0.00 0.00 0.00 22:27:44 19:00:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 19:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 19:10:01 ens3 0.31 0.12 0.09 0.05 0.00 0.00 0.00 0.00 22:27:44 19:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 19:20:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 19:20:14 ens3 0.25 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:27:44 19:20:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 19:30:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 19:30:25 ens3 0.29 0.10 0.07 0.04 0.00 0.00 0.00 0.00 22:27:44 19:30:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 19:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 19:40:01 ens3 0.44 0.14 0.12 0.07 0.00 0.00 0.00 0.00 22:27:44 19:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 19:50:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 19:50:14 ens3 0.42 0.12 0.09 0.05 0.00 0.00 0.00 0.00 22:27:44 19:50:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 20:00:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 20:00:25 ens3 0.32 0.10 0.08 0.04 0.00 0.00 0.00 0.00 22:27:44 20:00:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 20:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 20:10:01 ens3 0.44 0.15 0.13 0.08 0.00 0.00 0.00 0.00 22:27:44 20:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 20:20:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 20:20:25 ens3 0.28 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:27:44 20:20:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 20:30:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 20:30:25 ens3 0.28 0.09 0.06 0.04 0.00 0.00 0.00 0.00 22:27:44 20:30:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 20:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 20:40:01 ens3 0.21 0.06 0.02 0.01 0.00 0.00 0.00 0.00 22:27:44 20:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 20:50:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 20:50:14 ens3 0.24 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:27:44 20:50:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 21:00:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 21:00:25 ens3 0.28 0.09 0.06 0.04 0.00 0.00 0.00 0.00 22:27:44 21:00:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 21:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 21:10:01 ens3 0.39 0.15 0.12 0.08 0.00 0.00 0.00 0.00 22:27:44 21:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 21:20:00 lo 0.17 0.17 0.02 0.02 0.00 0.00 0.00 0.00 22:27:44 21:20:00 ens3 21.62 9.35 401.98 0.66 0.00 0.00 0.00 0.00 22:27:44 21:20:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 21:30:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 21:30:25 ens3 0.27 0.12 0.08 0.03 0.00 0.00 0.00 0.00 22:27:44 21:30:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 21:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 21:40:01 ens3 0.18 0.06 0.02 0.01 0.00 0.00 0.00 0.00 22:27:44 21:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 21:50:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 21:50:14 ens3 0.24 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:27:44 21:50:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 22:00:14 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 22:00:14 ens3 0.21 0.07 0.04 0.02 0.00 0.00 0.00 0.00 22:27:44 22:00:14 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 22:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 22:10:01 ens3 0.22 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:27:44 22:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 22:20:25 lo 0.94 0.94 0.10 0.10 0.00 0.00 0.00 0.00 22:27:44 22:20:25 ens3 88.78 64.69 808.35 10.57 0.00 0.00 0.00 0.00 22:27:44 22:20:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 Average: lo 0.12 0.12 0.01 0.01 0.00 0.00 0.00 0.00 22:27:44 Average: ens3 3.19 2.06 31.87 0.34 0.00 0.00 0.00 0.00 22:27:44 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:27:44 22:27:44 22:27:44 ---> sar -P ALL: 22:27:44 Linux 5.15.0-198-generic (prd-ubuntu2204-docker-4c-16g-62479) 10/06/26 _x86_64_ (4 CPU) 22:27:44 22:27:44 15:44:38 LINUX RESTART (4 CPU) 22:27:44 22:27:44 15:50:10 CPU %user %nice %system %iowait %steal %idle 22:27:44 16:00:14 all 0.18 0.00 0.03 0.01 0.00 99.77 22:27:44 16:00:14 0 0.66 0.00 0.04 0.00 0.00 99.30 22:27:44 16:00:14 1 0.03 0.00 0.04 0.00 0.00 99.93 22:27:44 16:00:14 2 0.01 0.00 0.02 0.00 0.00 99.96 22:27:44 16:00:14 3 0.02 0.00 0.03 0.04 0.00 99.91 22:27:44 16:10:00 all 0.16 0.00 0.03 0.01 0.00 99.80 22:27:44 16:10:00 0 0.09 0.00 0.03 0.00 0.00 99.89 22:27:44 16:10:00 1 0.05 0.00 0.04 0.01 0.00 99.90 22:27:44 16:10:00 2 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 16:10:00 3 0.47 0.00 0.03 0.03 0.00 99.46 22:27:44 16:20:14 all 0.12 0.00 0.03 0.01 0.00 99.84 22:27:44 16:20:14 0 0.06 0.00 0.03 0.00 0.00 99.91 22:27:44 16:20:14 1 0.03 0.00 0.03 0.01 0.00 99.93 22:27:44 16:20:14 2 0.38 0.00 0.03 0.04 0.00 99.56 22:27:44 16:20:14 3 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 16:30:14 all 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 16:30:14 0 0.03 0.00 0.04 0.00 0.00 99.93 22:27:44 16:30:14 1 0.03 0.00 0.02 0.01 0.00 99.94 22:27:44 16:30:14 2 0.02 0.00 0.03 0.04 0.00 99.91 22:27:44 16:30:14 3 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 16:40:00 all 0.11 0.00 0.03 0.01 0.00 99.85 22:27:44 16:40:00 0 0.02 0.00 0.02 0.00 0.00 99.95 22:27:44 16:40:00 1 0.04 0.00 0.03 0.01 0.00 99.92 22:27:44 16:40:00 2 0.36 0.00 0.02 0.04 0.00 99.58 22:27:44 16:40:00 3 0.01 0.00 0.03 0.00 0.00 99.96 22:27:44 16:50:14 all 0.15 0.00 0.02 0.02 0.00 99.81 22:27:44 16:50:14 0 0.02 0.00 0.02 0.00 0.00 99.95 22:27:44 16:50:14 1 0.02 0.00 0.02 0.00 0.00 99.95 22:27:44 16:50:14 2 0.54 0.00 0.01 0.04 0.00 99.40 22:27:44 16:50:14 3 0.02 0.00 0.02 0.02 0.00 99.93 22:27:44 17:00:25 all 0.13 0.00 0.03 0.03 0.00 99.81 22:27:44 17:00:25 0 0.01 0.00 0.02 0.10 0.00 99.87 22:27:44 17:00:25 1 0.43 0.00 0.04 0.00 0.00 99.52 22:27:44 17:00:25 2 0.03 0.00 0.02 0.04 0.00 99.90 22:27:44 17:00:25 3 0.03 0.00 0.03 0.00 0.00 99.94 22:27:44 17:10:01 all 0.27 0.00 0.03 0.01 0.00 99.69 22:27:44 17:10:01 0 0.01 0.00 0.02 0.00 0.00 99.97 22:27:44 17:10:01 1 1.01 0.00 0.06 0.00 0.00 98.93 22:27:44 17:10:01 2 0.02 0.00 0.02 0.04 0.00 99.92 22:27:44 17:10:01 3 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 17:20:14 all 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 17:20:14 0 0.03 0.00 0.03 0.01 0.00 99.93 22:27:44 17:20:14 1 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 17:20:14 2 0.03 0.00 0.03 0.04 0.00 99.91 22:27:44 17:20:14 3 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 17:30:14 all 0.24 0.00 0.03 0.01 0.00 99.71 22:27:44 17:30:14 0 0.74 0.00 0.03 0.01 0.00 99.22 22:27:44 17:30:14 1 0.18 0.00 0.03 0.01 0.00 99.78 22:27:44 17:30:14 2 0.05 0.00 0.04 0.04 0.00 99.88 22:27:44 17:30:14 3 0.01 0.00 0.01 0.00 0.00 99.98 22:27:44 17:40:01 all 0.17 0.00 0.03 0.01 0.00 99.78 22:27:44 17:40:01 0 0.01 0.00 0.02 0.04 0.00 99.92 22:27:44 17:40:01 1 0.62 0.00 0.04 0.01 0.00 99.33 22:27:44 17:40:01 2 0.02 0.00 0.03 0.01 0.00 99.95 22:27:44 17:40:01 3 0.04 0.00 0.03 0.00 0.00 99.93 22:27:44 22:27:44 17:40:01 CPU %user %nice %system %iowait %steal %idle 22:27:44 17:50:14 all 0.02 0.00 0.02 0.01 0.00 99.94 22:27:44 17:50:14 0 0.02 0.00 0.02 0.00 0.00 99.95 22:27:44 17:50:14 1 0.03 0.00 0.02 0.00 0.00 99.95 22:27:44 17:50:14 2 0.02 0.00 0.03 0.00 0.00 99.95 22:27:44 17:50:14 3 0.02 0.00 0.02 0.04 0.00 99.92 22:27:44 18:00:14 all 0.32 0.00 0.04 0.02 0.00 99.62 22:27:44 18:00:14 0 0.89 0.00 0.02 0.00 0.00 99.08 22:27:44 18:00:14 1 0.03 0.00 0.05 0.00 0.00 99.92 22:27:44 18:00:14 2 0.02 0.00 0.03 0.04 0.00 99.92 22:27:44 18:00:14 3 0.34 0.00 0.04 0.03 0.00 99.58 22:27:44 18:10:01 all 0.29 0.00 0.02 0.01 0.00 99.68 22:27:44 18:10:01 0 0.01 0.00 0.01 0.00 0.00 99.98 22:27:44 18:10:01 1 0.11 0.00 0.01 0.01 0.00 99.87 22:27:44 18:10:01 2 0.28 0.00 0.04 0.04 0.00 99.64 22:27:44 18:10:01 3 0.75 0.00 0.03 0.01 0.00 99.21 22:27:44 18:20:14 all 0.03 0.00 0.03 0.01 0.00 99.93 22:27:44 18:20:14 0 0.01 0.00 0.01 0.00 0.00 99.98 22:27:44 18:20:14 1 0.02 0.00 0.02 0.00 0.00 99.95 22:27:44 18:20:14 2 0.06 0.00 0.05 0.01 0.00 99.87 22:27:44 18:20:14 3 0.02 0.00 0.02 0.04 0.00 99.92 22:27:44 18:30:14 all 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 18:30:14 0 0.02 0.00 0.03 0.00 0.00 99.94 22:27:44 18:30:14 1 0.02 0.00 0.01 0.01 0.00 99.96 22:27:44 18:30:14 2 0.01 0.00 0.03 0.04 0.00 99.92 22:27:44 18:30:14 3 0.03 0.00 0.04 0.01 0.00 99.93 22:27:44 18:40:01 all 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 18:40:01 0 0.02 0.00 0.02 0.01 0.00 99.96 22:27:44 18:40:01 1 0.03 0.00 0.03 0.01 0.00 99.94 22:27:44 18:40:01 2 0.02 0.00 0.04 0.05 0.00 99.89 22:27:44 18:40:01 3 0.01 0.00 0.01 0.00 0.00 99.97 22:27:44 18:50:14 all 0.31 0.00 0.03 0.01 0.00 99.65 22:27:44 18:50:14 0 1.16 0.00 0.01 0.00 0.00 98.83 22:27:44 18:50:14 1 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 18:50:14 2 0.02 0.00 0.04 0.05 0.00 99.89 22:27:44 18:50:14 3 0.03 0.00 0.03 0.00 0.00 99.94 22:27:44 19:00:14 all 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 19:00:14 0 0.00 0.00 0.01 0.01 0.00 99.98 22:27:44 19:00:14 1 0.01 0.00 0.02 0.01 0.00 99.97 22:27:44 19:00:14 2 0.03 0.00 0.04 0.04 0.00 99.89 22:27:44 19:00:14 3 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 19:10:01 all 0.02 0.00 0.02 0.01 0.00 99.94 22:27:44 19:10:01 0 0.00 0.00 0.01 0.04 0.00 99.95 22:27:44 19:10:01 1 0.03 0.00 0.03 0.00 0.00 99.94 22:27:44 19:10:01 2 0.04 0.00 0.04 0.01 0.00 99.91 22:27:44 19:10:01 3 0.01 0.00 0.01 0.00 0.00 99.98 22:27:44 19:20:14 all 0.02 0.00 0.02 0.02 0.00 99.94 22:27:44 19:20:14 0 0.00 0.00 0.01 0.04 0.00 99.95 22:27:44 19:20:14 1 0.03 0.00 0.03 0.01 0.00 99.93 22:27:44 19:20:14 2 0.02 0.00 0.03 0.00 0.00 99.94 22:27:44 19:20:14 3 0.02 0.00 0.03 0.00 0.00 99.95 22:27:44 19:30:25 all 0.37 0.00 0.03 0.01 0.00 99.59 22:27:44 19:30:25 0 1.33 0.00 0.03 0.04 0.00 98.60 22:27:44 19:30:25 1 0.03 0.00 0.05 0.00 0.00 99.92 22:27:44 19:30:25 2 0.08 0.00 0.03 0.01 0.00 99.88 22:27:44 19:30:25 3 0.02 0.00 0.01 0.00 0.00 99.96 22:27:44 22:27:44 19:30:25 CPU %user %nice %system %iowait %steal %idle 22:27:44 19:40:01 all 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 19:40:01 0 0.01 0.00 0.03 0.03 0.00 99.92 22:27:44 19:40:01 1 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 19:40:01 2 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 19:40:01 3 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 19:50:14 all 0.10 0.00 0.02 0.01 0.00 99.86 22:27:44 19:50:14 0 0.03 0.00 0.03 0.04 0.00 99.90 22:27:44 19:50:14 1 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 19:50:14 2 0.35 0.00 0.02 0.00 0.00 99.63 22:27:44 19:50:14 3 0.00 0.00 0.01 0.00 0.00 99.99 22:27:44 20:00:25 all 0.15 0.00 0.02 0.01 0.00 99.82 22:27:44 20:00:25 0 0.02 0.00 0.02 0.01 0.00 99.94 22:27:44 20:00:25 1 0.02 0.00 0.02 0.01 0.00 99.94 22:27:44 20:00:25 2 0.52 0.00 0.03 0.00 0.00 99.44 22:27:44 20:00:25 3 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 20:10:01 all 0.11 0.00 0.02 0.01 0.00 99.86 22:27:44 20:10:01 0 0.01 0.00 0.01 0.01 0.00 99.97 22:27:44 20:10:01 1 0.02 0.00 0.03 0.02 0.00 99.93 22:27:44 20:10:01 2 0.37 0.00 0.02 0.00 0.00 99.61 22:27:44 20:10:01 3 0.03 0.00 0.02 0.02 0.00 99.93 22:27:44 20:20:25 all 0.29 0.00 0.02 0.01 0.00 99.68 22:27:44 20:20:25 0 0.01 0.00 0.02 0.01 0.00 99.96 22:27:44 20:20:25 1 1.08 0.00 0.02 0.01 0.00 98.89 22:27:44 20:20:25 2 0.04 0.00 0.03 0.03 0.00 99.90 22:27:44 20:20:25 3 0.01 0.00 0.02 0.00 0.00 99.97 22:27:44 20:30:25 all 0.11 0.00 0.02 0.01 0.00 99.86 22:27:44 20:30:25 0 0.01 0.00 0.01 0.00 0.00 99.98 22:27:44 20:30:25 1 0.36 0.00 0.03 0.03 0.00 99.58 22:27:44 20:30:25 2 0.03 0.00 0.03 0.00 0.00 99.94 22:27:44 20:30:25 3 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 20:40:01 all 0.02 0.00 0.02 0.01 0.00 99.94 22:27:44 20:40:01 0 0.01 0.00 0.01 0.00 0.00 99.98 22:27:44 20:40:01 1 0.02 0.00 0.03 0.04 0.00 99.91 22:27:44 20:40:01 2 0.04 0.00 0.03 0.00 0.00 99.93 22:27:44 20:40:01 3 0.02 0.00 0.01 0.01 0.00 99.96 22:27:44 20:50:14 all 0.40 0.00 0.02 0.01 0.00 99.56 22:27:44 20:50:14 0 0.01 0.00 0.02 0.00 0.00 99.97 22:27:44 20:50:14 1 0.01 0.00 0.02 0.03 0.00 99.94 22:27:44 20:50:14 2 0.03 0.00 0.04 0.01 0.00 99.93 22:27:44 20:50:14 3 1.55 0.00 0.02 0.00 0.00 98.43 22:27:44 21:00:25 all 0.04 0.00 0.03 0.01 0.00 99.92 22:27:44 21:00:25 0 0.01 0.00 0.02 0.03 0.00 99.93 22:27:44 21:00:25 1 0.01 0.00 0.02 0.01 0.00 99.96 22:27:44 21:00:25 2 0.02 0.00 0.03 0.00 0.00 99.95 22:27:44 21:00:25 3 0.11 0.00 0.05 0.00 0.00 99.83 22:27:44 21:10:01 all 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 21:10:01 0 0.03 0.00 0.04 0.03 0.00 99.89 22:27:44 21:10:01 1 0.01 0.00 0.01 0.01 0.00 99.97 22:27:44 21:10:01 2 0.02 0.00 0.02 0.00 0.00 99.96 22:27:44 21:10:01 3 0.01 0.00 0.02 0.00 0.00 99.96 22:27:44 21:20:00 all 0.43 0.10 0.27 0.21 0.00 98.99 22:27:44 21:20:00 0 0.34 0.12 0.24 0.14 0.00 99.15 22:27:44 21:20:00 1 0.51 0.04 0.21 0.23 0.00 99.01 22:27:44 21:20:00 2 0.50 0.19 0.41 0.36 0.00 98.53 22:27:44 21:20:00 3 0.34 0.06 0.21 0.10 0.00 99.28 22:27:44 22:27:44 21:20:00 CPU %user %nice %system %iowait %steal %idle 22:27:44 21:30:25 all 0.44 0.00 0.05 0.01 0.00 99.49 22:27:44 21:30:25 0 1.60 0.00 0.04 0.00 0.00 98.36 22:27:44 21:30:25 1 0.06 0.00 0.08 0.03 0.00 99.83 22:27:44 21:30:25 2 0.05 0.00 0.06 0.02 0.00 99.88 22:27:44 21:30:25 3 0.03 0.00 0.04 0.01 0.00 99.92 22:27:44 21:40:01 all 0.02 0.00 0.03 0.01 0.00 99.95 22:27:44 21:40:01 0 0.00 0.00 0.01 0.00 0.00 99.99 22:27:44 21:40:01 1 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 21:40:01 2 0.03 0.00 0.04 0.00 0.00 99.92 22:27:44 21:40:01 3 0.02 0.00 0.04 0.03 0.00 99.91 22:27:44 21:50:14 all 0.02 0.00 0.02 0.01 0.00 99.95 22:27:44 21:50:14 0 0.00 0.00 0.00 0.00 0.00 99.99 22:27:44 21:50:14 1 0.03 0.00 0.03 0.01 0.00 99.93 22:27:44 21:50:14 2 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 21:50:14 3 0.03 0.00 0.02 0.02 0.00 99.93 22:27:44 22:00:14 all 0.02 0.00 0.03 0.01 0.00 99.95 22:27:44 22:00:14 0 0.01 0.00 0.02 0.00 0.00 99.97 22:27:44 22:00:14 1 0.01 0.00 0.04 0.01 0.00 99.95 22:27:44 22:00:14 2 0.02 0.00 0.03 0.01 0.00 99.94 22:27:44 22:00:14 3 0.03 0.00 0.02 0.02 0.00 99.93 22:27:44 22:10:01 all 0.38 0.00 0.03 0.01 0.00 99.57 22:27:44 22:10:01 0 1.46 0.00 0.01 0.00 0.00 98.53 22:27:44 22:10:01 1 0.02 0.00 0.05 0.01 0.00 99.93 22:27:44 22:10:01 2 0.03 0.00 0.04 0.02 0.00 99.91 22:27:44 22:10:01 3 0.02 0.00 0.04 0.00 0.00 99.94 22:27:44 22:20:25 all 9.47 0.00 1.09 0.67 0.01 88.75 22:27:44 22:20:25 0 10.73 0.00 1.17 0.62 0.02 87.47 22:27:44 22:20:25 1 9.23 0.00 1.22 0.76 0.01 88.77 22:27:44 22:20:25 2 8.84 0.00 0.94 0.92 0.01 89.29 22:27:44 22:20:25 3 9.09 0.00 1.04 0.39 0.01 89.47 22:27:44 Average: all 0.39 0.00 0.06 0.04 0.00 99.50 22:27:44 Average: 0 0.51 0.00 0.06 0.03 0.00 99.39 22:27:44 Average: 1 0.37 0.00 0.07 0.04 0.00 99.52 22:27:44 Average: 2 0.34 0.00 0.06 0.05 0.00 99.53 22:27:44 Average: 3 0.35 0.00 0.06 0.02 0.00 99.57 22:27:44 22:27:44 22:27:44