21:54:14 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/126721 21:54:14 Running as SYSTEM 21:54:14 [EnvInject] - Loading node environment variables. 21:54:14 Building remotely on prd-ubuntu2204-docker-4c-16g-62480 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-transportpce-master 21:54:14 [ssh-agent] Looking for ssh-agent implementation... 21:54:14 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 21:54:14 $ ssh-agent 21:54:14 SSH_AUTH_SOCK=/tmp/ssh-XXXXXXW20YBj/agent.10991 21:54:14 SSH_AGENT_PID=10993 21:54:14 [ssh-agent] Started. 21:54:14 Running ssh-add (command line suppressed) 21:54:14 Identity added: /w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_1928725109497412876.key (/w/workspace/transportpce-tox-verify-transportpce-master@tmp/private_key_1928725109497412876.key) 21:54:14 [ssh-agent] Using credentials jenkins (jenkins-ssh) 21:54:14 The recommended git tool is: NONE 21:54:17 using credential jenkins-ssh 21:54:17 Wiping out workspace first. 21:54:17 Cloning the remote Git repository 21:54:17 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 21:54:17 > git init /w/workspace/transportpce-tox-verify-transportpce-master # timeout=10 21:54:17 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 21:54:17 > git --version # timeout=10 21:54:17 > git --version # 'git version 2.34.1' 21:54:17 using GIT_SSH to set credentials jenkins-ssh 21:54:17 Verifying host key using known hosts file, will automatically accept unseen keys 21:54:17 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 21:54:22 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 21:54:22 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 21:54:23 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 21:54:23 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 21:54:23 using GIT_SSH to set credentials jenkins-ssh 21:54:23 Verifying host key using known hosts file, will automatically accept unseen keys 21:54:23 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/21/126721/1 # timeout=10 21:54:23 > git rev-parse 6c46329f071916d0846a4ce350a395776f904fdb^{commit} # timeout=10 21:54:23 JENKINS-19022: warning: possible memory leak due to Git plugin usage; see: https://plugins.jenkins.io/git/#remove-git-plugin-buildsbybranch-builddata-script 21:54:23 Checking out Revision 6c46329f071916d0846a4ce350a395776f904fdb (refs/changes/21/126721/1) 21:54:23 > git config core.sparsecheckout # timeout=10 21:54:23 > git checkout -f 6c46329f071916d0846a4ce350a395776f904fdb # timeout=10 21:54:26 Commit message: "Add Nexus IQ policy evaluation to CLM scan" 21:54:26 > git rev-parse FETCH_HEAD^{commit} # timeout=10 21:54:26 > git rev-list --no-walk 778c4831b98f585a845bf3baa723efd596bd713c # timeout=10 21:54:26 > git remote # timeout=10 21:54:26 > git submodule init # timeout=10 21:54:26 > git submodule sync # timeout=10 21:54:26 > git config --get remote.origin.url # timeout=10 21:54:26 > git submodule init # timeout=10 21:54:27 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 21:54:27 ERROR: No submodules found. 21:54:27 provisioning config files... 21:54:27 copy managed file [npmrc] to file:/home/jenkins/.npmrc 21:54:27 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 21:54:27 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins4950901839769776258.sh 21:54:27 ---> python-tools-install.sh 21:54:27 Setup pyenv: 21:54:27 * system (set by /opt/pyenv/version) 21:54:27 * 3.8.20 (set by /opt/pyenv/version) 21:54:27 * 3.9.20 (set by /opt/pyenv/version) 21:54:27 3.10.15 21:54:27 3.11.10 21:54:32 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-mp8Y 21:54:32 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 21:54:32 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 21:54:36 lf-activate-venv(): INFO: Installing additional packages: lftools 21:54:59 lf-activate-venv(): INFO: Adding /tmp/venv-mp8Y/bin to PATH 21:54:59 Generating Requirements File 21:55:24 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. 21:55:24 httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 21:55:24 Python 3.11.10 21:55:24 pip 26.2.1 from /tmp/venv-mp8Y/lib/python3.11/site-packages/pip (python 3.11) 21:55:24 aiohappyeyeballs==2.7.1 21:55:24 aiohttp==3.14.4 21:55:24 aiosignal==1.4.0 21:55:24 appdirs==1.4.4 21:55:24 argcomplete==3.7.2 21:55:24 aspy.yaml==1.3.0 21:55:24 attrs==26.1.0 21:55:24 autopage==0.6.0 21:55:24 beautifulsoup4==4.15.0 21:55:24 boto3==1.43.109 21:55:24 botocore==1.43.109 21:55:24 bs4==0.0.2 21:55:24 certifi==2026.7.22 21:55:24 cffi==2.1.1 21:55:24 cfgv==3.5.0 21:55:24 chardet==7.6.0 21:55:24 charset-normalizer==3.5.2 21:55:24 click==8.5.0 21:55:24 cliff==4.16.0 21:55:24 cmd2==4.2.4 21:55:24 cryptography==3.3.2 21:55:24 debtcollector==3.1.0 21:55:24 decorator==5.3.1 21:55:24 defusedxml==0.7.1 21:55:24 Deprecated==1.3.1 21:55:24 distlib==0.4.3 21:55:24 dnspython==2.8.0 21:55:24 docker==7.2.0 21:55:24 dogpile.cache==1.5.0 21:55:24 durationpy==0.11 21:55:24 email-validator==2.3.0 21:55:24 filelock==4.0.12 21:55:24 frozenlist==1.8.0 21:55:24 future==1.0.0 21:55:24 gitdb==4.0.12 21:55:24 GitPython==3.2.0 21:55:24 httplib2==0.30.2 21:55:24 identify==2.6.20 21:55:24 idna==3.20 21:55:24 importlib-resources==1.5.0 21:55:24 iso8601==2.1.0 21:55:24 Jinja2==3.1.6 21:55:24 jmespath==1.1.0 21:55:24 jsonpatch==1.33 21:55:24 jsonpointer==3.2.0 21:55:24 jsonschema==4.26.0 21:55:24 jsonschema-specifications==2025.9.1 21:55:24 keystoneauth1==5.18.0 21:55:24 kubernetes==36.0.3 21:55:24 lftools==0.37.23 21:55:24 lxml==6.1.3 21:55:24 markdown-it-py==4.2.0 21:55:24 MarkupSafe==3.0.4 21:55:24 mdurl==0.1.2 21:55:24 msgpack==1.2.3 21:55:24 multi_key_dict==2.0.3 21:55:24 multidict==6.9.1 21:55:24 munch==4.0.0 21:55:24 netaddr==1.3.0 21:55:24 niet==1.4.2 21:55:24 nodeenv==1.11.0 21:55:24 oauth2client==4.1.3 21:55:24 oauthlib==4.0.0 21:55:24 openstacksdk==4.21.0 21:55:24 os-service-types==1.9.0 21:55:24 osc-lib==4.7.0 21:55:24 oslo.config==10.7.0 21:55:24 oslo.context==6.5.0 21:55:24 oslo.i18n==6.9.0 21:55:24 oslo.log==8.3.2 21:55:24 oslo.serialization==5.11.0 21:55:24 oslo.utils==10.2.0 21:55:24 packaging==26.3 21:55:24 pbr==7.1.3 21:55:24 platformdirs==4.12.3 21:55:24 prettytable==3.18.0 21:55:24 prompt_toolkit==3.0.53 21:55:24 propcache==0.5.4 21:55:24 psutil==7.2.2 21:55:24 pyasn1==0.6.4 21:55:24 pyasn1_modules==0.4.2 21:55:24 pycparser==3.0 21:55:24 pygerrit2==2.0.15 21:55:24 PyGithub==2.10.0 21:55:24 Pygments==2.21.0 21:55:24 PyJWT==2.15.1 21:55:24 PyNaCl==1.6.2 21:55:24 pyparsing==2.4.7 21:55:24 pyperclip==1.11.0 21:55:24 pyrsistent==0.20.0 21:55:24 python-dateutil==2.9.0.post0 21:55:24 python-discovery==1.6.1 21:55:24 python-heatclient==5.3.0 21:55:24 python-jenkins==1.8.3 21:55:24 python-keystoneclient==6.0.0 21:55:24 python-magnumclient==5.0.0 21:55:24 python-manilaclient==6.3.0 21:55:24 python-openstackclient==10.3.0 21:55:24 python-swiftclient==4.11.0 21:55:24 PyYAML==6.0.3 21:55:24 referencing==0.37.0 21:55:24 requests==2.34.2 21:55:24 requests-oauthlib==2.0.0 21:55:24 rfc3986==2.0.0 21:55:24 rich==15.0.0 21:55:24 rich-argparse==1.8.0 21:55:24 rpds-py==2026.9.1 21:55:24 rsa==4.9.1 21:55:24 ruamel.yaml==0.19.1 21:55:24 ruamel.yaml.clib==0.2.15 21:55:24 s3transfer==0.19.2 21:55:24 simplejson==4.2.0 21:55:24 six==1.17.0 21:55:24 smmap==5.0.3 21:55:24 soupsieve==2.10 21:55:24 stevedore==5.9.1 21:55:24 tabulate==0.10.0 21:55:24 toml==0.10.2 21:55:24 tomlkit==0.15.1 21:55:24 tqdm==4.70.1 21:55:24 typing_extensions==4.16.0 21:55:24 urllib3==1.26.20 21:55:24 virtualenv==21.14.5 21:55:24 wcwidth==0.9.2 21:55:24 websocket-client==1.9.2 21:55:24 wrapt==2.5.0 21:55:24 xdg==6.0.0 21:55:24 xmltodict==1.0.4 21:55:24 yarl==1.25.1 21:55:24 yq==4.4.0 21:55:24 [transportpce-tox-verify-transportpce-master] $ /bin/sh /tmp/jenkins1827863190228241680.sh 21:55:24 ---> uv-install.sh 21:55:24 Installing uv/uvx (latest) using shell installer 21:55:25 2026-10-07 21:55:25 URL:https://releases.astral.sh/installers/uv/latest/uv-installer.sh [71308/71308] -> "/tmp/uv-install-tXfzX4.sh" [1] 21:55:25 downloading uv 0.12.23 x86_64-unknown-linux-gnu 21:55:25 installing to /home/jenkins/.local/bin 21:55:25 uv 21:55:25 uvx 21:55:25 everything's installed! 21:55:25 21:55:25 To add $HOME/.local/bin to your PATH, either restart your shell or run: 21:55:25 21:55:25 source $HOME/.local/bin/env (sh, bash, zsh) 21:55:25 source $HOME/.local/bin/env.fish (fish) 21:55:25 Adding install location to PATH 21:55:25 ---> Validating uv/uvx install 21:55:25 uvx 0.12.23 (x86_64-unknown-linux-gnu) 21:55:25 [EnvInject] - Injecting environment variables from a build step. 21:55:26 [EnvInject] - Injecting as environment variables the properties content 21:55:26 PYTHON=python3 21:55:26 21:55:26 [EnvInject] - Variables injected successfully. 21:55:26 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins17122961669851546763.sh 21:55:26 ---> tox-install.sh 21:55:26 + source /home/jenkins/lf-env.sh 21:55:26 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 21:55:26 ++ mktemp -d /tmp/venv-XXXX 21:55:26 + lf_venv=/tmp/venv-dKEV 21:55:26 + local venv_file=/tmp/.os_lf_venv 21:55:26 + local python=python3 21:55:26 + local options 21:55:26 + local set_path=true 21:55:26 + local install_args= 21:55:26 ++ 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 21:55:26 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 21:55:26 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 21:55:26 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 21:55:26 + true 21:55:26 + case $1 in 21:55:26 + venv_file=/tmp/.toxenv 21:55:26 + shift 2 21:55:26 + true 21:55:26 + case $1 in 21:55:26 + shift 21:55:26 + break 21:55:26 + case $python in 21:55:26 + local pkg_list= 21:55:26 + [[ -d /opt/pyenv ]] 21:55:26 + echo 'Setup pyenv:' 21:55:26 Setup pyenv: 21:55:26 + export PYENV_ROOT=/opt/pyenv 21:55:26 + PYENV_ROOT=/opt/pyenv 21:55:26 + 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 21:55:26 + 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 21:55:26 + pyenv versions 21:55:26 system 21:55:26 3.8.20 21:55:26 3.9.20 21:55:26 3.10.15 21:55:26 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 21:55:26 + command -v pyenv 21:55:26 ++ pyenv init - --no-rehash 21:55:26 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 21:55:26 for i in ${!paths[@]}; do 21:55:26 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 21:55:26 fi; done; 21:55:26 echo "${paths[*]}"'\'')" 21:55:26 export PATH="/opt/pyenv/shims:${PATH}" 21:55:26 export PYENV_SHELL=bash 21:55:26 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 21:55:26 pyenv() { 21:55:26 local command 21:55:26 command="${1:-}" 21:55:26 if [ "$#" -gt 0 ]; then 21:55:26 shift 21:55:26 fi 21:55:26 21:55:26 case "$command" in 21:55:26 rehash|shell) 21:55:26 eval "$(pyenv "sh-$command" "$@")" 21:55:26 ;; 21:55:26 *) 21:55:26 command pyenv "$command" "$@" 21:55:26 ;; 21:55:26 esac 21:55:26 }' 21:55:26 +++ bash --norc -ec 'IFS=:; paths=($PATH); 21:55:26 for i in ${!paths[@]}; do 21:55:26 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 21:55:26 fi; done; 21:55:26 echo "${paths[*]}"' 21:55:26 ++ 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 21:55:26 ++ 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 21:55:26 ++ 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 21:55:26 ++ export PYENV_SHELL=bash 21:55:26 ++ PYENV_SHELL=bash 21:55:26 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 21:55:26 +++ complete -F _pyenv pyenv 21:55:26 ++ lf-pyver python3 21:55:26 ++ local py_version_xy=python3 21:55:26 ++ local py_version_xyz= 21:55:26 ++ pyenv versions 21:55:26 ++ local command 21:55:26 ++ command=versions 21:55:26 ++ '[' 1 -gt 0 ']' 21:55:26 ++ shift 21:55:26 ++ case "$command" in 21:55:26 ++ command pyenv versions 21:55:26 ++ awk '{ print $1 }' 21:55:26 ++ sed 's/^[ *]* //' 21:55:26 ++ grep -E '^[0-9.]*[0-9]$' 21:55:26 ++ [[ ! -s /tmp/.pyenv_versions ]] 21:55:26 +++ grep '^3' /tmp/.pyenv_versions 21:55:26 +++ sort -V 21:55:26 +++ tail -n 1 21:55:26 ++ py_version_xyz=3.11.10 21:55:26 ++ [[ -z 3.11.10 ]] 21:55:26 ++ echo 3.11.10 21:55:26 ++ return 0 21:55:26 + pyenv local 3.11.10 21:55:26 + local command 21:55:26 + command=local 21:55:26 + '[' 2 -gt 0 ']' 21:55:26 + shift 21:55:26 + case "$command" in 21:55:26 + command pyenv local 3.11.10 21:55:26 + for arg in "$@" 21:55:26 + case $arg in 21:55:26 + pkg_list+='tox ' 21:55:26 + for arg in "$@" 21:55:26 + case $arg in 21:55:26 + pkg_list+='virtualenv ' 21:55:26 + for arg in "$@" 21:55:26 + case $arg in 21:55:26 + pkg_list+='urllib3~=1.26.15 ' 21:55:26 + [[ -f /tmp/.toxenv ]] 21:55:26 + [[ ! -f /tmp/.toxenv ]] 21:55:26 + [[ -n '' ]] 21:55:26 + python3 -m venv /tmp/venv-dKEV 21:55:30 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-dKEV' 21:55:30 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-dKEV 21:55:30 + echo /tmp/venv-dKEV 21:55:30 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 21:55:30 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 21:55:30 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 21:55:30 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 21:55:30 + local 'pip_opts=--upgrade --quiet' 21:55:30 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 21:55:30 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 21:55:30 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 21:55:30 + [[ -n '' ]] 21:55:30 + [[ -n '' ]] 21:55:30 + lf-venv-pip-install /tmp/venv-dKEV/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 21:55:30 + local venv_python=/tmp/venv-dKEV/bin/python3 21:55:30 + shift 21:55:30 + local upstream=https://pypi.org/simple 21:55:30 + /tmp/venv-dKEV/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 21:55:34 + return 0 21:55:34 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 21:55:34 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 21:55:34 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 21:55:34 + lf-venv-pip-install /tmp/venv-dKEV/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 21:55:34 + local venv_python=/tmp/venv-dKEV/bin/python3 21:55:34 + shift 21:55:34 + local upstream=https://pypi.org/simple 21:55:34 + /tmp/venv-dKEV/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 21:55:36 + return 0 21:55:36 + type python3 21:55:36 + true 21:55:36 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-dKEV/bin to PATH' 21:55:36 lf-activate-venv(): INFO: Adding /tmp/venv-dKEV/bin to PATH 21:55:36 + PATH=/tmp/venv-dKEV/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 21:55:36 + return 0 21:55:36 + python3 --version 21:55:36 Python 3.11.10 21:55:36 + python3 -m pip --version 21:55:36 pip 26.2.1 from /tmp/venv-dKEV/lib/python3.11/site-packages/pip (python 3.11) 21:55:36 + python3 -m pip freeze 21:55:36 cachetools==7.2.1 21:55:36 colorama==0.4.6 21:55:36 distlib==0.4.3 21:55:36 filelock==4.0.12 21:55:36 packaging==26.3 21:55:36 platformdirs==4.12.3 21:55:36 pluggy==1.6.0 21:55:36 pyproject-api==1.11.3 21:55:36 python-discovery==1.6.1 21:55:36 tomli_w==1.2.0 21:55:36 tox==4.64.9 21:55:36 typing_extensions==4.16.0 21:55:36 urllib3==1.26.20 21:55:36 virtualenv==21.14.5 21:55:36 [transportpce-tox-verify-transportpce-master] $ /bin/sh -xe /tmp/jenkins13279064056032825510.sh 21:55:36 [EnvInject] - Injecting environment variables from a build step. 21:55:36 [EnvInject] - Injecting as environment variables the properties content 21:55:36 PARALLEL=True 21:55:36 21:55:36 [EnvInject] - Variables injected successfully. 21:55:36 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins13977201805504136359.sh 21:55:36 ---> tox-run.sh 21:55:36 + 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 21:55:36 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 21:55:36 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 21:55:36 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox 21:55:36 + cd /w/workspace/transportpce-tox-verify-transportpce-master/. 21:55:36 + source /home/jenkins/lf-env.sh 21:55:36 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 21:55:36 ++ mktemp -d /tmp/venv-XXXX 21:55:36 + lf_venv=/tmp/venv-xcd5 21:55:36 + local venv_file=/tmp/.os_lf_venv 21:55:36 + local python=python3 21:55:36 + local options 21:55:36 + local set_path=true 21:55:36 + local install_args= 21:55:36 ++ 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 21:55:36 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 21:55:36 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 21:55:36 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 21:55:36 + true 21:55:36 + case $1 in 21:55:36 + venv_file=/tmp/.toxenv 21:55:36 + shift 2 21:55:36 + true 21:55:36 + case $1 in 21:55:36 + shift 21:55:36 + break 21:55:36 + case $python in 21:55:36 + local pkg_list= 21:55:36 + [[ -d /opt/pyenv ]] 21:55:36 + echo 'Setup pyenv:' 21:55:36 Setup pyenv: 21:55:36 + export PYENV_ROOT=/opt/pyenv 21:55:36 + PYENV_ROOT=/opt/pyenv 21:55:36 + 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 21:55:36 + 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 21:55:36 + pyenv versions 21:55:36 system 21:55:36 3.8.20 21:55:36 3.9.20 21:55:36 3.10.15 21:55:36 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 21:55:36 + command -v pyenv 21:55:36 ++ pyenv init - --no-rehash 21:55:36 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 21:55:36 for i in ${!paths[@]}; do 21:55:36 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 21:55:36 fi; done; 21:55:36 echo "${paths[*]}"'\'')" 21:55:36 export PATH="/opt/pyenv/shims:${PATH}" 21:55:36 export PYENV_SHELL=bash 21:55:36 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 21:55:36 pyenv() { 21:55:36 local command 21:55:36 command="${1:-}" 21:55:36 if [ "$#" -gt 0 ]; then 21:55:36 shift 21:55:36 fi 21:55:36 21:55:36 case "$command" in 21:55:36 rehash|shell) 21:55:36 eval "$(pyenv "sh-$command" "$@")" 21:55:36 ;; 21:55:36 *) 21:55:36 command pyenv "$command" "$@" 21:55:36 ;; 21:55:36 esac 21:55:36 }' 21:55:36 +++ bash --norc -ec 'IFS=:; paths=($PATH); 21:55:36 for i in ${!paths[@]}; do 21:55:36 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 21:55:36 fi; done; 21:55:36 echo "${paths[*]}"' 21:55:36 ++ 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 21:55:36 ++ 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 21:55:36 ++ 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 21:55:36 ++ export PYENV_SHELL=bash 21:55:36 ++ PYENV_SHELL=bash 21:55:36 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 21:55:36 +++ complete -F _pyenv pyenv 21:55:36 ++ lf-pyver python3 21:55:36 ++ local py_version_xy=python3 21:55:36 ++ local py_version_xyz= 21:55:36 ++ pyenv versions 21:55:36 ++ local command 21:55:36 ++ command=versions 21:55:36 ++ '[' 1 -gt 0 ']' 21:55:36 ++ shift 21:55:36 ++ case "$command" in 21:55:36 ++ command pyenv versions 21:55:36 ++ sed 's/^[ *]* //' 21:55:36 ++ grep -E '^[0-9.]*[0-9]$' 21:55:36 ++ awk '{ print $1 }' 21:55:37 ++ [[ ! -s /tmp/.pyenv_versions ]] 21:55:37 +++ grep '^3' /tmp/.pyenv_versions 21:55:37 +++ sort -V 21:55:37 +++ tail -n 1 21:55:37 ++ py_version_xyz=3.11.10 21:55:37 ++ [[ -z 3.11.10 ]] 21:55:37 ++ echo 3.11.10 21:55:37 ++ return 0 21:55:37 + pyenv local 3.11.10 21:55:37 + local command 21:55:37 + command=local 21:55:37 + '[' 2 -gt 0 ']' 21:55:37 + shift 21:55:37 + case "$command" in 21:55:37 + command pyenv local 3.11.10 21:55:37 + for arg in "$@" 21:55:37 + case $arg in 21:55:37 + pkg_list+='tox ' 21:55:37 + for arg in "$@" 21:55:37 + case $arg in 21:55:37 + pkg_list+='virtualenv ' 21:55:37 + for arg in "$@" 21:55:37 + case $arg in 21:55:37 + pkg_list+='urllib3~=1.26.15 ' 21:55:37 + [[ -f /tmp/.toxenv ]] 21:55:37 ++ cat /tmp/.toxenv 21:55:37 + lf_venv=/tmp/venv-dKEV 21:55:37 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-dKEV from' file:/tmp/.toxenv 21:55:37 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-dKEV from file:/tmp/.toxenv 21:55:37 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 21:55:37 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 21:55:37 + local 'pip_opts=--upgrade --quiet' 21:55:37 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 21:55:37 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 21:55:37 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 21:55:37 + [[ -n '' ]] 21:55:37 + [[ -n '' ]] 21:55:37 + lf-venv-pip-install /tmp/venv-dKEV/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 21:55:37 + local venv_python=/tmp/venv-dKEV/bin/python3 21:55:37 + shift 21:55:37 + local upstream=https://pypi.org/simple 21:55:37 + /tmp/venv-dKEV/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 21:55:37 + return 0 21:55:37 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 21:55:37 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 21:55:37 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 21:55:37 + lf-venv-pip-install /tmp/venv-dKEV/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 21:55:37 + local venv_python=/tmp/venv-dKEV/bin/python3 21:55:37 + shift 21:55:37 + local upstream=https://pypi.org/simple 21:55:37 + /tmp/venv-dKEV/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 21:55:39 + return 0 21:55:39 + type python3 21:55:39 + true 21:55:39 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-dKEV/bin to PATH' 21:55:39 lf-activate-venv(): INFO: Adding /tmp/venv-dKEV/bin to PATH 21:55:39 + PATH=/tmp/venv-dKEV/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 21:55:39 + return 0 21:55:39 + [[ -d /opt/pyenv ]] 21:55:39 + echo '---> Setting up pyenv' 21:55:39 ---> Setting up pyenv 21:55:39 + export PYENV_ROOT=/opt/pyenv 21:55:39 + PYENV_ROOT=/opt/pyenv 21:55:39 + export PATH=/opt/pyenv/bin:/tmp/venv-dKEV/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 21:55:39 + PATH=/opt/pyenv/bin:/tmp/venv-dKEV/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 21:55:39 ++ pwd 21:55:39 + PYTHONPATH=/w/workspace/transportpce-tox-verify-transportpce-master 21:55:39 + export PYTHONPATH 21:55:39 + export TOX_TESTENV_PASSENV=PYTHONPATH 21:55:39 + TOX_TESTENV_PASSENV=PYTHONPATH 21:55:39 + tox --version 21:55:39 4.64.9 from /tmp/venv-dKEV/lib/python3.11/site-packages/tox/__init__.py 21:55:39 + PARALLEL=True 21:55:39 + TOX_OPTIONS_LIST= 21:55:39 + [[ -n '' ]] 21:55:39 + case ${PARALLEL,,} in 21:55:39 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 21:55:39 + tox --parallel auto --parallel-live 21:55:39 + tee -a /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tox.log 21:55:41 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 21:55:41 checkbashisms: freeze> python -m pip freeze --all 21:55:41 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 21:55:41 docs: install_deps> python -I -m pip install -r docs/requirements.txt 21:55:41 checkbashisms: pip==26.2.1,setuptools==84.0.0 21:55:41 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 21:55:41 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)' 21:55:41 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 21:55:42 checkbashisms: OK ✔ in 3.2 seconds 21:55:42 pre-commit: install_deps> python -I -m pip install pre-commit 21:55:45 pre-commit: freeze> python -m pip freeze --all 21:55:46 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 21:55:46 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./fixCIcentOS8reposMirrors.sh 21:55:46 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)' 21:55:46 /usr/bin/cpan 21:55:46 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run --all-files --show-diff-on-failure 21:55:46 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 21:55:46 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 21:55:47 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 21:55:47 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 21:55:48 [INFO] Initializing environment for https://github.com/hhatto/autopep8. 21:55:48 buildcontroller: freeze> python -m pip freeze --all 21:55:48 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 21:55:48 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.1,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 21:55:48 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh 21:55:48 + update-java-alternatives -l 21:55:48 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 21:55:48 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 21:55:48 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 21:55:48 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 21:55:48 update-alternatives: error: no alternatives for jaotc 21:55:48 update-alternatives: error: no alternatives for rmic 21:55:48 + java -version 21:55:48 + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 21:55:48 + JAVA_VER=21.0 21:55:48 + echo 21.0 21:55:48 21.0 21:55:48 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 21:55:48 + javac -version 21:55:49 + JAVAC_VER=21.0 21:55:49 + echo 21.0 21:55:49 21.0 21:55:49 No java21 or newer available 21:55:49 + [ 21.0 -ge 21 ] 21:55:49 ./installMavenUbuntu.sh: 14: [: Illegal number: 21.0 21:55:49 + echo No java21 or newer available 21:55:49 + exit 1 21:55:49 buildcontroller: exit 1 (0.65 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_controller.sh pid=12243 21:55:49 buildcontroller: FAIL ✖ in 9.64 seconds 21:55:49 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 21:55:49 [INFO] Initializing environment for https://github.com/koalaman/shellcheck-precommit. 21:55:50 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier. 21:55:50 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-prettier:prettier@4.0.0-alpha.8. 21:55:50 [INFO] Initializing environment for https://github.com/adrienverge/yamllint. 21:55:51 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 21:55:51 [INFO] Once installed this environment will be reused. 21:55:51 [INFO] This may take a few minutes... 21:55:53 pylint: freeze> python -m pip freeze --all 21:55:54 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 21:55:54 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}$' '{}' + 21:55:54 docs: freeze> python -m pip freeze --all 21:55:54 docs-linkcheck: freeze> python -m pip freeze --all 21:55:54 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 21:55:54 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 21:55:54 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 21:55:54 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 21:55:56 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 21:55:56 [INFO] Once installed this environment will be reused. 21:55:56 [INFO] This may take a few minutes... 21:55:57 docs: OK ✔ in 17.8 seconds 21:55:57 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 21:55:59 docs-linkcheck: OK ✔ in 20.09 seconds 21:55:59 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 21:56:01 [INFO] Installing environment for https://github.com/hhatto/autopep8. 21:56:01 [INFO] Once installed this environment will be reused. 21:56:01 [INFO] This may take a few minutes... 21:56:04 build_karaf_tests221: freeze> python -m pip freeze --all 21:56:04 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.1,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 21:56:04 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 21:56:04 ./build_karaf_for_tests.sh: 21: cd: can't cd to ../karaf221 21:56:04 ./build_karaf_for_tests.sh: 22: mvn: not found 21:56:04 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 21:56:04 build karaf in karaf221 with ./karaf221.env 21:56:04 build_karaf_tests221: exit 127 (0.00 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh pid=12756 21:56:04 build_karaf_tests221: FAIL ✖ in 6.95 seconds 21:56:04 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 21:56:04 [INFO] Installing environment for https://github.com/perltidy/perltidy. 21:56:04 [INFO] Once installed this environment will be reused. 21:56:04 [INFO] This may take a few minutes... 21:56:05 build_karaf_tests71: freeze> python -m pip freeze --all 21:56:06 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.1,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 21:56:06 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 21:56:06 ./build_karaf_for_tests.sh: 21: cd: can't cd to ../karaf71 21:56:06 ./build_karaf_for_tests.sh: 22: mvn: not found 21:56:06 build karaf in karaf71 with ./karaf71.env 21:56:06 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 21:56:06 build_karaf_tests71: exit 127 (0.00 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh pid=12784 21:56:06 build_karaf_tests71: FAIL ✖ in 6.5 seconds 21:56:06 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 21:56:10 ************* Module 2.2.1.test12_end2end 21:56:10 transportpce_tests/2.2.1/test12_end2end.py:435:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 ************* Module common.test_utils 21:56:10 transportpce_tests/common/test_utils.py:532:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 transportpce_tests/common/test_utils.py:555:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 transportpce_tests/common/test_utils.py:581:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 transportpce_tests/common/test_utils.py:617:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 transportpce_tests/common/test_utils.py:635:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 transportpce_tests/common/test_utils.py:666:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 transportpce_tests/common/test_utils.py:687:0: C0325: Unnecessary parens after 'in' keyword (superfluous-parens) 21:56:10 21:56:10 ----------------------------------- 21:56:10 Your code has been rated at 9.99/10 21:56:10 21:56:10 build_karaf_tests200: freeze> python -m pip freeze --all 21:56:10 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.1,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 21:56:10 build_karaf_tests200: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh 21:56:10 ./build_karaf_for_tests.sh: 21: cd: can't cd to ../karafoc200 21:56:10 ./build_karaf_for_tests.sh: 22: mvn: not found 21:56:10 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 21:56:10 build karaf in karafoc200 with ./karafoc200.env 21:56:10 build_karaf_tests200: exit 127 (0.00 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./build_karaf_for_tests.sh pid=12811 21:56:10 build_karaf_tests200: FAIL ✖ in 6.48 seconds 21:56:10 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 21:56:11 pylint: exit 1 (17.93 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=12642 21:56:12 pylint: FAIL ✖ in 22.68 seconds 21:56:12 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 21:56:12 buildlighty: freeze> python -m pip freeze --all 21:56:12 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.1,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 21:56:12 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh 21:56:12 ./build.sh: 7: mvn: not found 21:56:12 unzip: cannot find or open target/tpce-bin.zip, target/tpce-bin.zip.zip or target/tpce-bin.zip.ZIP. 21:56:12 buildlighty: exit 9 (0.01 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/lighty> ./build.sh pid=12934 21:56:12 [INFO] Installing environment for https://github.com/pre-commit/mirrors-prettier. 21:56:12 [INFO] Once installed this environment will be reused. 21:56:12 [INFO] This may take a few minutes... 21:56:16 [INFO] Installing environment for https://github.com/adrienverge/yamllint. 21:56:16 [INFO] Once installed this environment will be reused. 21:56:16 [INFO] This may take a few minutes... 21:56:17 buildlighty: FAIL ✖ in 6.51 seconds 21:56:17 sims: freeze> python -m pip freeze --all 21:56:17 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.1,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 21:56:17 sims: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./install_lightynode.sh 21:56:17 Using lighynode version 22.1.0.7 21:56:17 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 21:56:20 trim trailing whitespace.................................................Passed 21:56:20 fix end of files.........................................................Passed 21:56:20 check for added large files..............................................Passed 21:56:21 check for merge conflicts................................................Passed 21:56:21 check for case conflicts.................................................Passed 21:56:21 check json...............................................................Passed 21:56:21 mixed line ending........................................................Passed 21:56:21 Tabs remover.............................................................Passed 21:56:21 autopep8.................................................................Passed 21:56:23 perltidy.................................................................Passed 21:56:24 ShellCheck v0.11.0.......................................................Passed 21:56:29 prettier.................................................................Passed 21:56:31 yamllint.................................................................Passed 21:56:31 sims: OK ✔ in 9.7 seconds 21:56:31 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-transportpce-master/tests> pre-commit run gitlint-ci --hook-stage manual 21:56:31 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 21:56:31 [INFO] Once installed this environment will be reused. 21:56:31 [INFO] This may take a few minutes... 21:56:39 gitlint..................................................................Passed 21:56:58 pre-commit: OK ✔ in 57.04 seconds 21:56:58 testsPCE: freeze> python -m pip freeze --all 21:56:59 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.1,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 21:56:59 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce 21:56:59 pytest -q transportpce_tests/pce/test01_pce.py 21:58:59 EEEEEEEEEEEEEEEEEEEE [100%] 21:59:03 ==================================== ERRORS ==================================== 21:59:03 _______ ERROR at setup of TestTransportPCEPce.test_01_load_port_mapping ________ 21:59:03 21:59:03 cls = 21:59:03 21:59:03 @classmethod 21:59:03 def setUpClass(cls): 21:59:03 # pylint: disable=bare-except 21:59:03 sample_files_parsed = False 21:59:03 time.sleep(20) 21:59:03 try: 21:59:03 TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 21:59:03 "..", "..", "sample_configs", "honeynode-topo.json") 21:59:03 with open(TOPO_BI_DIR_FILE, 'r', encoding='utf-8') as topo_bi_dir: 21:59:03 cls.simple_topo_bi_dir_data = topo_bi_dir.read() 21:59:03 21:59:03 TOPO_UNI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 21:59:03 "..", "..", "sample_configs", "NW-simple-topology.json") 21:59:03 21:59:03 with open(TOPO_UNI_DIR_FILE, 'r', encoding='utf-8') as topo_uni_dir: 21:59:03 cls.simple_topo_uni_dir_data = topo_uni_dir.read() 21:59:03 21:59:03 TOPO_UNI_DIR_COMPLEX_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 21:59:03 "..", "..", "sample_configs", "NW-for-test-5-4.json") 21:59:03 with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r', encoding='utf-8') as topo_uni_dir_complex: 21:59:03 cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() 21:59:03 PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 21:59:03 "..", "..", "sample_configs", "pce_portmapping_221.json") 21:59:03 with open(PORT_MAPPING_FILE, 'r', encoding='utf-8') as port_mapping: 21:59:03 cls.port_mapping_data = port_mapping.read() 21:59:03 sample_files_parsed = True 21:59:03 except PermissionError as err: 21:59:03 print("Permission Error when trying to read sample files\n", err) 21:59:03 sys.exit(2) 21:59:03 except FileNotFoundError as err: 21:59:03 print("File Not found Error when trying to read sample files\n", err) 21:59:03 sys.exit(2) 21:59:03 except: 21:59:03 print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) 21:59:03 sys.exit(2) 21:59:03 finally: 21:59:03 if sample_files_parsed: 21:59:03 print("sample files content loaded") 21:59:03 21:59:03 > cls.processes = test_utils.start_tpce() 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 21:59:03 transportpce_tests/pce/test01_pce.py:93: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 def start_tpce(): 21:59:03 if 'NO_ODL_STARTUP' in os.environ: 21:59:03 print('No OpenDaylight instance to start!') 21:59:03 return [] 21:59:03 print('starting OpenDaylight...') 21:59:03 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 21:59:03 process = start_lighty() 21:59:03 else: 21:59:03 process = start_karaf() 21:59:03 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 21:59:03 print('OpenDaylight started !') 21:59:03 else: 21:59:03 print('OpenDaylight failed to start !') 21:59:03 shutdown_process(process) 21:59:03 for pid in process_list: 21:59:03 shutdown_process(pid) 21:59:03 > sys.exit(1) 21:59:03 E SystemExit: 1 21:59:03 21:59:03 transportpce_tests/common/test_utils.py:234: SystemExit 21:59:03 ---------------------------- Captured stdout setup ----------------------------- 21:59:03 sample files content loaded 21:59:03 starting OpenDaylight... 21:59:03 starting KARAF (karaf) TransportPCE build... 21:59:03 Pattern not found after 100 seconds! OpenDaylight failed to start ! 21:59:03 ____ ERROR at setup of TestTransportPCEPce.test_02_load_simple_topology_bi _____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73380> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___________ ERROR at setup of TestTransportPCEPce.test_03_get_nodeId ___________ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d87c40> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___________ ERROR at setup of TestTransportPCEPce.test_04_get_linkId ___________ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d87420> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ____ ERROR at setup of TestTransportPCEPce.test_05_path_computation_xpdr_bi ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73380> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ____ ERROR at setup of TestTransportPCEPce.test_06_path_computation_rdm_bi _____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d871a0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ____ ERROR at setup of TestTransportPCEPce.test_07_load_simple_topology_uni ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d876a0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___________ ERROR at setup of TestTransportPCEPce.test_08_get_nodeId ___________ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f27767e1da0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___________ ERROR at setup of TestTransportPCEPce.test_09_get_linkId ___________ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73ec0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___ ERROR at setup of TestTransportPCEPce.test_10_path_computation_xpdr_uni ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73380> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ____ ERROR at setup of TestTransportPCEPce.test_11_path_computation_rdm_uni ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73ec0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 _____ ERROR at setup of TestTransportPCEPce.test_12_load_complex_topology ______ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f27767e1940> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___________ ERROR at setup of TestTransportPCEPce.test_13_get_nodeId ___________ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d871a0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 _____ ERROR at setup of TestTransportPCEPce.test_14_fail_path_computation ______ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73380> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___ ERROR at setup of TestTransportPCEPce.test_15_success1_path_computation ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f27767e2980> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___ ERROR at setup of TestTransportPCEPce.test_16_success2_path_computation ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d84540> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 ___ ERROR at setup of TestTransportPCEPce.test_17_success3_path_computation ____ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d73380> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 _ ERROR at setup of TestTransportPCEPce.test_18_path_computation_before_oms_attribute_deletion _ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f27767e22a0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 _ ERROR at setup of TestTransportPCEPce.test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link _ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d871a0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 _ ERROR at setup of TestTransportPCEPce.test_20_path_computation_after_oms_attribute_deletion _ 21:59:03 21:59:03 cls = 21:59:03 func = . at 0x7f2776d842c0> 21:59:03 when = 'setup' 21:59:03 reraise = (, ) 21:59:03 21:59:03 @classmethod 21:59:03 def from_call( 21:59:03 cls, 21:59:03 func: Callable[[], TResult], 21:59:03 when: Literal["collect", "setup", "call", "teardown"], 21:59:03 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 21:59:03 ) -> CallInfo[TResult]: 21:59:03 """Call func, wrapping the result in a CallInfo. 21:59:03 21:59:03 :param func: 21:59:03 The function to call. Called without arguments. 21:59:03 :type func: Callable[[], _pytest.runner.TResult] 21:59:03 :param when: 21:59:03 The phase in which the function is called. 21:59:03 :param reraise: 21:59:03 Exception or exceptions that shall propagate if raised by the 21:59:03 function, instead of being wrapped in the CallInfo. 21:59:03 """ 21:59:03 excinfo = None 21:59:03 instant = timing.Instant() 21:59:03 try: 21:59:03 > result: TResult | None = func() 21:59:03 ^^^^^^ 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 21:59:03 lambda: runtest_hook(item=item, **kwds), 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 21:59:03 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 21:59:03 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 21:59:03 yield 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 21:59:03 return (yield) 21:59:03 ^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 21:59:03 item.session._setupstate.setup(item) 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 21:59:03 col.setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 21:59:03 super().setup() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 21:59:03 self._request._fillfixtures() 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 21:59:03 item.funcargs[argname] = self.getfixturevalue(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 21:59:03 fixturedef = self._get_active_fixturedef(argname) 21:59:03 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 21:59:03 fixturedef.execute(request=subrequest) 21:59:03 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21:59:03 21:59:03 self = 21:59:03 request = > 21:59:03 21:59:03 def execute(self, request: SubRequest) -> FixtureValue: 21:59:03 """Return the value of this fixture, executing it if not cached.""" 21:59:03 # Ensure that the dependent fixtures requested by this fixture are loaded. 21:59:03 # This needs to be done before checking if we have a cached value, since 21:59:03 # if a dependent fixture has their cache invalidated, e.g. due to 21:59:03 # parametrization, they finalize themselves and fixtures depending on it 21:59:03 # (which will likely include this fixture) setting `self.cached_result = None`. 21:59:03 # See #4871 21:59:03 requested_fixtures_that_should_finalize_us = [] 21:59:03 for argname in self.argnames: 21:59:03 fixturedef = request._get_active_fixturedef(argname) 21:59:03 # Saves requested fixtures in a list so we later can add our finalizer 21:59:03 # to them, ensuring that if a requested fixture gets torn down we get torn 21:59:03 # down first. This is generally handled by SetupState, but still currently 21:59:03 # needed when this fixture is not parametrized but depends on a parametrized 21:59:03 # fixture. 21:59:03 requested_fixtures_that_should_finalize_us.append(fixturedef) 21:59:03 21:59:03 # Check for (and return) cached value/exception. 21:59:03 if self.cached_result is not None: 21:59:03 request_cache_key = self.cache_key(request) 21:59:03 cache_key = self.cached_result[1] 21:59:03 try: 21:59:03 # Attempt to make a normal == check: this might fail for objects 21:59:03 # which do not implement the standard comparison (like numpy arrays -- #6497). 21:59:03 cache_hit = bool(request_cache_key == cache_key) 21:59:03 except (ValueError, RuntimeError): 21:59:03 # If the comparison raises, use 'is' as fallback. 21:59:03 cache_hit = request_cache_key is cache_key 21:59:03 21:59:03 if cache_hit: 21:59:03 if self.cached_result[2] is not None: 21:59:03 exc, exc_tb = self.cached_result[2] 21:59:03 raise exc.with_traceback(exc_tb) 21:59:03 else: 21:59:03 return self.cached_result[0] 21:59:03 # We have a previous but differently parametrized fixture instance 21:59:03 # so we need to tear it down before creating a new one. 21:59:03 self.finish(request) 21:59:03 assert self.cached_result is None 21:59:03 21:59:03 # Add finalizer to requested fixtures we saved previously. 21:59:03 # We make sure to do this after checking for cached value to avoid 21:59:03 # adding our finalizer multiple times. (#12135) 21:59:03 finalizer = functools.partial(self.finish, request=request) 21:59:03 for parent_fixture in requested_fixtures_that_should_finalize_us: 21:59:03 parent_fixture.addfinalizer(finalizer) 21:59:03 21:59:03 # Register the pytest_fixture_post_finalizer as the first finalizer, 21:59:03 # which is executed last. 21:59:03 > assert not self._finalizers 21:59:03 ^^^^^^^^^^^^^^^^^^^^ 21:59:03 E AssertionError 21:59:03 21:59:03 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 21:59:03 =========================== short test summary info ============================ 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_01_load_port_mapping 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_02_load_simple_topology_bi 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_03_get_nodeId 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_04_get_linkId 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_05_path_computation_xpdr_bi 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_06_path_computation_rdm_bi 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_07_load_simple_topology_uni 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_08_get_nodeId 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_09_get_linkId 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_10_path_computation_xpdr_uni 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_11_path_computation_rdm_uni 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_12_load_complex_topology 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_13_get_nodeId 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_14_fail_path_computation 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_15_success1_path_computation 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_16_success2_path_computation 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_17_success3_path_computation 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_18_path_computation_before_oms_attribute_deletion 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link 21:59:03 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_20_path_computation_after_oms_attribute_deletion 21:59:03 20 errors in 123.79s (0:02:03) 21:59:03 testsPCE: exit 1 (124.12 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh pce pid=13594 21:59:03 testsPCE: FAIL ✖ in 2 minutes 51.32 seconds 21:59:03 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 21:59:10 tests_tapi: freeze> python -m pip freeze --all 21:59:10 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.1,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 21:59:10 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi 21:59:10 using environment variables from ./karaf221.env 21:59:10 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 22:00:50 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 22:00:59 ==================================== ERRORS ==================================== 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_01_get_tapi_topology_T100G _ 22:00:59 22:00:59 cls = 22:00:59 22:00:59 @classmethod 22:00:59 def setUpClass(cls): 22:00:59 cls.init_failed = False 22:00:59 os.environ['JAVA_MIN_MEM'] = '1024M' 22:00:59 os.environ['JAVA_MAX_MEM'] = '4096M' 22:00:59 > cls.processes = test_utils.start_tpce() 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 22:00:59 transportpce_tests/tapi/test01_abstracted_topology.py:148: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 def start_tpce(): 22:00:59 if 'NO_ODL_STARTUP' in os.environ: 22:00:59 print('No OpenDaylight instance to start!') 22:00:59 return [] 22:00:59 print('starting OpenDaylight...') 22:00:59 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:00:59 process = start_lighty() 22:00:59 else: 22:00:59 process = start_karaf() 22:00:59 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:00:59 print('OpenDaylight started !') 22:00:59 else: 22:00:59 print('OpenDaylight failed to start !') 22:00:59 shutdown_process(process) 22:00:59 for pid in process_list: 22:00:59 shutdown_process(pid) 22:00:59 > sys.exit(1) 22:00:59 E SystemExit: 1 22:00:59 22:00:59 transportpce_tests/common/test_utils.py:234: SystemExit 22:00:59 ---------------------------- Captured stdout setup ----------------------------- 22:00:59 starting OpenDaylight... 22:00:59 starting KARAF (karaf221) TransportPCE build... 22:00:59 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_02_get_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f0093977740> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_03_connect_rdmb ___ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939cbc40> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_04_check_tapi_topos _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f009605b060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_05_disconnect_roadmb _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00952c7060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_06_connect_xpdra __ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939cb100> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_07_check_tapi_topos _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f0093975b20> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_08_connect_rdma ___ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939cb6a0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_09_connect_rdmc ___ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f009605b060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_10_check_tapi_topos _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939762a0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_11_connect_xpdra_n1_to_roadma_pp1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f009605b060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_12_connect_roadma_pp1_to_xpdra_n1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2020> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_13_check_tapi_topology_T100G _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f009605b060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_14_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f0093975a80> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_15_connect_xpdrc __ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a25c0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_16_connect_xpdrc_n1_to_roadmc_pp1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_17_connect_roadmc_pp1_to_xpdrc_n1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f0093976480> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_18_check_tapi_topology_T100G _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939cb100> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_19_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f0093976480> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_20_connect_spdr_sa1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f009605b060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_21_connect_spdr_sc1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_22_check_tapi_topology_T100G _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f009605b060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_23_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a1bc0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_24_connect_sprda_n1_to_roadma_pp2 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_25_connect_roadma_pp2_to_spdra_n1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a1bc0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_26_connect_sprdc_n1_to_roadmc_pp2 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a0d60> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_27_connect_roadmc_pp2_to_spdrc_n1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_28_check_tapi_topology_T100G _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a07c0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_29_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2ac0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_30_add_oms_attributes _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_31_create_OCH_OTU4_service _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a1300> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_32_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2ac0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_33_create_ODU4_service _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_34_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a1a80> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_35_connect_sprda_2_n2_to_roadma_pp3 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2fc0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_36_connect_roadma_pp3_to_spdra_2_n2 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_37_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a1e40> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_38_delete_ODU4_service _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_39_delete_OCH_OTU4_service _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2020> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_40_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2340> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_41_disconnect_xponders_from_roadm _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_42_check_tapi_topology_T0 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a2340> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_43_get_tapi_topology_T100G _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a3240> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_44_disconnect_roadma _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_45_disconnect_roadmc _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a3420> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_46_check_tapi_topos _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a3560> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_47_disconnect_xpdra _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_48_disconnect_xpdrc _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a23e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_49_disconnect_spdr_sa1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a1a80> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_50_disconnect_spdr_sc1 _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00939768e0> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_51_check_uninstall_Tapi_Feature _ 22:00:59 22:00:59 cls = 22:00:59 func = . at 0x7f00935a3060> 22:00:59 when = 'setup' 22:00:59 reraise = (, ) 22:00:59 22:00:59 @classmethod 22:00:59 def from_call( 22:00:59 cls, 22:00:59 func: Callable[[], TResult], 22:00:59 when: Literal["collect", "setup", "call", "teardown"], 22:00:59 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:00:59 ) -> CallInfo[TResult]: 22:00:59 """Call func, wrapping the result in a CallInfo. 22:00:59 22:00:59 :param func: 22:00:59 The function to call. Called without arguments. 22:00:59 :type func: Callable[[], _pytest.runner.TResult] 22:00:59 :param when: 22:00:59 The phase in which the function is called. 22:00:59 :param reraise: 22:00:59 Exception or exceptions that shall propagate if raised by the 22:00:59 function, instead of being wrapped in the CallInfo. 22:00:59 """ 22:00:59 excinfo = None 22:00:59 instant = timing.Instant() 22:00:59 try: 22:00:59 > result: TResult | None = func() 22:00:59 ^^^^^^ 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:00:59 lambda: runtest_hook(item=item, **kwds), 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:00:59 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:00:59 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:00:59 yield 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:00:59 return (yield) 22:00:59 ^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:00:59 item.session._setupstate.setup(item) 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:00:59 col.setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:00:59 super().setup() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:00:59 self._request._fillfixtures() 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:00:59 item.funcargs[argname] = self.getfixturevalue(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:00:59 fixturedef = self._get_active_fixturedef(argname) 22:00:59 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:00:59 fixturedef.execute(request=subrequest) 22:00:59 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:00:59 22:00:59 self = 22:00:59 request = > 22:00:59 22:00:59 def execute(self, request: SubRequest) -> FixtureValue: 22:00:59 """Return the value of this fixture, executing it if not cached.""" 22:00:59 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:00:59 # This needs to be done before checking if we have a cached value, since 22:00:59 # if a dependent fixture has their cache invalidated, e.g. due to 22:00:59 # parametrization, they finalize themselves and fixtures depending on it 22:00:59 # (which will likely include this fixture) setting `self.cached_result = None`. 22:00:59 # See #4871 22:00:59 requested_fixtures_that_should_finalize_us = [] 22:00:59 for argname in self.argnames: 22:00:59 fixturedef = request._get_active_fixturedef(argname) 22:00:59 # Saves requested fixtures in a list so we later can add our finalizer 22:00:59 # to them, ensuring that if a requested fixture gets torn down we get torn 22:00:59 # down first. This is generally handled by SetupState, but still currently 22:00:59 # needed when this fixture is not parametrized but depends on a parametrized 22:00:59 # fixture. 22:00:59 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:00:59 22:00:59 # Check for (and return) cached value/exception. 22:00:59 if self.cached_result is not None: 22:00:59 request_cache_key = self.cache_key(request) 22:00:59 cache_key = self.cached_result[1] 22:00:59 try: 22:00:59 # Attempt to make a normal == check: this might fail for objects 22:00:59 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:00:59 cache_hit = bool(request_cache_key == cache_key) 22:00:59 except (ValueError, RuntimeError): 22:00:59 # If the comparison raises, use 'is' as fallback. 22:00:59 cache_hit = request_cache_key is cache_key 22:00:59 22:00:59 if cache_hit: 22:00:59 if self.cached_result[2] is not None: 22:00:59 exc, exc_tb = self.cached_result[2] 22:00:59 raise exc.with_traceback(exc_tb) 22:00:59 else: 22:00:59 return self.cached_result[0] 22:00:59 # We have a previous but differently parametrized fixture instance 22:00:59 # so we need to tear it down before creating a new one. 22:00:59 self.finish(request) 22:00:59 assert self.cached_result is None 22:00:59 22:00:59 # Add finalizer to requested fixtures we saved previously. 22:00:59 # We make sure to do this after checking for cached value to avoid 22:00:59 # adding our finalizer multiple times. (#12135) 22:00:59 finalizer = functools.partial(self.finish, request=request) 22:00:59 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:00:59 parent_fixture.addfinalizer(finalizer) 22:00:59 22:00:59 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:00:59 # which is executed last. 22:00:59 > assert not self._finalizers 22:00:59 ^^^^^^^^^^^^^^^^^^^^ 22:00:59 E AssertionError 22:00:59 22:00:59 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:00:59 =========================== short test summary info ============================ 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_01_get_tapi_topology_T100G 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_02_get_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_03_connect_rdmb 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_04_check_tapi_topos 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_05_disconnect_roadmb 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_06_connect_xpdra 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_07_check_tapi_topos 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_08_connect_rdma 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_09_connect_rdmc 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_10_check_tapi_topos 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_11_connect_xpdra_n1_to_roadma_pp1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_12_connect_roadma_pp1_to_xpdra_n1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_13_check_tapi_topology_T100G 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_14_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_15_connect_xpdrc 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_16_connect_xpdrc_n1_to_roadmc_pp1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_17_connect_roadmc_pp1_to_xpdrc_n1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_18_check_tapi_topology_T100G 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_19_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_20_connect_spdr_sa1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_21_connect_spdr_sc1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_22_check_tapi_topology_T100G 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_23_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_24_connect_sprda_n1_to_roadma_pp2 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_25_connect_roadma_pp2_to_spdra_n1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_26_connect_sprdc_n1_to_roadmc_pp2 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_27_connect_roadmc_pp2_to_spdrc_n1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_28_check_tapi_topology_T100G 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_29_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_30_add_oms_attributes 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_31_create_OCH_OTU4_service 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_32_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_33_create_ODU4_service 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_34_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_35_connect_sprda_2_n2_to_roadma_pp3 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_36_connect_roadma_pp3_to_spdra_2_n2 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_37_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_38_delete_ODU4_service 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_39_delete_OCH_OTU4_service 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_40_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_41_disconnect_xponders_from_roadm 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_42_check_tapi_topology_T0 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_43_get_tapi_topology_T100G 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_44_disconnect_roadma 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_45_disconnect_roadmc 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_46_check_tapi_topos 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_47_disconnect_xpdra 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_48_disconnect_xpdrc 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_49_disconnect_spdr_sa1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_50_disconnect_spdr_sc1 22:00:59 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_51_check_uninstall_Tapi_Feature 22:00:59 51 errors in 109.34s (0:01:49) 22:00:59 tests_tapi: exit 1 (109.60 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh tapi pid=13666 22:01:00 tests_tapi: FAIL ✖ in 1 minute 56.69 seconds 22:01:00 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:01:00 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:01:07 tests200: freeze> python -m pip freeze --all 22:01:07 tests221: freeze> python -m pip freeze --all 22:01: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.1,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:01:07 tests200: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc200 22:01:07 using environment variables from ./karafoc200.env 22:01:07 pytest -q transportpce_tests/oc200/test01_portmapping.py 22:01: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.1,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:01:07 tests221: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 22:01:07 using environment variables from ./karaf221.env 22:01:07 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 22:02:48 EEEEEEEEEEEEEEEEEEE [100%] 22:02:49 ==================================== ERRORS ==================================== 22:02:49 __ ERROR at setup of TestTransportPCEPortmapping.test_01_meta_data_insertion ___ 22:02:49 22:02:49 cls = 22:02:49 22:02:49 @classmethod 22:02:49 def setUpClass(cls): 22:02:49 > cls.processes = test_utils.start_tpce() 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 22:02:49 transportpce_tests/oc200/test01_portmapping.py:29: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 def start_tpce(): 22:02:49 if 'NO_ODL_STARTUP' in os.environ: 22:02:49 print('No OpenDaylight instance to start!') 22:02:49 return [] 22:02:49 print('starting OpenDaylight...') 22:02:49 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:02:49 process = start_lighty() 22:02:49 else: 22:02:49 process = start_karaf() 22:02:49 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:02:49 print('OpenDaylight started !') 22:02:49 else: 22:02:49 print('OpenDaylight failed to start !') 22:02:49 shutdown_process(process) 22:02:49 for pid in process_list: 22:02:49 shutdown_process(pid) 22:02:49 > sys.exit(1) 22:02:49 E SystemExit: 1 22:02:49 22:02:49 transportpce_tests/common/test_utils.py:234: SystemExit 22:02:49 ---------------------------- Captured stdout setup ----------------------------- 22:02:49 starting OpenDaylight... 22:02:49 starting KARAF (karafoc200) TransportPCE build... 22:02:49 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_02_catalog_input_insertion _ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187e147420> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_device_connection _ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187ba5fec0> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_04_xpdr_device_connected __ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187d1ff600> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_05_xpdr_portmapping_info __ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187ba3b740> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK5 _ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187e147420> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187d1ff600> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 __ ERROR at setup of TestTransportPCEPortmapping.test_08_mpdr_switching_pool ___ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187ba5f880> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 ___ ERROR at setup of TestTransportPCEPortmapping.test_09_check_mccapprofile ___ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187ba5f6a0> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 22:02:49 22:02:49 cls = 22:02:49 func = . at 0x7f187ba5f600> 22:02:49 when = 'setup' 22:02:49 reraise = (, ) 22:02:49 22:02:49 @classmethod 22:02:49 def from_call( 22:02:49 cls, 22:02:49 func: Callable[[], TResult], 22:02:49 when: Literal["collect", "setup", "call", "teardown"], 22:02:49 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:49 ) -> CallInfo[TResult]: 22:02:49 """Call func, wrapping the result in a CallInfo. 22:02:49 22:02:49 :param func: 22:02:49 The function to call. Called without arguments. 22:02:49 :type func: Callable[[], _pytest.runner.TResult] 22:02:49 :param when: 22:02:49 The phase in which the function is called. 22:02:49 :param reraise: 22:02:49 Exception or exceptions that shall propagate if raised by the 22:02:49 function, instead of being wrapped in the CallInfo. 22:02:49 """ 22:02:49 excinfo = None 22:02:49 instant = timing.Instant() 22:02:49 try: 22:02:49 > result: TResult | None = func() 22:02:49 ^^^^^^ 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:49 lambda: runtest_hook(item=item, **kwds), 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:49 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:49 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:49 yield 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:49 return (yield) 22:02:49 ^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:49 item.session._setupstate.setup(item) 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:49 col.setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:49 super().setup() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:49 self._request._fillfixtures() 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:49 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:49 fixturedef = self._get_active_fixturedef(argname) 22:02:49 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:49 fixturedef.execute(request=subrequest) 22:02:49 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:49 22:02:49 self = 22:02:49 request = > 22:02:49 22:02:49 def execute(self, request: SubRequest) -> FixtureValue: 22:02:49 """Return the value of this fixture, executing it if not cached.""" 22:02:49 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:49 # This needs to be done before checking if we have a cached value, since 22:02:49 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:49 # parametrization, they finalize themselves and fixtures depending on it 22:02:49 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:49 # See #4871 22:02:49 requested_fixtures_that_should_finalize_us = [] 22:02:49 for argname in self.argnames: 22:02:49 fixturedef = request._get_active_fixturedef(argname) 22:02:49 # Saves requested fixtures in a list so we later can add our finalizer 22:02:49 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:49 # down first. This is generally handled by SetupState, but still currently 22:02:49 # needed when this fixture is not parametrized but depends on a parametrized 22:02:49 # fixture. 22:02:49 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:49 22:02:49 # Check for (and return) cached value/exception. 22:02:49 if self.cached_result is not None: 22:02:49 request_cache_key = self.cache_key(request) 22:02:49 cache_key = self.cached_result[1] 22:02:49 try: 22:02:49 # Attempt to make a normal == check: this might fail for objects 22:02:49 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:49 cache_hit = bool(request_cache_key == cache_key) 22:02:49 except (ValueError, RuntimeError): 22:02:49 # If the comparison raises, use 'is' as fallback. 22:02:49 cache_hit = request_cache_key is cache_key 22:02:49 22:02:49 if cache_hit: 22:02:49 if self.cached_result[2] is not None: 22:02:49 exc, exc_tb = self.cached_result[2] 22:02:49 raise exc.with_traceback(exc_tb) 22:02:49 else: 22:02:49 return self.cached_result[0] 22:02:49 # We have a previous but differently parametrized fixture instance 22:02:49 # so we need to tear it down before creating a new one. 22:02:49 self.finish(request) 22:02:49 assert self.cached_result is None 22:02:49 22:02:49 # Add finalizer to requested fixtures we saved previously. 22:02:49 # We make sure to do this after checking for cached value to avoid 22:02:49 # adding our finalizer multiple times. (#12135) 22:02:49 finalizer = functools.partial(self.finish, request=request) 22:02:49 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:49 parent_fixture.addfinalizer(finalizer) 22:02:49 22:02:49 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:49 # which is executed last. 22:02:49 > assert not self._finalizers 22:02:49 ^^^^^^^^^^^^^^^^^^^^ 22:02:49 E AssertionError 22:02:49 22:02:49 ../.tox/tests200/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:49 =========================== short test summary info ============================ 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_01_meta_data_insertion 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_02_catalog_input_insertion 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_device_connection 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_04_xpdr_device_connected 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_05_xpdr_portmapping_info 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK5 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_08_mpdr_switching_pool 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_09_check_mccapprofile 22:02:49 ERROR transportpce_tests/oc200/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 22:02:49 10 errors in 101.96s (0:01:41) 22:02:49 tests200: exit 1 (102.23 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh oc200 pid=13811 22:02:50 Etests200: FAIL ✖ in 1 minute 50.01 seconds 22:02:50 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:02:50 EEEEEEEEEEEEEEEEEEEEEEEEE [100%] 22:02:54 ==================================== ERRORS ==================================== 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_01_rdm_device_connection __ 22:02:54 22:02:54 cls = 22:02:54 22:02:54 @classmethod 22:02:54 def setUpClass(cls): 22:02:54 > cls.processes = test_utils.start_tpce() 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 22:02:54 transportpce_tests/2.2.1/test01_portmapping.py:33: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 def start_tpce(): 22:02:54 if 'NO_ODL_STARTUP' in os.environ: 22:02:54 print('No OpenDaylight instance to start!') 22:02:54 return [] 22:02:54 print('starting OpenDaylight...') 22:02:54 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:02:54 process = start_lighty() 22:02:54 else: 22:02:54 process = start_karaf() 22:02:54 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:02:54 print('OpenDaylight started !') 22:02:54 else: 22:02:54 print('OpenDaylight failed to start !') 22:02:54 shutdown_process(process) 22:02:54 for pid in process_list: 22:02:54 shutdown_process(pid) 22:02:54 > sys.exit(1) 22:02:54 E SystemExit: 1 22:02:54 22:02:54 transportpce_tests/common/test_utils.py:234: SystemExit 22:02:54 ---------------------------- Captured stdout setup ----------------------------- 22:02:54 starting OpenDaylight... 22:02:54 starting KARAF (karaf221) TransportPCE build... 22:02:54 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:02:54 __ ERROR at setup of TestTransportPCEPortmapping.test_02_rdm_device_connected __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ef100> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 __ ERROR at setup of TestTransportPCEPortmapping.test_03_rdm_portmapping_info __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ef2e0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92aa903240> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG1_PP3_TXRX _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ef100> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_07_rdm_portmapping_SRG3_PP1_TXRX _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_08_xpdr_device_connection _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ed120> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_09_xpdr_device_connected __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a8232d40> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_portmapping_info __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_portmapping_NETWORK1 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ed120> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_portmapping_XPDR2_NETWORK1 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a8233f60> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_13_xpdr_portmapping_XPDR1_CLIENT1 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_14_xpdr_portmapping_XPDR1_CLIENT2 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_15_spdr_device_connection _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ed120> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_16_spdr_device_connected __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_17_spdr_portmapping_info __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a8232520> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_18_spdr_switching_pool_1 __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_19_spdr_switching_pool_2 __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a8233d80> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_20_spdr_switching_pool_3 __ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ed120> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_21_spdr_portmapping_mappings _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_22_spdr_portmapping_XPDR1_CLIENT1 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81ee0c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_23_spdr_portmapping_XPDR1_NETWORK1 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81edf80> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_24_spdr_portmapping_XPDR2_CLIENT2 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_25_spdr_portmapping_XPDR2_NETWORK2 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a81edf80> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_26_spdr_portmapping_XPDR3_CLIENT3 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_27_spdr_portmapping_XPDR3_NETWORK1 _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_28_spdr_device_disconnection _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a9b13060> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_29_xpdr_device_disconnected _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a828c4a0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_30_xpdr_device_disconnection _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_31_xpdr_device_disconnected _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a828d800> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_32_xpdr_device_not_connected _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a828c540> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_33_rdm_device_disconnection _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_34_rdm_device_disconnected _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a828d6c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 _ ERROR at setup of TestTransportPCEPortmapping.test_35_rdm_device_not_connected _ 22:02:54 22:02:54 cls = 22:02:54 func = . at 0x7f92a82339c0> 22:02:54 when = 'setup' 22:02:54 reraise = (, ) 22:02:54 22:02:54 @classmethod 22:02:54 def from_call( 22:02:54 cls, 22:02:54 func: Callable[[], TResult], 22:02:54 when: Literal["collect", "setup", "call", "teardown"], 22:02:54 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:02:54 ) -> CallInfo[TResult]: 22:02:54 """Call func, wrapping the result in a CallInfo. 22:02:54 22:02:54 :param func: 22:02:54 The function to call. Called without arguments. 22:02:54 :type func: Callable[[], _pytest.runner.TResult] 22:02:54 :param when: 22:02:54 The phase in which the function is called. 22:02:54 :param reraise: 22:02:54 Exception or exceptions that shall propagate if raised by the 22:02:54 function, instead of being wrapped in the CallInfo. 22:02:54 """ 22:02:54 excinfo = None 22:02:54 instant = timing.Instant() 22:02:54 try: 22:02:54 > result: TResult | None = func() 22:02:54 ^^^^^^ 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:02:54 lambda: runtest_hook(item=item, **kwds), 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:02:54 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:02:54 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:02:54 yield 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:02:54 return (yield) 22:02:54 ^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:02:54 item.session._setupstate.setup(item) 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:02:54 col.setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:02:54 super().setup() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:02:54 self._request._fillfixtures() 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:02:54 item.funcargs[argname] = self.getfixturevalue(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:02:54 fixturedef = self._get_active_fixturedef(argname) 22:02:54 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:02:54 fixturedef.execute(request=subrequest) 22:02:54 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:02:54 22:02:54 self = 22:02:54 request = > 22:02:54 22:02:54 def execute(self, request: SubRequest) -> FixtureValue: 22:02:54 """Return the value of this fixture, executing it if not cached.""" 22:02:54 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:02:54 # This needs to be done before checking if we have a cached value, since 22:02:54 # if a dependent fixture has their cache invalidated, e.g. due to 22:02:54 # parametrization, they finalize themselves and fixtures depending on it 22:02:54 # (which will likely include this fixture) setting `self.cached_result = None`. 22:02:54 # See #4871 22:02:54 requested_fixtures_that_should_finalize_us = [] 22:02:54 for argname in self.argnames: 22:02:54 fixturedef = request._get_active_fixturedef(argname) 22:02:54 # Saves requested fixtures in a list so we later can add our finalizer 22:02:54 # to them, ensuring that if a requested fixture gets torn down we get torn 22:02:54 # down first. This is generally handled by SetupState, but still currently 22:02:54 # needed when this fixture is not parametrized but depends on a parametrized 22:02:54 # fixture. 22:02:54 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:02:54 22:02:54 # Check for (and return) cached value/exception. 22:02:54 if self.cached_result is not None: 22:02:54 request_cache_key = self.cache_key(request) 22:02:54 cache_key = self.cached_result[1] 22:02:54 try: 22:02:54 # Attempt to make a normal == check: this might fail for objects 22:02:54 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:02:54 cache_hit = bool(request_cache_key == cache_key) 22:02:54 except (ValueError, RuntimeError): 22:02:54 # If the comparison raises, use 'is' as fallback. 22:02:54 cache_hit = request_cache_key is cache_key 22:02:54 22:02:54 if cache_hit: 22:02:54 if self.cached_result[2] is not None: 22:02:54 exc, exc_tb = self.cached_result[2] 22:02:54 raise exc.with_traceback(exc_tb) 22:02:54 else: 22:02:54 return self.cached_result[0] 22:02:54 # We have a previous but differently parametrized fixture instance 22:02:54 # so we need to tear it down before creating a new one. 22:02:54 self.finish(request) 22:02:54 assert self.cached_result is None 22:02:54 22:02:54 # Add finalizer to requested fixtures we saved previously. 22:02:54 # We make sure to do this after checking for cached value to avoid 22:02:54 # adding our finalizer multiple times. (#12135) 22:02:54 finalizer = functools.partial(self.finish, request=request) 22:02:54 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:02:54 parent_fixture.addfinalizer(finalizer) 22:02:54 22:02:54 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:02:54 # which is executed last. 22:02:54 > assert not self._finalizers 22:02:54 ^^^^^^^^^^^^^^^^^^^^ 22:02:54 E AssertionError 22:02:54 22:02:54 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:02:54 =========================== short test summary info ============================ 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_rdm_device_connection 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_rdm_device_connected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_rdm_portmapping_info 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG1_PP3_TXRX 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_rdm_portmapping_SRG3_PP1_TXRX 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_xpdr_device_connection 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_xpdr_device_connected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_portmapping_info 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_portmapping_NETWORK1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_portmapping_XPDR2_NETWORK1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_13_xpdr_portmapping_XPDR1_CLIENT1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_14_xpdr_portmapping_XPDR1_CLIENT2 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_15_spdr_device_connection 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_16_spdr_device_connected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_17_spdr_portmapping_info 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_18_spdr_switching_pool_1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_19_spdr_switching_pool_2 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_20_spdr_switching_pool_3 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_21_spdr_portmapping_mappings 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_22_spdr_portmapping_XPDR1_CLIENT1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_23_spdr_portmapping_XPDR1_NETWORK1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_24_spdr_portmapping_XPDR2_CLIENT2 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_25_spdr_portmapping_XPDR2_NETWORK2 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_26_spdr_portmapping_XPDR3_CLIENT3 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_27_spdr_portmapping_XPDR3_NETWORK1 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_28_spdr_device_disconnection 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_29_xpdr_device_disconnected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_30_xpdr_device_disconnection 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_31_xpdr_device_disconnected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_32_xpdr_device_not_connected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_33_rdm_device_disconnection 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_34_rdm_device_disconnected 22:02:54 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_35_rdm_device_not_connected 22:02:54 35 errors in 106.63s (0:01:46) 22:02:54 tests221: exit 1 (106.93 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 2.2.1 pid=13822 22:02:54 tests221: FAIL ✖ in 1 minute 54.77 seconds 22:02: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:02:56 tests71: freeze> python -m pip freeze --all 22:02:57 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.1,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:02:57 tests71: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 22:02:57 using environment variables from ./karaf71.env 22:02:57 pytest -q transportpce_tests/7.1/test01_portmapping.py 22:03:00 tests_hybrid: freeze> python -m pip freeze --all 22:03:01 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.1,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:03:01 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid 22:03:01 using environment variables from ./karaf221.env 22:03:01 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 22:04:37 EEEEEEEEEEEE [100%] 22:04:39 ==================================== ERRORS ==================================== 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_01_xpdr_device_connection _ 22:04:39 22:04:39 cls = 22:04:39 22:04:39 @classmethod 22:04:39 def setUpClass(cls): 22:04:39 > cls.processes = test_utils.start_tpce() 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 22:04:39 transportpce_tests/7.1/test01_portmapping.py:32: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 def start_tpce(): 22:04:39 if 'NO_ODL_STARTUP' in os.environ: 22:04:39 print('No OpenDaylight instance to start!') 22:04:39 return [] 22:04:39 print('starting OpenDaylight...') 22:04:39 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:04:39 process = start_lighty() 22:04:39 else: 22:04:39 process = start_karaf() 22:04:39 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:04:39 print('OpenDaylight started !') 22:04:39 else: 22:04:39 print('OpenDaylight failed to start !') 22:04:39 shutdown_process(process) 22:04:39 for pid in process_list: 22:04:39 shutdown_process(pid) 22:04:39 > sys.exit(1) 22:04:39 E SystemExit: 1 22:04:39 22:04:39 transportpce_tests/common/test_utils.py:234: SystemExit 22:04:39 ---------------------------- Captured stdout setup ----------------------------- 22:04:39 starting OpenDaylight... 22:04:39 starting KARAF (karaf71) TransportPCE build... 22:04:39 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_02_xpdr_device_connected __ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d4b3df4c0> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_portmapping_info __ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc3a60> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_04_tpdr_portmapping_NETWORK1 _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d4a5e2fc0> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_05_tpdr_portmapping_CLIENT1 _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d4b3df2e0> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK1 _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc37e0> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d4a5e2fc0> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 ___ ERROR at setup of TestTransportPCEPortmapping.test_08_check_mccapprofile ___ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc3a60> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 __ ERROR at setup of TestTransportPCEPortmapping.test_09_mpdr_switching_pool ___ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc1120> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc37e0> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_device_disconnected _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc3600> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_device_not_connected _ 22:04:39 22:04:39 cls = 22:04:39 func = . at 0x7f0d48cc1120> 22:04:39 when = 'setup' 22:04:39 reraise = (, ) 22:04:39 22:04:39 @classmethod 22:04:39 def from_call( 22:04:39 cls, 22:04:39 func: Callable[[], TResult], 22:04:39 when: Literal["collect", "setup", "call", "teardown"], 22:04:39 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:39 ) -> CallInfo[TResult]: 22:04:39 """Call func, wrapping the result in a CallInfo. 22:04:39 22:04:39 :param func: 22:04:39 The function to call. Called without arguments. 22:04:39 :type func: Callable[[], _pytest.runner.TResult] 22:04:39 :param when: 22:04:39 The phase in which the function is called. 22:04:39 :param reraise: 22:04:39 Exception or exceptions that shall propagate if raised by the 22:04:39 function, instead of being wrapped in the CallInfo. 22:04:39 """ 22:04:39 excinfo = None 22:04:39 instant = timing.Instant() 22:04:39 try: 22:04:39 > result: TResult | None = func() 22:04:39 ^^^^^^ 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:39 lambda: runtest_hook(item=item, **kwds), 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:39 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:39 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:39 yield 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:39 return (yield) 22:04:39 ^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:39 item.session._setupstate.setup(item) 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:39 col.setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:39 super().setup() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:39 self._request._fillfixtures() 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:39 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:39 fixturedef = self._get_active_fixturedef(argname) 22:04:39 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:39 fixturedef.execute(request=subrequest) 22:04:39 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:39 22:04:39 self = 22:04:39 request = > 22:04:39 22:04:39 def execute(self, request: SubRequest) -> FixtureValue: 22:04:39 """Return the value of this fixture, executing it if not cached.""" 22:04:39 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:39 # This needs to be done before checking if we have a cached value, since 22:04:39 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:39 # parametrization, they finalize themselves and fixtures depending on it 22:04:39 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:39 # See #4871 22:04:39 requested_fixtures_that_should_finalize_us = [] 22:04:39 for argname in self.argnames: 22:04:39 fixturedef = request._get_active_fixturedef(argname) 22:04:39 # Saves requested fixtures in a list so we later can add our finalizer 22:04:39 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:39 # down first. This is generally handled by SetupState, but still currently 22:04:39 # needed when this fixture is not parametrized but depends on a parametrized 22:04:39 # fixture. 22:04:39 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:39 22:04:39 # Check for (and return) cached value/exception. 22:04:39 if self.cached_result is not None: 22:04:39 request_cache_key = self.cache_key(request) 22:04:39 cache_key = self.cached_result[1] 22:04:39 try: 22:04:39 # Attempt to make a normal == check: this might fail for objects 22:04:39 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:39 cache_hit = bool(request_cache_key == cache_key) 22:04:39 except (ValueError, RuntimeError): 22:04:39 # If the comparison raises, use 'is' as fallback. 22:04:39 cache_hit = request_cache_key is cache_key 22:04:39 22:04:39 if cache_hit: 22:04:39 if self.cached_result[2] is not None: 22:04:39 exc, exc_tb = self.cached_result[2] 22:04:39 raise exc.with_traceback(exc_tb) 22:04:39 else: 22:04:39 return self.cached_result[0] 22:04:39 # We have a previous but differently parametrized fixture instance 22:04:39 # so we need to tear it down before creating a new one. 22:04:39 self.finish(request) 22:04:39 assert self.cached_result is None 22:04:39 22:04:39 # Add finalizer to requested fixtures we saved previously. 22:04:39 # We make sure to do this after checking for cached value to avoid 22:04:39 # adding our finalizer multiple times. (#12135) 22:04:39 finalizer = functools.partial(self.finish, request=request) 22:04:39 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:39 parent_fixture.addfinalizer(finalizer) 22:04:39 22:04:39 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:39 # which is executed last. 22:04:39 > assert not self._finalizers 22:04:39 ^^^^^^^^^^^^^^^^^^^^ 22:04:39 E AssertionError 22:04:39 22:04:39 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:39 =========================== short test summary info ============================ 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_xpdr_device_connection 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_xpdr_device_connected 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_portmapping_info 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_tpdr_portmapping_NETWORK1 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_tpdr_portmapping_CLIENT1 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK1 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_check_mccapprofile 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_mpdr_switching_pool 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_device_disconnected 22:04:39 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_device_not_connected 22:04:39 12 errors in 102.34s (0:01:42) 22:04:39 tests71: exit 1 (102.64 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh 7.1 pid=13946 22:04:41 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 22:04:50 ==================================== ERRORS ==================================== 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_01_connect_xpdrA _ 22:04:50 22:04:50 cls = 22:04:50 22:04:50 @classmethod 22:04:50 def setUpClass(cls): 22:04:50 > cls.processes = test_utils.start_tpce() 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 22:04:50 transportpce_tests/hybrid/test01_device_change_notifications.py:76: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 def start_tpce(): 22:04:50 if 'NO_ODL_STARTUP' in os.environ: 22:04:50 print('No OpenDaylight instance to start!') 22:04:50 return [] 22:04:50 print('starting OpenDaylight...') 22:04:50 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 22:04:50 process = start_lighty() 22:04:50 else: 22:04:50 process = start_karaf() 22:04:50 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 22:04:50 print('OpenDaylight started !') 22:04:50 else: 22:04:50 print('OpenDaylight failed to start !') 22:04:50 shutdown_process(process) 22:04:50 for pid in process_list: 22:04:50 shutdown_process(pid) 22:04:50 > sys.exit(1) 22:04:50 E SystemExit: 1 22:04:50 22:04:50 transportpce_tests/common/test_utils.py:234: SystemExit 22:04:50 ---------------------------- Captured stdout setup ----------------------------- 22:04:50 starting OpenDaylight... 22:04:50 starting KARAF (karaf221) TransportPCE build... 22:04:50 Pattern not found after 100 seconds! OpenDaylight failed to start ! 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_02_connect_xpdrC _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e22a20> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_03_connect_rdmA _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e77f60> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_04_connect_rdmC _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d09522f20> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_05_connect_xpdrA_N1_to_roadmA_PP1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e21440> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_06_connect_roadmA_PP1_to_xpdrA_N1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d087653a0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_07_connect_xpdrC_N1_to_roadmC_PP1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e21440> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_08_connect_roadmC_PP1_to_xpdrC_N1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76700> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_09_add_omsAttributes_ROADMA_ROADMC _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76980> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_10_add_omsAttributes_ROADMC_ROADMA _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76700> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_11_create_eth_service1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e21440> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_12_get_eth_service1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d940> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_13_change_status_line_port_xpdra _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76700> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_14_check_update_portmapping _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e21440> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_15_check_update_openroadm_topo _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684dda0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_16_check_update_service1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e21440> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_17_restore_status_line_port_xpdra _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e218a0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_18_check_update_portmapping_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e768e0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_19_check_update_openroadm_topo_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e218a0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_20_check_update_service1_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_21_change_status_port_roadma_srg _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e768e0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_22_check_update_portmapping _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_23_check_update_openroadm_topo _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684e0c0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_24_restore_status_port_roadma_srg _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_25_check_update_portmapping_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684e0c0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_26_check_update_openroadm_topo_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684c860> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_27_check_update_service1_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_28_change_status_line_port_roadma_deg _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d440> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_29_check_update_portmapping _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d260> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_30_check_update_openroadm_topo _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_31_restore_status_line_port_roadma_srg _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d6c0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_32_check_update_portmapping_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d800> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_33_check_update_openroadm_topo_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_34_check_update_service1_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684dd00> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_35_change_status_line_port_xpdrc _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d800> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_36_check_update_portmapping _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_37_check_update_openroadm_topo _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684df80> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_38_restore_status_line_port_xpdrc _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_39_check_update_portmapping_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684cea0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_40_check_update_openroadm_topo_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684da80> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_41_check_update_service1_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_42_change_status_port_roadma_srg _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684da80> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_43_check_update_portmapping _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684ea20> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_44_check_update_openroadm_topo _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_45_check_update_service1_ok _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684d9e0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_46_delete_eth_service1 _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684dbc0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_47_disconnect_xponders_from_roadm _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_48_disconnect_XPDRA _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684df80> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_49_disconnect_XPDRC _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684e5c0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_50_disconnect_ROADMA _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d06e76d40> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_51_disconnect_ROADMC _ 22:04:50 22:04:50 cls = 22:04:50 func = . at 0x7f2d0684e2a0> 22:04:50 when = 'setup' 22:04:50 reraise = (, ) 22:04:50 22:04:50 @classmethod 22:04:50 def from_call( 22:04:50 cls, 22:04:50 func: Callable[[], TResult], 22:04:50 when: Literal["collect", "setup", "call", "teardown"], 22:04:50 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 22:04:50 ) -> CallInfo[TResult]: 22:04:50 """Call func, wrapping the result in a CallInfo. 22:04:50 22:04:50 :param func: 22:04:50 The function to call. Called without arguments. 22:04:50 :type func: Callable[[], _pytest.runner.TResult] 22:04:50 :param when: 22:04:50 The phase in which the function is called. 22:04:50 :param reraise: 22:04:50 Exception or exceptions that shall propagate if raised by the 22:04:50 function, instead of being wrapped in the CallInfo. 22:04:50 """ 22:04:50 excinfo = None 22:04:50 instant = timing.Instant() 22:04:50 try: 22:04:50 > result: TResult | None = func() 22:04:50 ^^^^^^ 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 22:04:50 lambda: runtest_hook(item=item, **kwds), 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 22:04:50 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 22:04:50 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 22:04:50 yield 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 22:04:50 return (yield) 22:04:50 ^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 22:04:50 item.session._setupstate.setup(item) 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 22:04:50 col.setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 22:04:50 super().setup() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 22:04:50 self._request._fillfixtures() 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 22:04:50 item.funcargs[argname] = self.getfixturevalue(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 22:04:50 fixturedef = self._get_active_fixturedef(argname) 22:04:50 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 22:04:50 fixturedef.execute(request=subrequest) 22:04:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 22:04:50 22:04:50 self = 22:04:50 request = > 22:04:50 22:04:50 def execute(self, request: SubRequest) -> FixtureValue: 22:04:50 """Return the value of this fixture, executing it if not cached.""" 22:04:50 # Ensure that the dependent fixtures requested by this fixture are loaded. 22:04:50 # This needs to be done before checking if we have a cached value, since 22:04:50 # if a dependent fixture has their cache invalidated, e.g. due to 22:04:50 # parametrization, they finalize themselves and fixtures depending on it 22:04:50 # (which will likely include this fixture) setting `self.cached_result = None`. 22:04:50 # See #4871 22:04:50 requested_fixtures_that_should_finalize_us = [] 22:04:50 for argname in self.argnames: 22:04:50 fixturedef = request._get_active_fixturedef(argname) 22:04:50 # Saves requested fixtures in a list so we later can add our finalizer 22:04:50 # to them, ensuring that if a requested fixture gets torn down we get torn 22:04:50 # down first. This is generally handled by SetupState, but still currently 22:04:50 # needed when this fixture is not parametrized but depends on a parametrized 22:04:50 # fixture. 22:04:50 requested_fixtures_that_should_finalize_us.append(fixturedef) 22:04:50 22:04:50 # Check for (and return) cached value/exception. 22:04:50 if self.cached_result is not None: 22:04:50 request_cache_key = self.cache_key(request) 22:04:50 cache_key = self.cached_result[1] 22:04:50 try: 22:04:50 # Attempt to make a normal == check: this might fail for objects 22:04:50 # which do not implement the standard comparison (like numpy arrays -- #6497). 22:04:50 cache_hit = bool(request_cache_key == cache_key) 22:04:50 except (ValueError, RuntimeError): 22:04:50 # If the comparison raises, use 'is' as fallback. 22:04:50 cache_hit = request_cache_key is cache_key 22:04:50 22:04:50 if cache_hit: 22:04:50 if self.cached_result[2] is not None: 22:04:50 exc, exc_tb = self.cached_result[2] 22:04:50 raise exc.with_traceback(exc_tb) 22:04:50 else: 22:04:50 return self.cached_result[0] 22:04:50 # We have a previous but differently parametrized fixture instance 22:04:50 # so we need to tear it down before creating a new one. 22:04:50 self.finish(request) 22:04:50 assert self.cached_result is None 22:04:50 22:04:50 # Add finalizer to requested fixtures we saved previously. 22:04:50 # We make sure to do this after checking for cached value to avoid 22:04:50 # adding our finalizer multiple times. (#12135) 22:04:50 finalizer = functools.partial(self.finish, request=request) 22:04:50 for parent_fixture in requested_fixtures_that_should_finalize_us: 22:04:50 parent_fixture.addfinalizer(finalizer) 22:04:50 22:04:50 # Register the pytest_fixture_post_finalizer as the first finalizer, 22:04:50 # which is executed last. 22:04:50 > assert not self._finalizers 22:04:50 ^^^^^^^^^^^^^^^^^^^^ 22:04:50 E AssertionError 22:04:50 22:04:50 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 22:04:50 =========================== short test summary info ============================ 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_01_connect_xpdrA 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_02_connect_xpdrC 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_03_connect_rdmA 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_04_connect_rdmC 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_05_connect_xpdrA_N1_to_roadmA_PP1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_06_connect_roadmA_PP1_to_xpdrA_N1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_07_connect_xpdrC_N1_to_roadmC_PP1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_08_connect_roadmC_PP1_to_xpdrC_N1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_09_add_omsAttributes_ROADMA_ROADMC 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_10_add_omsAttributes_ROADMC_ROADMA 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_11_create_eth_service1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_12_get_eth_service1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_13_change_status_line_port_xpdra 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_14_check_update_portmapping 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_15_check_update_openroadm_topo 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_16_check_update_service1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_17_restore_status_line_port_xpdra 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_18_check_update_portmapping_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_19_check_update_openroadm_topo_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_20_check_update_service1_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_21_change_status_port_roadma_srg 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_22_check_update_portmapping 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_23_check_update_openroadm_topo 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_24_restore_status_port_roadma_srg 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_25_check_update_portmapping_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_26_check_update_openroadm_topo_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_27_check_update_service1_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_28_change_status_line_port_roadma_deg 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_29_check_update_portmapping 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_30_check_update_openroadm_topo 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_31_restore_status_line_port_roadma_srg 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_32_check_update_portmapping_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_33_check_update_openroadm_topo_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_34_check_update_service1_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_35_change_status_line_port_xpdrc 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_36_check_update_portmapping 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_37_check_update_openroadm_topo 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_38_restore_status_line_port_xpdrc 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_39_check_update_portmapping_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_40_check_update_openroadm_topo_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_41_check_update_service1_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_42_change_status_port_roadma_srg 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_43_check_update_portmapping 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_44_check_update_openroadm_topo 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_45_check_update_service1_ok 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_46_delete_eth_service1 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_47_disconnect_xponders_from_roadm 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_48_disconnect_XPDRA 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_49_disconnect_XPDRC 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_50_disconnect_ROADMA 22:04:50 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_51_disconnect_ROADMC 22:04:50 51 errors in 109.02s (0:01:49) 22:04:50 tests71: FAIL ✖ in 1 minute 49.87 seconds 22:04:50 tests_hybrid: exit 1 (109.29 seconds) /w/workspace/transportpce-tox-verify-transportpce-master/tests> ./launch_tests.sh hybrid pid=13965 22:04:50 buildcontroller: FAIL code 1 (9.64=setup[8.98]+cmd[0.65] seconds) 22:04:50 sims: OK (9.70=setup[6.88]+cmd[2.81] seconds) 22:04:50 testsPCE: FAIL code 1 (171.32=setup[47.20]+cmd[124.12] seconds) 22:04:50 build_karaf_tests221: FAIL code 127 (6.94=setup[6.94]+cmd[0.00] seconds) 22:04:50 tests_tapi: FAIL code 1 (116.69=setup[7.09]+cmd[109.60] seconds) 22:04:50 tests221: FAIL code 1 (114.77=setup[7.84]+cmd[106.93] seconds) 22:04:50 build_karaf_tests71: FAIL code 127 (6.50=setup[6.50]+cmd[0.00] seconds) 22:04:50 tests71: FAIL code 1 (109.87=setup[7.24]+cmd[102.64] seconds) 22:04:50 build_karaf_tests200: FAIL code 127 (6.48=setup[6.48]+cmd[0.00] seconds) 22:04:50 tests200: FAIL code 1 (110.01=setup[7.78]+cmd[102.23] seconds) 22:04:50 tests_hybrid: FAIL code 1 (115.80=setup[6.50]+cmd[109.29] seconds) 22:04:50 buildlighty: FAIL code 9 (6.51=setup[6.51]+cmd[0.01] seconds) 22:04:50 docs: OK (17.80=setup[14.81]+cmd[2.99] seconds) 22:04:50 docs-linkcheck: OK (20.09=setup[15.09]+cmd[5.00] seconds) 22:04:50 checkbashisms: OK (3.20=setup[1.95]+cmd[0.01,0.04,1.20] seconds) 22:04:50 pre-commit: OK (57.04=setup[3.22]+cmd[0.00,0.00,45.31,8.51] seconds) 22:04:50 pylint: FAIL code 1 (22.68=setup[4.75]+cmd[17.93] seconds) 22:04:50 evaluation failed :( (550.94 seconds) 22:04:50 + tox_status=1 22:04:50 + echo '---> Completed tox runs' 22:04:50 ---> Completed tox runs 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/build_karaf_tests200/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=build_karaf_tests200 22:04:50 + cp -r .tox/build_karaf_tests200/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests200 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/build_karaf_tests221/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=build_karaf_tests221 22:04:50 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests221 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/build_karaf_tests71/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=build_karaf_tests71 22:04:50 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/build_karaf_tests71 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/buildcontroller/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=buildcontroller 22:04:50 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildcontroller 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/buildlighty/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=buildlighty 22:04:50 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/buildlighty 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/checkbashisms/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=checkbashisms 22:04:50 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/checkbashisms 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/docs-linkcheck/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=docs-linkcheck 22:04:50 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs-linkcheck 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/docs/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=docs 22:04:50 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/docs 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/pre-commit/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=pre-commit 22:04:50 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pre-commit 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/pylint/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=pylint 22:04:50 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/pylint 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/sims/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=sims 22:04:50 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/sims 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/tests200/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=tests200 22:04:50 + cp -r .tox/tests200/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests200 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/tests221/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=tests221 22:04:50 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests221 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/tests71/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=tests71 22:04:50 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests71 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/testsPCE/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=testsPCE 22:04:50 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/testsPCE 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/tests_hybrid/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=tests_hybrid 22:04:50 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_hybrid 22:04:50 + for i in .tox/*/log 22:04:50 ++ echo .tox/tests_tapi/log 22:04:50 ++ awk -F/ '{print $2}' 22:04:50 + tox_env=tests_tapi 22:04:50 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-transportpce-master/archives/tox/tests_tapi 22:04:50 + DOC_DIR=docs/_build/html 22:04:50 + [[ -d docs/_build/html ]] 22:04:50 + echo '---> Archiving generated docs' 22:04:50 ---> Archiving generated docs 22:04:50 + mv docs/_build/html /w/workspace/transportpce-tox-verify-transportpce-master/archives/docs 22:04:50 + echo '---> tox-run.sh ends' 22:04:50 ---> tox-run.sh ends 22:04:50 + test 1 -eq 0 22:04:50 + exit 1 22:04:50 ++ '[' 1 = 1 ']' 22:04:50 ++ '[' -x /usr/bin/clear_console ']' 22:04:50 ++ /usr/bin/clear_console -q 22:04:50 Build step 'Execute shell' marked build as failure 22:04:50 $ ssh-agent -k 22:04:50 unset SSH_AUTH_SOCK; 22:04:50 unset SSH_AGENT_PID; 22:04:50 echo Agent pid 10993 killed; 22:04:50 [ssh-agent] Stopped. 22:04:50 [PostBuildScript] - [INFO] Executing post build scripts. 22:04:50 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins9837726175010688462.sh 22:04:50 ---> sysstat.sh 22:04:50 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins2361976029345359540.sh 22:04:50 ---> package-listing.sh 22:04:50 + '[' -f /etc/os-release ']' 22:04:50 + . /etc/os-release 22:04:50 ++ PRETTY_NAME='Ubuntu 22.04.5 LTS' 22:04:50 ++ NAME=Ubuntu 22:04:50 ++ VERSION_ID=22.04 22:04:50 ++ VERSION='22.04.5 LTS (Jammy Jellyfish)' 22:04:50 ++ VERSION_CODENAME=jammy 22:04:50 ++ ID=ubuntu 22:04:50 ++ ID_LIKE=debian 22:04:50 ++ HOME_URL=https://www.ubuntu.com/ 22:04:50 ++ SUPPORT_URL=https://help.ubuntu.com/ 22:04:50 ++ BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/ 22:04:50 ++ PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy 22:04:50 ++ UBUNTU_CODENAME=jammy 22:04:50 + case " ${ID:-} ${ID_LIKE:-} " in 22:04:50 + OS_FAMILY=debian 22:04:50 + workspace=/w/workspace/transportpce-tox-verify-transportpce-master 22:04:50 + START_PACKAGES=/tmp/packages_start.txt 22:04:50 + END_PACKAGES=/tmp/packages_end.txt 22:04:50 + DIFF_PACKAGES=/tmp/packages_diff.txt 22:04:50 + PACKAGES=/tmp/packages_start.txt 22:04:50 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 22:04:50 + PACKAGES=/tmp/packages_end.txt 22:04:50 + case "${OS_FAMILY}" in 22:04:50 + dpkg -l 22:04:50 + grep '^ii' 22:04:50 + '[' -f /tmp/packages_start.txt ']' 22:04:50 + '[' -f /tmp/packages_end.txt ']' 22:04:50 + diff /tmp/packages_start.txt /tmp/packages_end.txt 22:04:50 + '[' /w/workspace/transportpce-tox-verify-transportpce-master ']' 22:04:50 + mkdir -p /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 22:04:50 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-transportpce-master/archives/ 22:04:50 + exit 0 22:04:51 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins8125023412147653235.sh 22:04:51 ---> capture-instance-metadata.sh 22:04:51 Setup pyenv: 22:04:51 system 22:04:51 3.8.20 22:04:51 3.9.20 22:04:51 3.10.15 22:04:51 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:04:51 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-mp8Y from file:/tmp/.os_lf_venv 22:04:51 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:04:53 lf-activate-venv(): INFO: Installing additional packages: lftools 22:05:09 lf-activate-venv(): INFO: Adding /tmp/venv-mp8Y/bin to PATH 22:05:09 INFO: Running in OpenStack, capturing instance metadata 22:05:09 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins18099689937350652087.sh 22:05:09 provisioning config files... 22:05:10 Could not find credentials [logs] for transportpce-tox-verify-transportpce-master #6140 22:05:10 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-transportpce-master@tmp/config12115792851781047283tmp 22:05:10 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 22:05:10 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 22:05:10 provisioning config files... 22:05:10 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 22:05:10 [EnvInject] - Injecting environment variables from a build step. 22:05:10 [EnvInject] - Injecting as environment variables the properties content 22:05:10 SERVER_ID=logs 22:05:10 22:05:10 [EnvInject] - Variables injected successfully. 22:05:10 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins2719911490100480049.sh 22:05:10 ---> create-netrc.sh 22:05:10 WARN: Log server credential not found. 22:05:10 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins14768726531426332877.sh 22:05:10 ---> python-tools-install.sh 22:05:10 Setup pyenv: 22:05:10 system 22:05:10 3.8.20 22:05:10 3.9.20 22:05:10 3.10.15 22:05:10 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:05:11 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-mp8Y from file:/tmp/.os_lf_venv 22:05:11 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:05:12 lf-activate-venv(): INFO: Installing additional packages: lftools 22:05:22 lf-activate-venv(): INFO: Adding /tmp/venv-mp8Y/bin to PATH 22:05:22 [transportpce-tox-verify-transportpce-master] $ /bin/sh /tmp/jenkins9655725944899065657.sh 22:05:22 ---> uv-install.sh 22:05:22 uv 0.12.23 is already installed 22:05:22 uvx 0.12.23 (x86_64-unknown-linux-gnu) 22:05:22 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins14545764754057799808.sh 22:05:22 ---> sudo-logs.sh 22:05:22 Archiving 'sudo' log.. 22:05:22 [transportpce-tox-verify-transportpce-master] $ /bin/bash /tmp/jenkins13759343395270297966.sh 22:05:22 ---> job-cost.sh 22:05:22 INFO: Activating Python virtual environment... 22:05:22 Setup pyenv: 22:05:22 system 22:05:22 3.8.20 22:05:22 3.9.20 22:05:22 3.10.15 22:05:22 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:05:22 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-mp8Y from file:/tmp/.os_lf_venv 22:05:22 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:05:24 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 22:05:32 lf-activate-venv(): INFO: Adding /tmp/venv-mp8Y/bin to PATH 22:05:32 INFO: No stack-cost file found 22:05:32 INFO: Instance uptime: 109268s 22:05:32 INFO: Fetching instance metadata (attempt 1 of 3)... 22:05:32 DEBUG: URL: http://169.254.169.254/latest/meta-data/instance-type 22:05:32 INFO: Successfully fetched instance metadata 22:05:32 INFO: Instance type: v3-standard-4 22:05:32 INFO: Retrieving pricing info for: v3-standard-4 22:05:32 INFO: Fetching Vexxhost pricing API (attempt 1 of 3)... 22:05:32 DEBUG: URL: https://pricing.vexxhost.net/v1/pricing/v3-standard-4/cost?seconds=109268 22:05:32 INFO: Successfully fetched Vexxhost pricing API 22:05:33 INFO: Retrieved cost: 3.41 22:05:33 INFO: Retrieved resource: v3-standard-4 22:05:33 INFO: Creating archive directory: /w/workspace/transportpce-tox-verify-transportpce-master/archives/cost 22:05:33 INFO: Archiving costs to: /w/workspace/transportpce-tox-verify-transportpce-master/archives/cost.csv 22:05:33 INFO: Successfully archived job cost data 22:05:33 DEBUG: Cost data: transportpce-tox-verify-transportpce-master,6140,2026-10-07 22:05:33,v3-standard-4,109268,3.41,0.00,FAILURE 22:05:33 [transportpce-tox-verify-transportpce-master] $ /bin/bash -l /tmp/jenkins5699910824228558535.sh 22:05:33 ---> logs-deploy.sh 22:05:33 Setup pyenv: 22:05:33 system 22:05:33 3.8.20 22:05:33 3.9.20 22:05:33 3.10.15 22:05:33 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-transportpce-master/.python-version) 22:05:33 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-mp8Y from file:/tmp/.os_lf_venv 22:05:33 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 22:05:35 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 22:05:44 lf-activate-venv(): INFO: Adding /tmp/venv-mp8Y/bin to PATH 22:05:44 WARNING: Nexus logging server not set 22:05:44 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-transportpce-master/6140/ 22:05:44 INFO: archiving logs to S3 22:05:45 ---> uname -a: 22:05:45 Linux prd-ubuntu2204-docker-4c-16g-62480 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:05:45 22:05:45 22:05:45 ---> lscpu: 22:05:45 Architecture: x86_64 22:05:45 CPU op-mode(s): 32-bit, 64-bit 22:05:45 Address sizes: 40 bits physical, 48 bits virtual 22:05:45 Byte Order: Little Endian 22:05:45 CPU(s): 4 22:05:45 On-line CPU(s) list: 0-3 22:05:45 Vendor ID: AuthenticAMD 22:05:45 Model name: AMD EPYC-Rome Processor 22:05:45 CPU family: 23 22:05:45 Model: 49 22:05:45 Thread(s) per core: 1 22:05:45 Core(s) per socket: 1 22:05:45 Socket(s): 4 22:05:45 Stepping: 0 22:05:45 BogoMIPS: 5600.00 22:05:45 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:05:45 Virtualization: AMD-V 22:05:45 Hypervisor vendor: KVM 22:05:45 Virtualization type: full 22:05:45 L1d cache: 128 KiB (4 instances) 22:05:45 L1i cache: 128 KiB (4 instances) 22:05:45 L2 cache: 2 MiB (4 instances) 22:05:45 L3 cache: 64 MiB (4 instances) 22:05:45 NUMA node(s): 1 22:05:45 NUMA node0 CPU(s): 0-3 22:05:45 Vulnerability Gather data sampling: Not affected 22:05:45 Vulnerability Indirect target selection: Not affected 22:05:45 Vulnerability Itlb multihit: Not affected 22:05:45 Vulnerability L1tf: Not affected 22:05:45 Vulnerability Mds: Not affected 22:05:45 Vulnerability Meltdown: Not affected 22:05:45 Vulnerability Mmio stale data: Not affected 22:05:45 Vulnerability Reg file data sampling: Not affected 22:05:45 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 22:05:45 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 22:05:45 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 22:05:45 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 22:05:45 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 22:05:45 Vulnerability Srbds: Not affected 22:05:45 Vulnerability Tsa: Not affected 22:05:45 Vulnerability Tsx async abort: Not affected 22:05:45 Vulnerability Vmscape: Not affected 22:05:45 22:05:45 22:05:45 ---> nproc: 22:05:45 4 22:05:45 22:05:45 22:05:45 ---> df -h: 22:05:45 Filesystem Size Used Avail Use% Mounted on 22:05:45 tmpfs 1.6G 1.1M 1.6G 1% /run 22:05:45 /dev/vda1 78G 12G 67G 15% / 22:05:45 tmpfs 7.9G 0 7.9G 0% /dev/shm 22:05:45 tmpfs 5.0M 0 5.0M 0% /run/lock 22:05:45 /dev/vda15 105M 6.1M 99M 6% /boot/efi 22:05:45 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 22:05:45 22:05:45 22:05:45 ---> free -m: 22:05:45 total used free shared buff/cache available 22:05:45 Mem: 15989 746 9278 4 5964 14899 22:05:45 Swap: 1023 0 1023 22:05:45 22:05:45 22:05:45 ---> ip addr: 22:05:45 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 22:05:45 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 22:05:45 inet 127.0.0.1/8 scope host lo 22:05:45 valid_lft forever preferred_lft forever 22:05:45 inet6 ::1/128 scope host 22:05:45 valid_lft forever preferred_lft forever 22:05:45 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 22:05:45 link/ether fa:16:3e:88:c3:4d brd ff:ff:ff:ff:ff:ff 22:05:45 altname enp0s3 22:05:45 inet 10.30.170.153/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 22:05:45 valid_lft 52728sec preferred_lft 52728sec 22:05:45 inet6 fe80::f816:3eff:fe88:c34d/64 scope link 22:05:45 valid_lft forever preferred_lft forever 22:05:45 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 22:05:45 link/ether 0a:bd:55:da:5c:29 brd ff:ff:ff:ff:ff:ff 22:05:45 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 22:05:45 valid_lft forever preferred_lft forever 22:05:45 inet6 fe80::8bd:55ff:feda:5c29/64 scope link 22:05:45 valid_lft forever preferred_lft forever 22:05:45 22:05:45 22:05:45 ---> sar -b -r -n DEV: 22:05:45 Linux 5.15.0-198-generic (prd-ubuntu2204-docker-4c-16g-62480) 10/07/26 _x86_64_ (4 CPU) 22:05:45 22:05:45 00:00:09 tps rtps wtps dtps bread/s bwrtn/s bdscd/s 22:05:45 00:10:00 1.81 0.18 1.61 0.01 4.53 23.30 218.67 22:05:45 00:20:28 1.69 0.00 1.69 0.00 0.00 17.51 0.00 22:05:45 00:30:09 1.64 0.00 1.64 0.00 0.00 16.95 0.00 22:05:45 00:40:00 1.58 0.00 1.58 0.00 0.00 16.39 0.00 22:05:45 00:50:28 1.70 0.00 1.70 0.00 0.00 17.34 0.00 22:05:45 01:00:28 1.66 0.00 1.66 0.00 0.00 16.73 0.00 22:05:45 01:10:00 1.63 0.00 1.63 0.00 0.00 16.72 0.00 22:05:45 01:20:09 1.69 0.00 1.69 0.00 0.00 17.58 0.00 22:05:45 01:30:09 1.88 0.00 1.82 0.05 0.00 28.54 237.10 22:05:45 01:40:01 1.57 0.00 1.57 0.00 0.00 16.12 0.01 22:05:45 01:50:09 1.71 0.00 1.71 0.00 0.00 17.16 0.00 22:05:45 02:00:09 1.57 0.00 1.57 0.00 0.00 16.13 0.00 22:05:45 02:10:01 1.57 0.00 1.57 0.00 0.00 15.96 0.00 22:05:45 02:20:09 1.71 0.00 1.71 0.00 0.00 17.31 0.00 22:05:45 02:30:28 1.63 0.00 1.63 0.00 0.00 16.52 0.00 22:05:45 02:40:01 1.63 0.00 1.63 0.00 0.00 16.72 0.00 22:05:45 02:50:09 1.71 0.00 1.71 0.00 0.00 17.28 0.00 22:05:45 03:00:09 1.70 0.00 1.69 0.00 0.00 17.47 0.05 22:05:45 03:10:01 1.71 0.00 1.71 0.00 0.00 18.01 3.03 22:05:45 03:20:28 1.79 0.00 1.79 0.00 0.01 18.01 0.00 22:05:45 03:30:28 1.72 0.00 1.72 0.00 0.00 17.52 0.00 22:05:45 03:40:01 1.67 0.00 1.67 0.00 0.00 16.97 0.00 22:05:45 03:50:09 1.75 0.00 1.75 0.00 0.00 17.73 0.00 22:05:45 04:00:28 1.67 0.00 1.67 0.00 0.00 17.00 0.00 22:05:45 04:10:01 1.71 0.00 1.71 0.00 0.00 17.44 0.00 22:05:45 04:20:28 1.76 0.00 1.76 0.00 0.00 17.78 0.00 22:05:45 04:30:09 1.80 0.00 1.80 0.00 0.00 18.01 0.00 22:05:45 04:40:01 1.69 0.00 1.69 0.00 0.00 17.09 0.00 22:05:45 04:50:03 1.63 0.00 1.63 0.00 0.00 16.60 0.00 22:05:45 05:00:28 1.53 0.00 1.53 0.00 0.00 15.48 0.00 22:05:45 05:10:01 1.73 0.00 1.73 0.00 0.00 17.45 0.00 22:05:45 05:20:02 1.76 0.00 1.76 0.00 0.00 17.68 0.00 22:05:45 05:30:28 1.75 0.00 1.75 0.00 0.00 17.80 0.00 22:05:45 05:40:00 1.72 0.00 1.72 0.00 0.00 17.30 0.00 22:05:45 05:50:28 1.57 0.00 1.57 0.00 0.00 15.81 0.00 22:05:45 06:00:09 1.63 0.00 1.63 0.00 0.00 16.61 0.00 22:05:45 06:10:01 1.39 0.00 1.39 0.00 0.00 14.05 0.00 22:05:45 06:20:09 1.56 0.00 1.56 0.00 0.00 16.13 0.00 22:05:45 06:30:09 1.52 0.01 1.50 0.00 0.09 15.35 0.00 22:05:45 06:40:01 1.52 0.00 1.52 0.00 0.00 15.36 0.00 22:05:45 06:50:09 1.57 0.00 1.57 0.00 0.00 16.06 0.00 22:05:45 07:00:09 1.54 0.00 1.54 0.00 0.00 15.72 0.00 22:05:45 07:10:01 1.45 0.00 1.45 0.00 0.00 14.77 0.00 22:05:45 07:20:28 1.60 0.00 1.60 0.00 0.00 16.31 0.00 22:05:45 07:30:28 1.52 0.00 1.52 0.00 0.00 15.39 0.00 22:05:45 07:40:01 1.51 0.00 1.51 0.00 0.00 15.37 0.00 22:05:45 07:50:09 1.49 0.00 1.49 0.00 0.00 15.31 0.00 22:05:45 08:00:09 1.41 0.00 1.41 0.00 0.00 14.38 0.00 22:05:45 08:10:01 1.51 0.00 1.51 0.00 0.00 15.51 0.00 22:05:45 08:20:28 1.85 0.00 1.85 0.00 0.00 18.85 0.00 22:05:45 08:30:09 1.78 0.00 1.78 0.00 0.00 18.02 0.00 22:05:45 08:40:01 1.70 0.00 1.70 0.00 0.00 17.34 0.00 22:05:45 08:50:09 1.78 0.00 1.78 0.00 0.00 18.03 0.00 22:05:45 09:00:09 1.75 0.00 1.75 0.00 0.00 17.78 0.00 22:05:45 09:10:01 1.75 0.00 1.75 0.00 0.00 17.64 0.00 22:05:45 09:20:28 1.86 0.00 1.86 0.00 0.00 18.61 0.00 22:05:45 09:30:28 1.80 0.00 1.80 0.00 0.00 18.28 0.00 22:05:45 09:40:00 1.75 0.00 1.75 0.00 0.00 17.71 0.00 22:05:45 09:50:28 1.80 0.00 1.80 0.00 0.00 18.01 0.00 22:05:45 10:00:27 1.91 0.00 1.91 0.00 0.00 19.65 1.28 22:05:45 10:10:00 1.79 0.00 1.79 0.00 0.00 17.82 0.00 22:05:45 10:20:28 1.88 0.00 1.88 0.00 0.00 18.82 0.00 22:05:45 10:30:28 1.84 0.00 1.84 0.00 0.00 18.53 0.00 22:05:45 10:40:01 1.78 0.00 1.78 0.00 0.00 18.03 0.00 22:05:45 10:50:24 1.83 0.00 1.83 0.00 0.00 18.24 0.00 22:05:45 11:00:28 1.76 0.00 1.76 0.00 0.00 17.90 0.00 22:05:45 11:10:01 1.81 0.00 1.81 0.00 0.00 17.95 0.00 22:05:45 11:20:28 1.87 0.00 1.87 0.00 0.00 18.84 0.00 22:05:45 11:30:22 1.68 0.00 1.68 0.00 0.00 17.10 0.00 22:05:45 11:40:01 1.73 0.00 1.73 0.00 0.00 17.49 0.00 22:05:45 11:50:27 1.77 0.00 1.77 0.00 0.00 18.02 0.00 22:05:45 12:00:28 1.85 0.00 1.85 0.00 0.00 18.49 0.00 22:05:45 12:10:01 1.72 0.00 1.72 0.00 0.00 17.51 0.00 22:05:45 12:20:28 1.77 0.00 1.77 0.00 0.00 17.98 0.00 22:05:45 12:30:25 1.75 0.00 1.75 0.00 0.00 17.76 0.00 22:05:45 12:40:01 1.76 0.00 1.76 0.00 0.00 17.92 0.00 22:05:45 12:50:28 1.86 0.00 1.86 0.00 0.00 18.65 0.00 22:05:45 13:00:24 1.83 0.00 1.83 0.00 0.00 18.42 0.00 22:05:45 13:10:01 1.73 0.00 1.73 0.00 0.00 17.82 0.00 22:05:45 13:20:28 1.79 0.00 1.79 0.00 0.00 18.29 0.00 22:05:45 13:30:28 1.79 0.00 1.79 0.00 0.37 18.27 0.00 22:05:45 13:40:01 1.80 0.00 1.80 0.00 0.00 18.34 0.00 22:05:45 13:50:28 1.78 0.00 1.78 0.00 0.00 17.94 0.00 22:05:45 14:00:28 1.75 0.00 1.75 0.00 0.00 17.89 0.00 22:05:45 14:10:01 1.88 0.00 1.87 0.01 0.00 19.11 0.08 22:05:45 14:20:28 1.82 0.00 1.82 0.00 0.00 18.44 0.00 22:05:45 14:30:28 1.76 0.00 1.76 0.00 0.00 17.85 0.00 22:05:45 14:40:01 1.73 0.00 1.73 0.00 0.00 17.61 0.00 22:05:45 14:50:28 1.81 0.00 1.81 0.00 0.00 18.28 0.00 22:05:45 15:00:28 1.78 0.00 1.78 0.00 0.00 18.11 0.00 22:05:45 15:10:01 1.70 0.00 1.70 0.00 0.00 17.30 0.00 22:05:45 15:20:28 1.82 0.00 1.82 0.00 0.00 18.38 0.00 22:05:45 15:30:28 1.73 0.00 1.73 0.00 0.00 17.41 0.00 22:05:45 15:40:01 1.77 0.00 1.77 0.00 0.00 18.13 0.00 22:05:45 15:50:28 2.02 0.00 2.02 0.00 0.00 22.54 17.56 22:05:45 16:00:28 1.88 0.00 1.88 0.00 0.00 20.01 7.25 22:05:45 16:10:01 1.77 0.00 1.77 0.00 0.00 17.83 0.00 22:05:45 16:20:28 1.82 0.00 1.82 0.00 0.00 18.07 0.00 22:05:45 16:30:28 1.71 0.00 1.71 0.00 0.00 17.45 0.00 22:05:45 16:40:01 1.76 0.00 1.76 0.00 0.00 17.71 0.00 22:05:45 16:50:28 1.87 0.00 1.87 0.00 0.00 19.07 0.14 22:05:45 17:00:28 1.90 0.00 1.90 0.00 0.00 18.99 0.00 22:05:45 17:10:01 1.77 0.00 1.77 0.00 0.00 17.95 0.00 22:05:45 17:20:28 1.81 0.00 1.81 0.00 0.00 18.39 0.00 22:05:45 17:30:28 1.81 0.00 1.81 0.00 0.00 18.25 0.00 22:05:45 17:40:01 1.79 0.00 1.79 0.00 0.00 18.15 0.00 22:05:45 17:50:28 1.81 0.00 1.81 0.00 0.00 18.22 0.00 22:05:45 18:00:28 1.78 0.00 1.78 0.00 0.35 18.11 0.00 22:05:45 18:10:01 3.73 0.17 3.34 0.22 214.18 306.92 2948.28 22:05:45 18:20:28 1.79 0.00 1.79 0.00 0.00 18.39 0.00 22:05:45 18:30:09 1.86 0.00 1.86 0.00 0.00 19.13 0.00 22:05:45 18:40:00 1.78 0.00 1.78 0.00 0.00 17.93 0.00 22:05:45 18:50:28 1.91 0.00 1.91 0.00 0.00 19.08 0.00 22:05:45 19:00:28 1.79 0.00 1.79 0.00 0.00 17.83 0.00 22:05:45 19:10:00 1.69 0.00 1.69 0.00 0.00 17.24 0.00 22:05:45 19:20:28 1.90 0.00 1.90 0.00 0.00 18.80 0.00 22:05:45 19:30:28 1.79 0.00 1.79 0.00 0.00 17.87 0.00 22:05:45 19:40:01 1.78 0.00 1.78 0.00 0.00 18.06 0.00 22:05:45 19:50:28 1.78 0.00 1.78 0.00 0.00 17.92 0.00 22:05:45 20:00:28 1.75 0.00 1.75 0.00 0.00 17.91 0.00 22:05:45 20:10:01 1.76 0.00 1.76 0.00 0.00 17.96 0.00 22:05:45 20:20:28 1.80 0.00 1.80 0.00 0.00 18.14 0.00 22:05:45 20:30:28 1.77 0.00 1.77 0.00 0.00 18.04 0.00 22:05:45 20:40:01 1.74 0.00 1.74 0.00 0.00 17.55 0.00 22:05:45 20:50:28 1.77 0.00 1.77 0.00 0.00 17.94 0.00 22:05:45 21:00:28 1.74 0.00 1.74 0.00 0.00 17.53 0.00 22:05:45 21:10:01 1.71 0.00 1.71 0.00 0.00 17.47 0.00 22:05:45 21:20:28 1.78 0.00 1.78 0.00 0.00 18.11 0.00 22:05:45 21:30:28 1.73 0.00 1.73 0.00 0.00 17.68 0.00 22:05:45 21:40:01 1.72 0.00 1.72 0.00 0.00 17.62 0.00 22:05:45 21:50:28 1.77 0.00 1.77 0.00 0.00 17.85 0.00 22:05:45 22:00:28 84.64 6.62 74.68 3.35 729.65 10353.39 2859.17 22:05:45 Average: 2.38 0.05 2.30 0.03 7.12 98.10 46.66 22:05:45 22:05:45 00:00:09 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty 22:05:45 00:10:00 13294532 15472096 530392 3.24 88604 2305288 1159388 6.65 303080 2489944 8 22:05:45 00:20:28 13293680 15471836 530668 3.24 88976 2305496 1159452 6.66 303452 2490444 4 22:05:45 00:30:09 13293812 15472428 530116 3.24 89300 2305632 1159468 6.66 303772 2490428 40 22:05:45 00:40:00 13293376 15472328 530192 3.24 89612 2305640 1159452 6.66 304092 2490444 4 22:05:45 00:50:28 13293392 15472728 529752 3.24 90000 2305652 1159468 6.66 304460 2491136 8 22:05:45 01:00:28 13293060 15472872 529568 3.23 90320 2305784 1159500 6.66 304800 2492316 8 22:05:45 01:10:00 13291940 15472180 530264 3.24 90596 2305924 1159644 6.66 305072 2495328 8 22:05:45 01:20:09 13297800 15478552 523928 3.20 90968 2306060 1159952 6.66 305436 2505096 40 22:05:45 01:30:09 13295728 15477316 525060 3.21 91480 2306324 1159952 6.66 305888 2505492 168 22:05:45 01:40:01 13295140 15477076 525300 3.21 91832 2306332 1159996 6.66 306224 2505724 8 22:05:45 01:50:09 13293640 15476092 526344 3.21 92200 2306460 1159952 6.66 306604 2505472 4 22:05:45 02:00:09 13291648 15474460 527940 3.22 92524 2306480 1159952 6.66 306936 2505704 28 22:05:45 02:10:01 13288976 15472236 530040 3.24 92844 2306612 1159936 6.66 307256 2505964 204 22:05:45 02:20:09 13288268 15471944 530336 3.24 93244 2306628 1159952 6.66 307648 2505832 36 22:05:45 02:30:28 13287384 15471436 530936 3.24 93592 2306636 1159952 6.66 308004 2505860 12 22:05:45 02:40:01 13286088 15470624 531724 3.25 93944 2306772 1159936 6.66 308352 2506116 204 22:05:45 02:50:09 13285252 15470084 532200 3.25 94232 2306788 1160016 6.66 308644 2506108 192 22:05:45 03:00:09 13269296 15454452 547756 3.35 94548 2306796 1160016 6.66 309396 2505644 36 22:05:45 03:10:01 13268996 15454644 547608 3.34 94892 2306932 1160000 6.66 309740 2505960 204 22:05:45 03:20:28 13269668 15455620 546688 3.34 95180 2306948 1160016 6.66 310032 2506004 188 22:05:45 03:30:28 13269784 15456040 546212 3.34 95468 2306956 1160016 6.66 310316 2505984 16 22:05:45 03:40:01 13269964 15456664 545656 3.33 95812 2307088 1160000 6.66 310624 2506056 204 22:05:45 03:50:09 13270364 15457464 544828 3.33 96160 2307100 1160016 6.66 311004 2506128 32 22:05:45 04:00:28 13270560 15458052 544184 3.32 96544 2307112 1160016 6.66 311368 2506140 16 22:05:45 04:10:01 13270084 15457980 544220 3.32 96912 2307120 1160000 6.66 311752 2506284 204 22:05:45 04:20:28 13270240 15458624 543560 3.32 97276 2307260 1160016 6.66 312104 2506304 36 22:05:45 04:30:09 13269792 15458492 543684 3.32 97584 2307260 1160016 6.66 312424 2506328 32 22:05:45 04:40:01 13269288 15458376 543744 3.32 97948 2307268 1160000 6.66 312788 2506472 200 22:05:45 04:50:03 13269064 15458596 543428 3.32 98240 2307420 1160000 6.66 313096 2506592 300 22:05:45 05:00:28 13270408 15460192 541920 3.31 98480 2307424 1160016 6.66 313324 2506524 12 22:05:45 05:10:01 13269596 15459724 542312 3.31 98824 2307436 1160000 6.66 313640 2506732 4 22:05:45 05:20:02 13269092 15459724 542340 3.31 99172 2307568 1160000 6.66 314020 2506704 8 22:05:45 05:30:28 13268844 15459820 542300 3.31 99496 2307584 1160016 6.66 314344 2506796 192 22:05:45 05:40:00 13268340 15459604 542460 3.31 99772 2307588 1160000 6.66 314608 2506724 8 22:05:45 05:50:28 13268088 15459548 542520 3.31 99948 2307600 1160032 6.66 314784 2506844 8 22:05:45 06:00:09 13268088 15459912 542164 3.31 100168 2307736 1168208 6.71 315008 2506972 40 22:05:45 06:10:01 13268088 15460064 542036 3.31 100304 2307744 1168192 6.71 315152 2507116 200 22:05:45 06:20:09 13268456 15460644 541404 3.31 100520 2307756 1168208 6.71 315368 2507044 184 22:05:45 06:30:09 13268816 15461328 540744 3.30 100676 2307916 1168208 6.71 315548 2507140 36 22:05:45 06:40:01 13269968 15462680 539380 3.29 100876 2307928 1168192 6.71 315748 2507196 304 22:05:45 06:50:09 13269380 15462248 539836 3.30 101016 2307936 1168208 6.71 315884 2507184 28 22:05:45 07:00:09 13269324 15462480 539496 3.30 101156 2308076 1168208 6.71 316024 2507320 32 22:05:45 07:10:01 13269380 15462680 539320 3.29 101276 2308084 1168256 6.71 316144 2507460 200 22:05:45 07:20:28 13269720 15463308 538680 3.29 101424 2308220 1168272 6.71 316296 2507740 4 22:05:45 07:30:28 13269640 15463356 538696 3.29 101540 2308232 1176464 6.75 316412 2507832 8 22:05:45 07:40:01 13269640 15463500 538520 3.29 101688 2308236 1176448 6.75 316548 2508704 200 22:05:45 07:50:09 13268888 15462860 539140 3.29 101788 2308252 1176464 6.75 316660 2508964 228 22:05:45 08:00:09 13266716 15460912 541060 3.30 101880 2308384 1176560 6.75 316752 2512272 208 22:05:45 08:10:01 13265204 15459548 542460 3.31 102012 2308396 1176512 6.75 316884 2512084 4 22:05:45 08:20:28 13265204 15459764 542200 3.31 102216 2308408 1176528 6.75 317088 2512176 32 22:05:45 08:30:09 13264700 15459640 542312 3.31 102456 2308540 1176528 6.75 317328 2512316 32 22:05:45 08:40:01 13263944 15459112 542844 3.32 102668 2308556 1176512 6.75 317540 2512664 204 22:05:45 08:50:09 13263696 15459112 542868 3.32 102900 2308560 1176528 6.75 317764 2512356 32 22:05:45 09:00:09 13263696 15459464 542468 3.31 103092 2308704 1176544 6.75 317968 2512652 200 22:05:45 09:10:01 13262940 15459072 542796 3.32 103344 2308840 1176512 6.75 318192 2512776 204 22:05:45 09:20:28 13261964 15458312 543584 3.32 103524 2308844 1176528 6.75 318396 2512668 24 22:05:45 09:30:28 13261460 15458040 543868 3.32 103780 2308856 1176528 6.75 318628 2512680 16 22:05:45 09:40:00 13261208 15458184 543688 3.32 104024 2308996 1176512 6.75 318880 2512756 8 22:05:45 09:50:28 13260956 15458208 543712 3.32 104272 2309004 1176528 6.75 319144 2513036 8 22:05:45 10:00:27 13260020 15457700 544264 3.32 104512 2309204 1176528 6.75 319372 2514860 4 22:05:45 10:10:00 13260020 15458068 543876 3.32 104724 2309340 1176512 6.75 319592 2513036 8 22:05:45 10:20:28 13258256 15456524 545352 3.33 104924 2309352 1176528 6.75 319796 2513116 4 22:05:45 10:30:28 13255988 15454600 547288 3.34 105124 2309492 1176528 6.75 320000 2513256 4 22:05:45 10:40:01 13251676 15450504 551300 3.37 105332 2309500 1176640 6.75 320200 2513956 12 22:05:45 10:50:24 13251676 15450764 551056 3.37 105584 2309508 1176656 6.75 320456 2514024 32 22:05:45 11:00:28 13251452 15450760 551052 3.37 105788 2309520 1176652 6.75 320656 2514036 8 22:05:45 11:10:01 13251452 15451048 550764 3.36 105952 2309652 1176640 6.75 320812 2514108 8 22:05:45 11:20:28 13250696 15450520 551320 3.37 106168 2309664 1176656 6.75 321024 2514228 4 22:05:45 11:30:22 13250696 15450748 551108 3.37 106360 2309680 1176656 6.75 321232 2514360 308 22:05:45 11:40:01 13250696 15451052 550784 3.36 106524 2309812 1176640 6.75 321396 2514704 20 22:05:45 11:50:27 13251544 15452108 549720 3.36 106720 2309824 1176656 6.75 321584 2515064 8 22:05:45 12:00:28 13250856 15451632 550204 3.36 106920 2309828 1176704 6.75 321788 2515148 8 22:05:45 12:10:01 13250632 15451732 550056 3.36 107096 2309968 1176688 6.75 321968 2515272 204 22:05:45 12:20:28 13250408 15451752 550016 3.36 107332 2309976 1176720 6.75 322200 2515416 8 22:05:45 12:30:25 13252784 15454376 547488 3.34 107556 2309988 1176720 6.75 322428 2515436 32 22:05:45 12:40:01 13254648 15456476 545332 3.33 107776 2310000 1176704 6.75 322648 2515384 4 22:05:45 12:50:28 13254424 15456728 545084 3.33 107996 2310260 1176720 6.75 322860 2515736 4 22:05:45 13:00:24 13253420 15456016 545804 3.33 108264 2310272 1176784 6.75 323136 2515776 32 22:05:45 13:10:01 13252664 15455548 546244 3.34 108548 2310280 1176768 6.75 323408 2515736 8 22:05:45 13:20:28 13252720 15455872 545896 3.33 108808 2310288 1176784 6.75 323660 2515752 8 22:05:45 13:30:28 13252780 15456468 545344 3.33 109080 2310540 1176784 6.75 323948 2516012 16 22:05:45 13:40:01 13252780 15456684 545072 3.33 109288 2310544 1176768 6.75 324156 2516404 200 22:05:45 13:50:28 13252780 15456896 544864 3.33 109504 2310560 1176784 6.75 324360 2516024 8 22:05:45 14:00:28 13252528 15456944 544732 3.33 109688 2310696 1176784 6.75 324520 2516168 16 22:05:45 14:10:01 13270504 15475168 526544 3.22 109888 2310704 1176768 6.75 324780 2516148 236 22:05:45 14:20:28 13269504 15474396 527348 3.22 110104 2310712 1176784 6.75 324992 2516164 8 22:05:45 14:30:28 13269000 15474104 527608 3.22 110208 2310856 1176784 6.75 325100 2516280 12 22:05:45 14:40:01 13268748 15474024 527576 3.22 110344 2310864 1176768 6.75 325224 2516312 204 22:05:45 14:50:28 13268748 15474192 527420 3.22 110480 2310872 1176784 6.75 325376 2516388 8 22:05:45 15:00:28 13268748 15474328 527348 3.22 110616 2310880 1176784 6.75 325512 2516328 4 22:05:45 15:10:01 13268244 15474092 527500 3.22 110748 2311016 1176768 6.75 325640 2517060 200 22:05:45 15:20:28 13267744 15473740 527876 3.22 110884 2311032 1176784 6.75 325768 2516300 8 22:05:45 15:30:28 13267240 15473388 528284 3.23 111004 2311036 1176784 6.75 325896 2516508 8 22:05:45 15:40:01 13267240 15473756 527944 3.22 111164 2311248 1176832 6.76 326060 2517164 204 22:05:45 15:50:28 13267524 15474292 527324 3.22 111300 2311388 1176784 6.75 326388 2517144 4 22:05:45 16:00:28 13266264 15473272 528348 3.23 111412 2311484 1176784 6.75 326524 2516748 36 22:05:45 16:10:01 13266016 15473124 528428 3.23 111504 2311496 1176768 6.75 326608 2516788 204 22:05:45 16:20:28 13265764 15473080 528532 3.23 111568 2311628 1176784 6.75 326676 2516920 36 22:05:45 16:30:28 13265260 15472692 528940 3.23 111668 2311640 1176784 6.75 326780 2516960 8 22:05:45 16:40:01 13264508 15472104 529512 3.23 111820 2311648 1176768 6.75 326932 2517152 236 22:05:45 16:50:28 13264004 15471780 529804 3.24 111932 2311720 1176784 6.75 327040 2517008 8 22:05:45 17:00:28 13263500 15471736 529792 3.24 112108 2311992 1176784 6.75 327220 2517288 8 22:05:45 17:10:01 13262244 15470568 530952 3.24 112200 2311996 1176768 6.75 327288 2517292 204 22:05:45 17:20:28 13261740 15470192 531416 3.25 112312 2312008 1176784 6.75 327424 2517508 8 22:05:45 17:30:28 13261248 15469792 531816 3.25 112392 2312016 1176784 6.75 327504 2517324 4 22:05:45 17:40:01 13261248 15469972 531592 3.25 112564 2312028 1176768 6.75 327684 2517536 356 22:05:45 17:50:28 13260996 15469876 531708 3.25 112712 2312036 1176784 6.75 327820 2517360 12 22:05:45 18:00:28 13260744 15469924 531608 3.25 112828 2312216 1176784 6.75 327940 2517532 8 22:05:45 18:10:01 13103624 15443260 556216 3.40 113612 2440744 1180864 6.78 386016 2589400 8 22:05:45 18:20:28 13103996 15444048 555496 3.39 113744 2441008 1180880 6.78 386152 2589736 36 22:05:45 18:30:09 13104488 15444844 554684 3.39 113900 2441148 1180880 6.78 386312 2589684 4 22:05:45 18:40:00 13104396 15445052 554576 3.39 114060 2441284 1180864 6.78 386472 2589824 8 22:05:45 18:50:28 13103896 15445016 554808 3.39 114224 2441576 1180880 6.78 386636 2590116 4 22:05:45 19:00:28 13104436 15445848 553952 3.38 114384 2441712 1180880 6.78 386788 2590252 20 22:05:45 19:10:00 13103932 15445592 554252 3.39 114500 2441848 1180864 6.78 386904 2590392 44 22:05:45 19:20:28 13103176 15445008 554816 3.39 114652 2441864 1180880 6.78 387064 2590416 4 22:05:45 19:30:28 13102424 15444416 555456 3.39 114808 2441868 1180880 6.78 387212 2590416 16 22:05:45 19:40:01 13101920 15444204 555656 3.39 114948 2442008 1180928 6.78 387360 2590836 212 22:05:45 19:50:28 13101696 15444076 555752 3.39 115040 2442012 1180880 6.78 387452 2590588 16 22:05:45 20:00:28 13101724 15444220 555620 3.39 115152 2442024 1180880 6.78 387560 2590616 36 22:05:45 20:10:01 13102280 15444884 554888 3.39 115248 2442036 1180864 6.78 387656 2590624 20 22:05:45 20:20:28 13101732 15444588 555252 3.39 115356 2442172 1180880 6.78 387768 2590756 4 22:05:45 20:30:28 13102456 15445420 554404 3.39 115460 2442184 1180880 6.78 387864 2590840 8 22:05:45 20:40:01 13103192 15446256 553524 3.38 115552 2442192 1180864 6.78 387956 2591180 240 22:05:45 20:50:28 13102720 15446012 553872 3.38 115636 2442328 1180880 6.78 388048 2590924 36 22:05:45 21:00:28 13103540 15446888 552928 3.38 115684 2442336 1180880 6.78 388096 2590920 4 22:05:45 21:10:01 13103036 15446460 553376 3.38 115752 2442344 1180864 6.78 388164 2590940 40 22:05:45 21:20:28 13102032 15445676 554048 3.38 115816 2442488 1180880 6.78 388228 2591068 36 22:05:45 21:30:28 13101340 15445112 554660 3.39 115916 2442496 1180880 6.78 388328 2591132 8 22:05:45 21:40:01 13101516 15445360 554404 3.39 115976 2442504 1180864 6.78 388388 2591276 232 22:05:45 21:50:28 13101264 15445188 554504 3.39 116044 2442512 1180880 6.78 388456 2591328 8 22:05:45 22:00:28 9859700 15264156 679736 4.15 213964 5176492 1385584 7.95 715292 5233128 12 22:05:45 Average: 13213145 15458644 542497 3.31 105787 2353777 1173964 6.74 332818 2545056 69 22:05:45 22:05:45 00:00:09 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil 22:05:45 00:10:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 00:10:00 ens3 0.36 0.16 0.12 0.07 0.00 0.00 0.00 0.00 22:05:45 00:10:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 00:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 00:20:28 ens3 0.27 0.11 0.06 0.04 0.00 0.00 0.00 0.00 22:05:45 00:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 00:30:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 00:30:09 ens3 0.55 0.15 0.15 0.08 0.00 0.00 0.00 0.00 22:05:45 00:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 00:40:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 00:40:00 ens3 0.76 0.19 0.22 0.13 0.00 0.00 0.00 0.00 22:05:45 00:40:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 00:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 00:50:28 ens3 3.04 0.20 0.49 0.15 0.00 0.00 0.00 0.00 22:05:45 00:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 01:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 01:00:28 ens3 0.72 0.11 0.09 0.05 0.00 0.00 0.00 0.00 22:05:45 01:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 01:10:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 01:10:00 ens3 3.51 0.27 0.56 0.19 0.00 0.00 0.00 0.00 22:05:45 01:10:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 01:20:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 01:20:09 ens3 3.86 2.08 0.49 2.75 0.00 0.00 0.00 0.00 22:05:45 01:20:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 01:30:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 01:30:09 ens3 1.91 0.13 0.23 0.07 0.00 0.00 0.00 0.00 22:05:45 01:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 01:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 01:40:01 ens3 2.53 0.15 25.27 0.06 0.00 0.00 0.00 0.00 22:05:45 01:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 01:50:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 01:50:09 ens3 0.43 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 01:50:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 02:00:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 02:00:09 ens3 0.47 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 02:00:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 02:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 02:10:01 ens3 0.29 0.08 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 02:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 02:20:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 02:20:09 ens3 0.28 0.09 0.06 0.02 0.00 0.00 0.00 0.00 22:05:45 02:20:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 02:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 02:30:28 ens3 0.28 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 02:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 02:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 02:40:01 ens3 0.38 0.13 0.09 0.05 0.00 0.00 0.00 0.00 22:05:45 02:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 02:50:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 02:50:09 ens3 0.47 0.13 0.10 0.06 0.00 0.00 0.00 0.00 22:05:45 02:50:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 03:00:09 lo 0.11 0.11 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 03:00:09 ens3 0.33 0.12 0.09 0.04 0.00 0.00 0.00 0.00 22:05:45 03:00:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 03:10:01 lo 0.11 0.11 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 03:10:01 ens3 0.27 0.13 0.09 0.04 0.00 0.00 0.00 0.00 22:05:45 03:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 03:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 03:20:28 ens3 0.25 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 03:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 03:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 03:30:28 ens3 0.35 0.13 0.09 0.06 0.00 0.00 0.00 0.00 22:05:45 03:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 03:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 03:40:01 ens3 0.21 0.07 0.03 0.01 0.00 0.00 0.00 0.00 22:05:45 03:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 03:50:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 03:50:09 ens3 0.21 0.09 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 03:50:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 04:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 04:00:28 ens3 0.21 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 04:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 04:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 04:10:01 ens3 0.20 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 04:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 04:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 04:20:28 ens3 0.22 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 04:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 04:30:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 04:30:09 ens3 0.19 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 04:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 04:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 04:40:01 ens3 0.20 0.07 0.03 0.01 0.00 0.00 0.00 0.00 22:05:45 04:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 04:50:03 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 04:50:03 ens3 0.33 0.12 0.09 0.06 0.00 0.00 0.00 0.00 22:05:45 04:50:03 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 05:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 05:00:28 ens3 0.47 0.18 0.15 0.10 0.00 0.00 0.00 0.00 22:05:45 05:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 05:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 05:10:01 ens3 0.23 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 05:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 05:20:02 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 05:20:02 ens3 0.25 0.09 0.06 0.04 0.00 0.00 0.00 0.00 22:05:45 05:20:02 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 05:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 05:30:28 ens3 0.30 0.11 0.08 0.04 0.00 0.00 0.00 0.00 22:05:45 05:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 05:40:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 05:40:00 ens3 0.19 0.06 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 05:40:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 05:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 05:50:28 ens3 0.28 0.10 0.06 0.03 0.00 0.00 0.00 0.00 22:05:45 05:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 06:00:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 06:00:09 ens3 0.24 0.11 0.06 0.04 0.00 0.00 0.00 0.00 22:05:45 06:00:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 06:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 06:10:01 ens3 0.22 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 06:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 06:20:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 06:20:09 ens3 0.22 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 06:20:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 06:30:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 06:30:09 ens3 0.28 0.10 0.07 0.04 0.00 0.00 0.00 0.00 22:05:45 06:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 06:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 06:40:01 ens3 0.26 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 06:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 06:50:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 06:50:09 ens3 0.30 0.12 0.09 0.05 0.00 0.00 0.00 0.00 22:05:45 06:50:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 07:00:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 07:00:09 ens3 0.42 0.15 0.13 0.08 0.00 0.00 0.00 0.00 22:05:45 07:00:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 07:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 07:10:01 ens3 0.44 0.18 0.14 0.09 0.00 0.00 0.00 0.00 22:05:45 07:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 07:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 07:20:28 ens3 0.91 0.27 0.31 0.19 0.00 0.00 0.00 0.00 22:05:45 07:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 07:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 07:30:28 ens3 0.36 0.10 0.07 0.04 0.00 0.00 0.00 0.00 22:05:45 07:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 07:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 07:40:01 ens3 0.32 0.11 0.07 0.04 0.00 0.00 0.00 0.00 22:05:45 07:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 07:50:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 07:50:09 ens3 0.25 0.09 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 07:50:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 08:00:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 08:00:09 ens3 1.32 1.21 0.20 2.22 0.00 0.00 0.00 0.00 22:05:45 08:00:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 08:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 08:10:01 ens3 0.39 0.15 0.12 0.08 0.00 0.00 0.00 0.00 22:05:45 08:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 08:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 08:20:28 ens3 0.50 0.16 0.16 0.10 0.00 0.00 0.00 0.00 22:05:45 08:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 08:30:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 08:30:09 ens3 0.26 0.09 0.06 0.04 0.00 0.00 0.00 0.00 22:05:45 08:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 08:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 08:40:01 ens3 0.20 0.06 0.03 0.01 0.00 0.00 0.00 0.00 22:05:45 08:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 08:50:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 08:50:09 ens3 0.21 0.09 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 08:50:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 09:00:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 09:00:09 ens3 0.29 0.12 0.07 0.05 0.00 0.00 0.00 0.00 22:05:45 09:00:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 09:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 09:10:01 ens3 0.30 0.12 0.08 0.05 0.00 0.00 0.00 0.00 22:05:45 09:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 09:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 09:20:28 ens3 0.49 0.19 0.17 0.11 0.00 0.00 0.00 0.00 22:05:45 09:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 09:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 09:30:28 ens3 0.37 0.13 0.10 0.06 0.00 0.00 0.00 0.00 22:05:45 09:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 09:40:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 09:40:00 ens3 0.19 0.06 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 09:40:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 09:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 09:50:28 ens3 0.23 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 09:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 10:00:27 lo 0.11 0.11 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 10:00:27 ens3 0.31 0.16 0.11 0.05 0.00 0.00 0.00 0.00 22:05:45 10:00:27 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 10:10:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 10:10:00 ens3 0.20 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 10:10:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 10:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 10:20:28 ens3 0.22 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 10:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 10:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 10:30:28 ens3 0.22 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 10:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 10:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 10:40:01 ens3 6.52 4.69 4.44 3.10 0.00 0.00 0.00 0.00 22:05:45 10:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 10:50:24 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 10:50:24 ens3 0.22 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 10:50:24 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 11:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 11:00:28 ens3 0.32 0.12 0.08 0.05 0.00 0.00 0.00 0.00 22:05:45 11:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 11:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 11:10:01 ens3 0.27 0.11 0.08 0.05 0.00 0.00 0.00 0.00 22:05:45 11:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 11:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 11:20:28 ens3 0.23 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 11:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 11:30:22 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 11:30:22 ens3 0.21 0.07 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 11:30:22 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 11:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 11:40:01 ens3 0.44 0.16 0.14 0.09 0.00 0.00 0.00 0.00 22:05:45 11:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 11:50:27 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 11:50:27 ens3 0.28 0.12 0.08 0.05 0.00 0.00 0.00 0.00 22:05:45 11:50:27 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 12:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 12:00:28 ens3 0.80 1.12 0.10 2.74 0.00 0.00 0.00 0.00 22:05:45 12:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 12:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 12:10:01 ens3 0.45 0.64 0.06 1.42 0.00 0.00 0.00 0.00 22:05:45 12:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 12:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 12:20:28 ens3 1.04 1.70 0.10 2.03 0.00 0.00 0.00 0.00 22:05:45 12:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 12:30:25 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 12:30:25 ens3 0.22 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 12:30:25 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 12:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 12:40:01 ens3 0.19 0.07 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 12:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 12:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 12:50:28 ens3 0.25 0.10 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 12:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 13:00:24 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 13:00:24 ens3 0.21 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 13:00:24 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 13:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 13:10:01 ens3 0.21 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 13:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 13:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 13:20:28 ens3 0.21 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 13:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 13:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 13:30:28 ens3 0.20 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 13:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 13:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 13:40:01 ens3 0.18 0.06 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 13:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 13:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 13:50:28 ens3 0.21 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 13:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 14:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 14:00:28 ens3 0.21 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 14:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 14:10:01 lo 0.11 0.11 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 14:10:01 ens3 0.22 0.11 0.06 0.04 0.00 0.00 0.00 0.00 22:05:45 14:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 14:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 14:20:28 ens3 0.21 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 14:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 14:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 14:30:28 ens3 0.21 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 14:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 14:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 14:40:01 ens3 0.19 0.06 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 14:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 14:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 14:50:28 ens3 0.22 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 14:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 15:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 15:00:28 ens3 0.20 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 15:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 15:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 15:10:01 ens3 0.21 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 15:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 15:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 15:20:28 ens3 0.21 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 15:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 15:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 15:30:28 ens3 0.21 0.07 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 15:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 15:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 15:40:01 ens3 0.33 0.13 0.09 0.06 0.00 0.00 0.00 0.00 22:05:45 15:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 15:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 15:50:28 ens3 0.24 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 15:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 16:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 16:00:28 ens3 0.37 0.14 0.11 0.07 0.00 0.00 0.00 0.00 22:05:45 16:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 16:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 16:10:01 ens3 0.22 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 16:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 16:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 16:20:28 ens3 0.20 0.09 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 16:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 16:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 16:30:28 ens3 0.20 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 16:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 16:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 16:40:01 ens3 0.20 0.07 0.03 0.01 0.00 0.00 0.00 0.00 22:05:45 16:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 16:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 16:50:28 ens3 0.24 0.12 0.09 0.03 0.00 0.00 0.00 0.00 22:05:45 16:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 17:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 17:00:28 ens3 0.19 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 17:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 17:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 17:10:01 ens3 0.26 0.10 0.06 0.03 0.00 0.00 0.00 0.00 22:05:45 17:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 17:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 17:20:28 ens3 0.24 0.11 0.08 0.04 0.00 0.00 0.00 0.00 22:05:45 17:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 17:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 17:30:28 ens3 0.21 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 17:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 17:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 17:40:01 ens3 0.18 0.07 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 17:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 17:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 17:50:28 ens3 0.22 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 17:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 18:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 18:00:28 ens3 0.21 0.08 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 18:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 18:10:01 lo 0.13 0.13 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 18:10:01 ens3 38.10 22.76 66.55 2.06 0.00 0.00 0.00 0.00 22:05:45 18:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 18:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 18:20:28 ens3 0.21 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 18:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 18:30:09 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 18:30:09 ens3 0.21 0.08 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 18:30:09 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 18:40:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 18:40:00 ens3 0.18 0.06 0.03 0.01 0.00 0.00 0.00 0.00 22:05:45 18:40:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 18:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 18:50:28 ens3 0.22 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 18:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 19:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 19:00:28 ens3 0.19 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 19:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 19:10:00 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 19:10:00 ens3 0.23 0.10 0.06 0.03 0.00 0.00 0.00 0.00 22:05:45 19:10:00 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 19:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 19:20:28 ens3 0.21 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 19:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 19:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 19:30:28 ens3 0.21 0.07 0.04 0.02 0.00 0.00 0.00 0.00 22:05:45 19:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 19:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 19:40:01 ens3 0.26 0.09 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 19:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 19:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 19:50:28 ens3 0.39 0.12 0.09 0.05 0.00 0.00 0.00 0.00 22:05:45 19:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 20:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 20:00:28 ens3 0.30 0.10 0.07 0.04 0.00 0.00 0.00 0.00 22:05:45 20:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 20:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 20:10:01 ens3 0.42 0.13 0.10 0.05 0.00 0.00 0.00 0.00 22:05:45 20:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 20:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 20:20:28 ens3 0.24 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 20:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 20:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 20:30:28 ens3 0.19 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 20:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 20:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 20:40:01 ens3 0.20 0.07 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 20:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 20:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 20:50:28 ens3 0.20 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 20:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 21:00:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 21:00:28 ens3 0.19 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 21:00:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 21:10:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 21:10:01 ens3 0.19 0.08 0.05 0.03 0.00 0.00 0.00 0.00 22:05:45 21:10:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 21:20:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 21:20:28 ens3 0.20 0.09 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 21:20:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 21:30:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 21:30:28 ens3 0.19 0.07 0.03 0.02 0.00 0.00 0.00 0.00 22:05:45 21:30:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 21:40:01 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 21:40:01 ens3 0.17 0.07 0.02 0.01 0.00 0.00 0.00 0.00 22:05:45 21:40:01 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 21:50:28 lo 0.10 0.10 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 21:50:28 ens3 0.19 0.08 0.05 0.02 0.00 0.00 0.00 0.00 22:05:45 21:50:28 docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 22:00:28 lo 0.99 0.99 0.10 0.10 0.00 0.00 0.00 0.00 22:05:45 22:00:28 ens3 81.96 57.66 853.03 11.26 0.00 0.00 0.00 0.00 22:05:45 22:00:28 docker0 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 Average: lo 0.11 0.11 0.01 0.01 0.00 0.00 0.00 0.00 22:05:45 Average: ens3 1.33 0.78 7.24 0.24 0.00 0.00 0.00 0.00 22:05:45 Average: docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 22:05:45 22:05:45 22:05:45 ---> sar -P ALL: 22:05:45 Linux 5.15.0-198-generic (prd-ubuntu2204-docker-4c-16g-62480) 10/07/26 _x86_64_ (4 CPU) 22:05:45 22:05:45 00:00:09 CPU %user %nice %system %iowait %steal %idle 22:05:45 00:10:00 all 0.21 0.00 0.03 0.01 0.00 99.74 22:05:45 00:10:00 0 0.01 0.01 0.02 0.01 0.00 99.96 22:05:45 00:10:00 1 0.02 0.00 0.03 0.01 0.00 99.95 22:05:45 00:10:00 2 0.04 0.00 0.05 0.01 0.01 99.89 22:05:45 00:10:00 3 0.77 0.00 0.02 0.03 0.00 99.18 22:05:45 00:20:28 all 0.17 0.00 0.03 0.01 0.00 99.79 22:05:45 00:20:28 0 0.02 0.00 0.04 0.03 0.00 99.91 22:05:45 00:20:28 1 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 00:20:28 2 0.64 0.00 0.04 0.00 0.00 99.31 22:05:45 00:20:28 3 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 00:30:09 all 0.24 0.00 0.03 0.01 0.00 99.72 22:05:45 00:30:09 0 0.86 0.00 0.04 0.01 0.00 99.08 22:05:45 00:30:09 1 0.05 0.00 0.03 0.02 0.00 99.90 22:05:45 00:30:09 2 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 00:30:09 3 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 00:40:00 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 00:40:00 0 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 00:40:00 1 0.04 0.00 0.04 0.01 0.01 99.91 22:05:45 00:40:00 2 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 00:40:00 3 0.03 0.00 0.02 0.03 0.00 99.92 22:05:45 00:50:28 all 0.26 0.00 0.03 0.01 0.00 99.70 22:05:45 00:50:28 0 0.99 0.00 0.03 0.00 0.00 98.97 22:05:45 00:50:28 1 0.02 0.00 0.03 0.01 0.00 99.95 22:05:45 00:50:28 2 0.03 0.00 0.04 0.00 0.00 99.93 22:05:45 00:50:28 3 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 01:00:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 01:00:28 0 0.00 0.00 0.01 0.01 0.00 99.98 22:05:45 01:00:28 1 0.03 0.00 0.02 0.00 0.00 99.94 22:05:45 01:00:28 2 0.02 0.00 0.04 0.02 0.00 99.93 22:05:45 01:00:28 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 01:10:00 all 0.04 0.00 0.02 0.02 0.00 99.92 22:05:45 01:10:00 0 0.06 0.00 0.00 0.00 0.00 99.94 22:05:45 01:10:00 1 0.03 0.00 0.02 0.00 0.00 99.94 22:05:45 01:10:00 2 0.02 0.00 0.03 0.01 0.00 99.93 22:05:45 01:10:00 3 0.03 0.00 0.03 0.05 0.00 99.89 22:05:45 01:20:09 all 0.15 0.00 0.03 0.01 0.00 99.80 22:05:45 01:20:09 0 0.08 0.00 0.02 0.00 0.00 99.89 22:05:45 01:20:09 1 0.18 0.00 0.02 0.00 0.01 99.78 22:05:45 01:20:09 2 0.31 0.00 0.04 0.02 0.00 99.62 22:05:45 01:20:09 3 0.03 0.00 0.03 0.02 0.00 99.91 22:05:45 01:30:09 all 0.19 0.01 0.02 0.01 0.00 99.76 22:05:45 01:30:09 0 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 01:30:09 1 0.20 0.00 0.02 0.01 0.00 99.77 22:05:45 01:30:09 2 0.53 0.00 0.01 0.01 0.00 99.44 22:05:45 01:30:09 3 0.02 0.02 0.05 0.03 0.01 99.88 22:05:45 01:40:01 all 0.12 0.00 0.02 0.01 0.00 99.84 22:05:45 01:40:01 0 0.44 0.00 0.03 0.00 0.00 99.53 22:05:45 01:40:01 1 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 01:40:01 2 0.03 0.00 0.03 0.02 0.00 99.93 22:05:45 01:40:01 3 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 01:50:09 all 0.01 0.00 0.02 0.02 0.00 99.94 22:05:45 01:50:09 0 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 01:50:09 1 0.01 0.00 0.02 0.00 0.00 99.96 22:05:45 01:50:09 2 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 01:50:09 3 0.01 0.00 0.02 0.06 0.00 99.90 22:05:45 22:05:45 01:50:09 CPU %user %nice %system %iowait %steal %idle 22:05:45 02:00:09 all 0.18 0.00 0.02 0.01 0.00 99.78 22:05:45 02:00:09 0 0.68 0.00 0.03 0.00 0.00 99.28 22:05:45 02:00:09 1 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 02:00:09 2 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 02:00:09 3 0.02 0.00 0.02 0.03 0.00 99.94 22:05:45 02:10:01 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 02:10:01 0 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 02:10:01 1 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 02:10:01 2 0.03 0.00 0.03 0.01 0.00 99.92 22:05:45 02:10:01 3 0.02 0.00 0.03 0.03 0.00 99.93 22:05:45 02:20:09 all 0.28 0.00 0.02 0.03 0.00 99.67 22:05:45 02:20:09 0 0.00 0.00 0.01 0.00 0.00 99.99 22:05:45 02:20:09 1 0.02 0.00 0.01 0.01 0.00 99.96 22:05:45 02:20:09 2 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 02:20:09 3 1.09 0.00 0.03 0.07 0.00 98.81 22:05:45 02:30:28 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 02:30:28 0 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 02:30:28 1 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 02:30:28 2 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 02:30:28 3 0.05 0.00 0.03 0.02 0.00 99.89 22:05:45 02:40:01 all 0.10 0.00 0.02 0.01 0.00 99.87 22:05:45 02:40:01 0 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 02:40:01 1 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 02:40:01 2 0.35 0.00 0.02 0.01 0.00 99.63 22:05:45 02:40:01 3 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 02:50:09 all 0.06 0.00 0.02 0.01 0.00 99.91 22:05:45 02:50:09 0 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 02:50:09 1 0.03 0.00 0.03 0.02 0.00 99.91 22:05:45 02:50:09 2 0.16 0.00 0.01 0.00 0.00 99.83 22:05:45 02:50:09 3 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 03:00:09 all 0.09 0.00 0.03 0.02 0.00 99.86 22:05:45 03:00:09 0 0.21 0.00 0.03 0.00 0.00 99.76 22:05:45 03:00:09 1 0.02 0.00 0.03 0.05 0.00 99.90 22:05:45 03:00:09 2 0.11 0.00 0.03 0.01 0.00 99.86 22:05:45 03:00:09 3 0.03 0.00 0.03 0.03 0.00 99.91 22:05:45 03:10:01 all 0.24 0.00 0.03 0.01 0.00 99.73 22:05:45 03:10:01 0 0.87 0.00 0.03 0.00 0.00 99.10 22:05:45 03:10:01 1 0.03 0.00 0.02 0.00 0.00 99.95 22:05:45 03:10:01 2 0.03 0.00 0.04 0.01 0.00 99.91 22:05:45 03:10:01 3 0.01 0.00 0.02 0.03 0.00 99.94 22:05:45 03:20:28 all 0.04 0.00 0.02 0.01 0.00 99.92 22:05:45 03:20:28 0 0.04 0.00 0.00 0.00 0.00 99.96 22:05:45 03:20:28 1 0.03 0.00 0.02 0.00 0.00 99.94 22:05:45 03:20:28 2 0.01 0.00 0.02 0.03 0.00 99.93 22:05:45 03:20:28 3 0.07 0.00 0.05 0.03 0.00 99.86 22:05:45 03:30:28 all 0.12 0.00 0.02 0.01 0.00 99.85 22:05:45 03:30:28 0 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 03:30:28 1 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 03:30:28 2 0.42 0.00 0.04 0.03 0.00 99.51 22:05:45 03:30:28 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 03:40:01 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 03:40:01 0 0.00 0.00 0.01 0.03 0.00 99.96 22:05:45 03:40:01 1 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 03:40:01 2 0.03 0.00 0.03 0.00 0.00 99.94 22:05:45 03:40:01 3 0.03 0.00 0.04 0.01 0.00 99.93 22:05:45 22:05:45 03:40:01 CPU %user %nice %system %iowait %steal %idle 22:05:45 03:50:09 all 0.18 0.00 0.02 0.02 0.00 99.77 22:05:45 03:50:09 0 0.01 0.00 0.01 0.05 0.00 99.93 22:05:45 03:50:09 1 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 03:50:09 2 0.69 0.00 0.02 0.00 0.00 99.28 22:05:45 03:50:09 3 0.02 0.00 0.03 0.02 0.00 99.92 22:05:45 04:00:28 all 0.08 0.00 0.02 0.01 0.00 99.88 22:05:45 04:00:28 0 0.01 0.00 0.01 0.03 0.00 99.94 22:05:45 04:00:28 1 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 04:00:28 2 0.27 0.00 0.02 0.00 0.00 99.70 22:05:45 04:00:28 3 0.02 0.00 0.03 0.00 0.00 99.94 22:05:45 04:10:01 all 0.21 0.00 0.02 0.01 0.00 99.76 22:05:45 04:10:01 0 0.01 0.00 0.01 0.03 0.00 99.95 22:05:45 04:10:01 1 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 04:10:01 2 0.77 0.00 0.02 0.01 0.00 99.20 22:05:45 04:10:01 3 0.03 0.00 0.05 0.01 0.00 99.92 22:05:45 04:20:28 all 0.13 0.00 0.02 0.01 0.00 99.83 22:05:45 04:20:28 0 0.01 0.00 0.01 0.02 0.00 99.96 22:05:45 04:20:28 1 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 04:20:28 2 0.47 0.00 0.02 0.00 0.00 99.50 22:05:45 04:20:28 3 0.03 0.00 0.04 0.01 0.00 99.93 22:05:45 04:30:09 all 0.18 0.00 0.02 0.01 0.00 99.79 22:05:45 04:30:09 0 0.62 0.00 0.02 0.00 0.00 99.36 22:05:45 04:30:09 1 0.03 0.00 0.04 0.02 0.00 99.91 22:05:45 04:30:09 2 0.06 0.00 0.01 0.00 0.00 99.93 22:05:45 04:30:09 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 04:40:01 all 0.23 0.00 0.03 0.01 0.00 99.73 22:05:45 04:40:01 0 0.18 0.00 0.02 0.01 0.00 99.79 22:05:45 04:40:01 1 0.53 0.00 0.05 0.02 0.01 99.39 22:05:45 04:40:01 2 0.20 0.00 0.02 0.01 0.00 99.77 22:05:45 04:40:01 3 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 04:50:03 all 0.20 0.00 0.02 0.01 0.00 99.76 22:05:45 04:50:03 0 0.02 0.00 0.01 0.03 0.00 99.94 22:05:45 04:50:03 1 0.75 0.00 0.03 0.01 0.00 99.21 22:05:45 04:50:03 2 0.02 0.00 0.03 0.00 0.00 99.95 22:05:45 04:50:03 3 0.02 0.00 0.02 0.00 0.00 99.95 22:05:45 05:00:28 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 05:00:28 0 0.01 0.00 0.01 0.02 0.00 99.96 22:05:45 05:00:28 1 0.02 0.00 0.03 0.00 0.00 99.94 22:05:45 05:00:28 2 0.02 0.00 0.03 0.00 0.00 99.95 22:05:45 05:00:28 3 0.02 0.00 0.03 0.01 0.00 99.93 22:05:45 05:10:01 all 0.21 0.00 0.03 0.01 0.00 99.75 22:05:45 05:10:01 0 0.00 0.00 0.01 0.01 0.00 99.97 22:05:45 05:10:01 1 0.80 0.00 0.03 0.00 0.00 99.17 22:05:45 05:10:01 2 0.03 0.00 0.04 0.00 0.00 99.93 22:05:45 05:10:01 3 0.02 0.00 0.03 0.03 0.00 99.93 22:05:45 05:20:02 all 0.25 0.00 0.02 0.01 0.00 99.72 22:05:45 05:20:02 0 0.93 0.00 0.03 0.01 0.00 99.03 22:05:45 05:20:02 1 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 05:20:02 2 0.03 0.00 0.02 0.00 0.00 99.95 22:05:45 05:20:02 3 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 05:30:28 all 0.08 0.00 0.02 0.01 0.00 99.88 22:05:45 05:30:28 0 0.00 0.00 0.01 0.00 0.00 99.98 22:05:45 05:30:28 1 0.02 0.00 0.03 0.03 0.00 99.91 22:05:45 05:30:28 2 0.27 0.00 0.03 0.01 0.00 99.69 22:05:45 05:30:28 3 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 22:05:45 05:30:28 CPU %user %nice %system %iowait %steal %idle 22:05:45 05:40:00 all 0.14 0.00 0.02 0.01 0.00 99.82 22:05:45 05:40:00 0 0.01 0.00 0.01 0.01 0.00 99.98 22:05:45 05:40:00 1 0.02 0.00 0.04 0.03 0.00 99.91 22:05:45 05:40:00 2 0.53 0.00 0.02 0.00 0.00 99.45 22:05:45 05:40:00 3 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 05:50:28 all 0.35 0.00 0.02 0.01 0.00 99.61 22:05:45 05:50:28 0 0.57 0.00 0.01 0.00 0.00 99.41 22:05:45 05:50:28 1 0.76 0.00 0.02 0.01 0.00 99.20 22:05:45 05:50:28 2 0.06 0.00 0.03 0.00 0.00 99.91 22:05:45 05:50:28 3 0.02 0.00 0.03 0.02 0.00 99.92 22:05:45 06:00:09 all 0.04 0.00 0.02 0.01 0.00 99.92 22:05:45 06:00:09 0 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 06:00:09 1 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 06:00:09 2 0.11 0.00 0.05 0.03 0.00 99.81 22:05:45 06:00:09 3 0.01 0.00 0.02 0.02 0.00 99.96 22:05:45 06:10:01 all 0.07 0.00 0.02 0.01 0.00 99.90 22:05:45 06:10:01 0 0.23 0.00 0.04 0.01 0.00 99.72 22:05:45 06:10:01 1 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 06:10:01 2 0.02 0.00 0.03 0.00 0.00 99.95 22:05:45 06:10:01 3 0.02 0.00 0.01 0.02 0.00 99.95 22:05:45 06:20:09 all 0.26 0.00 0.02 0.01 0.00 99.70 22:05:45 06:20:09 0 0.98 0.00 0.03 0.01 0.00 98.98 22:05:45 06:20:09 1 0.01 0.00 0.01 0.02 0.00 99.96 22:05:45 06:20:09 2 0.02 0.00 0.02 0.00 0.00 99.95 22:05:45 06:20:09 3 0.02 0.00 0.03 0.02 0.00 99.94 22:05:45 06:30:09 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 06:30:09 0 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 06:30:09 1 0.01 0.00 0.03 0.01 0.00 99.95 22:05:45 06:30:09 2 0.03 0.00 0.03 0.00 0.00 99.94 22:05:45 06:30:09 3 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 06:40:01 all 0.27 0.00 0.02 0.01 0.00 99.70 22:05:45 06:40:01 0 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 06:40:01 1 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 06:40:01 2 0.03 0.00 0.02 0.03 0.00 99.93 22:05:45 06:40:01 3 1.03 0.00 0.02 0.00 0.00 98.94 22:05:45 06:50:09 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 06:50:09 0 0.01 0.00 0.00 0.00 0.00 99.98 22:05:45 06:50:09 1 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 06:50:09 2 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 06:50:09 3 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 07:00:09 all 0.12 0.00 0.02 0.01 0.00 99.85 22:05:45 07:00:09 0 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 07:00:09 1 0.42 0.00 0.03 0.01 0.00 99.54 22:05:45 07:00:09 2 0.02 0.00 0.03 0.02 0.00 99.94 22:05:45 07:00:09 3 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 07:10:01 all 0.22 0.00 0.02 0.01 0.00 99.75 22:05:45 07:10:01 0 0.01 0.00 0.01 0.00 0.00 99.99 22:05:45 07:10:01 1 0.82 0.00 0.03 0.02 0.00 99.12 22:05:45 07:10:01 2 0.02 0.00 0.04 0.01 0.00 99.93 22:05:45 07:10:01 3 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 07:20:28 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 07:20:28 0 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 07:20:28 1 0.03 0.00 0.03 0.03 0.00 99.91 22:05:45 07:20:28 2 0.04 0.00 0.04 0.01 0.00 99.90 22:05:45 07:20:28 3 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 22:05:45 07:20:28 CPU %user %nice %system %iowait %steal %idle 22:05:45 07:30:28 all 0.16 0.00 0.03 0.01 0.00 99.80 22:05:45 07:30:28 0 0.04 0.00 0.03 0.00 0.00 99.93 22:05:45 07:30:28 1 0.54 0.00 0.02 0.02 0.00 99.42 22:05:45 07:30:28 2 0.05 0.00 0.04 0.01 0.00 99.90 22:05:45 07:30:28 3 0.02 0.00 0.03 0.01 0.00 99.95 22:05:45 07:40:01 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 07:40:01 0 0.02 0.00 0.01 0.00 0.00 99.97 22:05:45 07:40:01 1 0.04 0.00 0.03 0.03 0.00 99.90 22:05:45 07:40:01 2 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 07:40:01 3 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 07:50:09 all 0.16 0.00 0.03 0.01 0.00 99.80 22:05:45 07:50:09 0 0.02 0.00 0.03 0.00 0.00 99.95 22:05:45 07:50:09 1 0.02 0.00 0.02 0.02 0.00 99.93 22:05:45 07:50:09 2 0.59 0.00 0.04 0.01 0.00 99.36 22:05:45 07:50:09 3 0.02 0.00 0.01 0.00 0.00 99.97 22:05:45 08:00:09 all 0.03 0.00 0.02 0.01 0.00 99.94 22:05:45 08:00:09 0 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 08:00:09 1 0.03 0.00 0.01 0.02 0.00 99.94 22:05:45 08:00:09 2 0.04 0.00 0.03 0.01 0.00 99.92 22:05:45 08:00:09 3 0.03 0.00 0.02 0.00 0.00 99.94 22:05:45 08:10:01 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 08:10:01 0 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 08:10:01 1 0.01 0.00 0.01 0.02 0.00 99.97 22:05:45 08:10:01 2 0.03 0.00 0.03 0.01 0.01 99.92 22:05:45 08:10:01 3 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 08:20:28 all 0.24 0.00 0.03 0.01 0.00 99.72 22:05:45 08:20:28 0 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 08:20:28 1 0.82 0.00 0.04 0.03 0.00 99.10 22:05:45 08:20:28 2 0.11 0.00 0.03 0.00 0.00 99.85 22:05:45 08:20:28 3 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 08:30:09 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 08:30:09 0 0.01 0.00 0.02 0.00 0.00 99.96 22:05:45 08:30:09 1 0.03 0.00 0.02 0.02 0.00 99.92 22:05:45 08:30:09 2 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 08:30:09 3 0.02 0.00 0.02 0.02 0.00 99.93 22:05:45 08:40:01 all 0.24 0.00 0.02 0.01 0.00 99.72 22:05:45 08:40:01 0 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 08:40:01 1 0.38 0.00 0.02 0.00 0.00 99.61 22:05:45 08:40:01 2 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 08:40:01 3 0.55 0.00 0.02 0.03 0.00 99.40 22:05:45 08:50:09 all 0.05 0.00 0.02 0.01 0.00 99.91 22:05:45 08:50:09 0 0.13 0.00 0.04 0.03 0.00 99.81 22:05:45 08:50:09 1 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 08:50:09 2 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 08:50:09 3 0.05 0.00 0.02 0.00 0.00 99.93 22:05:45 09:00:09 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 09:00:09 0 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 09:00:09 1 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 09:00:09 2 0.04 0.00 0.02 0.00 0.00 99.94 22:05:45 09:00:09 3 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 09:10:01 all 0.23 0.00 0.02 0.01 0.00 99.73 22:05:45 09:10:01 0 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 09:10:01 1 0.77 0.00 0.02 0.03 0.00 99.19 22:05:45 09:10:01 2 0.15 0.00 0.04 0.00 0.00 99.80 22:05:45 09:10:01 3 0.01 0.00 0.01 0.01 0.00 99.98 22:05:45 22:05:45 09:10:01 CPU %user %nice %system %iowait %steal %idle 22:05:45 09:20:28 all 0.12 0.00 0.02 0.02 0.00 99.84 22:05:45 09:20:28 0 0.02 0.00 0.02 0.02 0.00 99.95 22:05:45 09:20:28 1 0.02 0.00 0.01 0.02 0.00 99.95 22:05:45 09:20:28 2 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 09:20:28 3 0.43 0.00 0.04 0.02 0.00 99.50 22:05:45 09:30:28 all 0.02 0.00 0.02 0.07 0.00 99.88 22:05:45 09:30:28 0 0.02 0.00 0.03 0.19 0.00 99.77 22:05:45 09:30:28 1 0.03 0.00 0.02 0.04 0.00 99.90 22:05:45 09:30:28 2 0.02 0.00 0.02 0.00 0.00 99.95 22:05:45 09:30:28 3 0.01 0.00 0.01 0.06 0.00 99.92 22:05:45 09:40:00 all 0.15 0.00 0.02 0.01 0.00 99.81 22:05:45 09:40:00 0 0.02 0.00 0.03 0.01 0.00 99.93 22:05:45 09:40:00 1 0.36 0.00 0.02 0.00 0.00 99.61 22:05:45 09:40:00 2 0.03 0.00 0.03 0.03 0.00 99.91 22:05:45 09:40:00 3 0.19 0.00 0.01 0.01 0.00 99.79 22:05:45 09:50:28 all 0.10 0.00 0.02 0.02 0.00 99.86 22:05:45 09:50:28 0 0.01 0.00 0.01 0.01 0.00 99.96 22:05:45 09:50:28 1 0.31 0.00 0.01 0.02 0.00 99.65 22:05:45 09:50:28 2 0.03 0.00 0.03 0.05 0.00 99.89 22:05:45 09:50:28 3 0.03 0.00 0.04 0.00 0.00 99.92 22:05:45 10:00:27 all 0.13 0.00 0.03 0.01 0.00 99.83 22:05:45 10:00:27 0 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 10:00:27 1 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 10:00:27 2 0.44 0.00 0.04 0.00 0.00 99.51 22:05:45 10:00:27 3 0.03 0.00 0.04 0.03 0.00 99.89 22:05:45 10:10:00 all 0.12 0.00 0.02 0.01 0.00 99.84 22:05:45 10:10:00 0 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 10:10:00 1 0.02 0.00 0.01 0.01 0.00 99.96 22:05:45 10:10:00 2 0.44 0.00 0.02 0.01 0.00 99.52 22:05:45 10:10:00 3 0.02 0.00 0.03 0.03 0.00 99.92 22:05:45 10:20:28 all 0.07 0.00 0.02 0.02 0.00 99.89 22:05:45 10:20:28 0 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 10:20:28 1 0.02 0.00 0.03 0.05 0.00 99.90 22:05:45 10:20:28 2 0.22 0.00 0.02 0.00 0.00 99.75 22:05:45 10:20:28 3 0.03 0.00 0.03 0.00 0.00 99.94 22:05:45 10:30:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 10:30:28 0 0.01 0.00 0.02 0.03 0.00 99.94 22:05:45 10:30:28 1 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 10:30:28 2 0.02 0.00 0.03 0.00 0.00 99.96 22:05:45 10:30:28 3 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 10:40:01 all 0.48 0.00 0.03 0.01 0.00 99.48 22:05:45 10:40:01 0 0.08 0.00 0.02 0.03 0.00 99.88 22:05:45 10:40:01 1 0.24 0.00 0.03 0.00 0.00 99.73 22:05:45 10:40:01 2 0.10 0.00 0.03 0.02 0.00 99.85 22:05:45 10:40:01 3 1.48 0.00 0.06 0.00 0.00 98.45 22:05:45 10:50:24 all 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 10:50:24 0 0.00 0.00 0.01 0.01 0.00 99.97 22:05:45 10:50:24 1 0.03 0.00 0.02 0.03 0.00 99.92 22:05:45 10:50:24 2 0.01 0.00 0.01 0.05 0.00 99.93 22:05:45 10:50:24 3 0.02 0.00 0.03 0.00 0.00 99.94 22:05:45 11:00:28 all 0.30 0.00 0.02 0.02 0.00 99.66 22:05:45 11:00:28 0 0.02 0.00 0.02 0.04 0.00 99.92 22:05:45 11:00:28 1 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 11:00:28 2 1.13 0.00 0.03 0.02 0.00 98.81 22:05:45 11:00:28 3 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 22:05:45 11:00:28 CPU %user %nice %system %iowait %steal %idle 22:05:45 11:10:01 all 0.02 0.00 0.02 0.02 0.00 99.95 22:05:45 11:10:01 0 0.02 0.00 0.02 0.05 0.00 99.91 22:05:45 11:10:01 1 0.02 0.00 0.01 0.01 0.00 99.96 22:05:45 11:10:01 2 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 11:10:01 3 0.02 0.00 0.03 0.01 0.00 99.93 22:05:45 11:20:28 all 0.04 0.00 0.02 0.01 0.00 99.93 22:05:45 11:20:28 0 0.01 0.00 0.01 0.02 0.00 99.95 22:05:45 11:20:28 1 0.02 0.00 0.02 0.02 0.00 99.93 22:05:45 11:20:28 2 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 11:20:28 3 0.11 0.00 0.04 0.01 0.00 99.83 22:05:45 11:30:22 all 0.29 0.00 0.03 0.01 0.00 99.67 22:05:45 11:30:22 0 0.01 0.00 0.03 0.02 0.00 99.95 22:05:45 11:30:22 1 0.02 0.00 0.02 0.00 0.00 99.95 22:05:45 11:30:22 2 1.01 0.00 0.03 0.01 0.00 98.96 22:05:45 11:30:22 3 0.12 0.00 0.03 0.01 0.00 99.84 22:05:45 11:40:01 all 0.10 0.00 0.02 0.01 0.00 99.86 22:05:45 11:40:01 0 0.01 0.00 0.02 0.03 0.00 99.95 22:05:45 11:40:01 1 0.15 0.00 0.02 0.01 0.00 99.81 22:05:45 11:40:01 2 0.23 0.00 0.03 0.01 0.00 99.73 22:05:45 11:40:01 3 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 11:50:27 all 0.18 0.00 0.03 0.01 0.00 99.78 22:05:45 11:50:27 0 0.01 0.00 0.03 0.02 0.00 99.93 22:05:45 11:50:27 1 0.53 0.00 0.03 0.00 0.00 99.43 22:05:45 11:50:27 2 0.14 0.00 0.05 0.00 0.00 99.80 22:05:45 11:50:27 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 12:00:28 all 0.08 0.00 0.02 0.01 0.00 99.89 22:05:45 12:00:28 0 0.01 0.00 0.01 0.01 0.00 99.96 22:05:45 12:00:28 1 0.03 0.00 0.03 0.02 0.00 99.92 22:05:45 12:00:28 2 0.25 0.00 0.03 0.00 0.00 99.72 22:05:45 12:00:28 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 12:10:01 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 12:10:01 0 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 12:10:01 1 0.03 0.00 0.02 0.03 0.00 99.92 22:05:45 12:10:01 2 0.03 0.00 0.03 0.01 0.00 99.93 22:05:45 12:10:01 3 0.02 0.00 0.01 0.01 0.00 99.96 22:05:45 12:20:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 12:20:28 0 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 12:20:28 1 0.02 0.00 0.03 0.04 0.00 99.92 22:05:45 12:20:28 2 0.03 0.00 0.03 0.00 0.00 99.94 22:05:45 12:20:28 3 0.01 0.00 0.01 0.00 0.00 99.97 22:05:45 12:30:25 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 12:30:25 0 0.01 0.00 0.00 0.00 0.00 99.99 22:05:45 12:30:25 1 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 12:30:25 2 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 12:30:25 3 0.01 0.00 0.02 0.04 0.00 99.93 22:05:45 12:40:01 all 0.21 0.00 0.03 0.01 0.00 99.75 22:05:45 12:40:01 0 0.77 0.00 0.02 0.01 0.00 99.20 22:05:45 12:40:01 1 0.03 0.00 0.04 0.01 0.00 99.93 22:05:45 12:40:01 2 0.02 0.00 0.03 0.01 0.00 99.93 22:05:45 12:40:01 3 0.02 0.00 0.02 0.03 0.00 99.94 22:05:45 12:50:28 all 0.05 0.00 0.02 0.01 0.00 99.91 22:05:45 12:50:28 0 0.01 0.00 0.02 0.00 0.00 99.96 22:05:45 12:50:28 1 0.02 0.00 0.03 0.00 0.00 99.95 22:05:45 12:50:28 2 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 12:50:28 3 0.15 0.00 0.02 0.04 0.00 99.79 22:05:45 22:05:45 12:50:28 CPU %user %nice %system %iowait %steal %idle 22:05:45 13:00:24 all 0.12 0.00 0.02 0.03 0.00 99.83 22:05:45 13:00:24 0 0.03 0.00 0.02 0.01 0.00 99.94 22:05:45 13:00:24 1 0.02 0.00 0.03 0.03 0.00 99.92 22:05:45 13:00:24 2 0.02 0.00 0.02 0.06 0.00 99.90 22:05:45 13:00:24 3 0.41 0.00 0.01 0.02 0.00 99.56 22:05:45 13:10:01 all 0.16 0.00 0.02 0.01 0.00 99.81 22:05:45 13:10:01 0 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 13:10:01 1 0.01 0.00 0.03 0.04 0.00 99.92 22:05:45 13:10:01 2 0.02 0.00 0.02 0.00 0.00 99.95 22:05:45 13:10:01 3 0.58 0.00 0.01 0.01 0.00 99.41 22:05:45 13:20:28 all 0.14 0.00 0.03 0.01 0.00 99.82 22:05:45 13:20:28 0 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 13:20:28 1 0.01 0.00 0.02 0.03 0.00 99.94 22:05:45 13:20:28 2 0.01 0.00 0.03 0.01 0.00 99.95 22:05:45 13:20:28 3 0.53 0.00 0.03 0.00 0.00 99.44 22:05:45 13:30:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 13:30:28 0 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 13:30:28 1 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 13:30:28 2 0.03 0.00 0.03 0.02 0.00 99.91 22:05:45 13:30:28 3 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 13:40:01 all 0.36 0.00 0.03 0.01 0.00 99.60 22:05:45 13:40:01 0 0.01 0.00 0.03 0.01 0.00 99.95 22:05:45 13:40:01 1 0.03 0.00 0.03 0.00 0.00 99.94 22:05:45 13:40:01 2 0.03 0.00 0.02 0.03 0.00 99.92 22:05:45 13:40:01 3 1.36 0.00 0.02 0.00 0.00 98.62 22:05:45 13:50:28 all 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 13:50:28 0 0.02 0.00 0.02 0.04 0.00 99.91 22:05:45 13:50:28 1 0.02 0.00 0.02 0.03 0.00 99.94 22:05:45 13:50:28 2 0.02 0.00 0.03 0.00 0.00 99.94 22:05:45 13:50:28 3 0.00 0.00 0.02 0.01 0.00 99.97 22:05:45 14:00:28 all 0.06 0.00 0.02 0.01 0.00 99.91 22:05:45 14:00:28 0 0.01 0.00 0.02 0.00 0.00 99.96 22:05:45 14:00:28 1 0.02 0.00 0.02 0.02 0.00 99.95 22:05:45 14:00:28 2 0.19 0.00 0.03 0.02 0.00 99.76 22:05:45 14:00:28 3 0.02 0.00 0.02 0.01 0.00 99.96 22:05:45 14:10:01 all 0.14 0.00 0.03 0.01 0.00 99.83 22:05:45 14:10:01 0 0.04 0.00 0.02 0.02 0.00 99.92 22:05:45 14:10:01 1 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 14:10:01 2 0.46 0.00 0.04 0.01 0.00 99.49 22:05:45 14:10:01 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 14:20:28 all 0.13 0.00 0.02 0.02 0.00 99.83 22:05:45 14:20:28 0 0.02 0.00 0.01 0.01 0.00 99.96 22:05:45 14:20:28 1 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 14:20:28 2 0.47 0.00 0.03 0.01 0.00 99.49 22:05:45 14:20:28 3 0.01 0.00 0.03 0.04 0.00 99.92 22:05:45 14:30:28 all 0.07 0.00 0.02 0.02 0.00 99.88 22:05:45 14:30:28 0 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 14:30:28 1 0.02 0.00 0.02 0.03 0.00 99.94 22:05:45 14:30:28 2 0.26 0.00 0.05 0.04 0.00 99.66 22:05:45 14:30:28 3 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 14:40:01 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 14:40:01 0 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 14:40:01 1 0.01 0.00 0.01 0.01 0.00 99.96 22:05:45 14:40:01 2 0.02 0.00 0.02 0.03 0.00 99.92 22:05:45 14:40:01 3 0.03 0.00 0.04 0.02 0.00 99.91 22:05:45 22:05:45 14:40:01 CPU %user %nice %system %iowait %steal %idle 22:05:45 14:50:28 all 0.24 0.00 0.03 0.01 0.00 99.72 22:05:45 14:50:28 0 0.01 0.00 0.03 0.00 0.00 99.96 22:05:45 14:50:28 1 0.89 0.00 0.03 0.03 0.00 99.05 22:05:45 14:50:28 2 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 14:50:28 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 15:00:28 all 0.25 0.00 0.02 0.01 0.00 99.71 22:05:45 15:00:28 0 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 15:00:28 1 0.01 0.00 0.01 0.03 0.00 99.95 22:05:45 15:00:28 2 0.95 0.00 0.02 0.00 0.00 99.02 22:05:45 15:00:28 3 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 15:10:01 all 0.13 0.00 0.02 0.01 0.00 99.83 22:05:45 15:10:01 0 0.03 0.00 0.05 0.01 0.00 99.90 22:05:45 15:10:01 1 0.01 0.00 0.01 0.03 0.00 99.95 22:05:45 15:10:01 2 0.46 0.00 0.02 0.00 0.00 99.51 22:05:45 15:10:01 3 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 15:20:28 all 0.05 0.00 0.02 0.01 0.00 99.91 22:05:45 15:20:28 0 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 15:20:28 1 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 15:20:28 2 0.17 0.00 0.02 0.00 0.00 99.81 22:05:45 15:20:28 3 0.01 0.00 0.02 0.00 0.00 99.96 22:05:45 15:30:28 all 0.19 0.00 0.03 0.03 0.00 99.75 22:05:45 15:30:28 0 0.03 0.00 0.02 0.01 0.00 99.94 22:05:45 15:30:28 1 0.68 0.00 0.04 0.07 0.00 99.21 22:05:45 15:30:28 2 0.04 0.00 0.03 0.02 0.00 99.90 22:05:45 15:30:28 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 15:40:01 all 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 15:40:01 0 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 15:40:01 1 0.03 0.00 0.03 0.01 0.00 99.93 22:05:45 15:40:01 2 0.04 0.00 0.04 0.02 0.01 99.89 22:05:45 15:40:01 3 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 15:50:28 all 0.09 0.00 0.03 0.01 0.00 99.87 22:05:45 15:50:28 0 0.27 0.00 0.05 0.02 0.00 99.66 22:05:45 15:50:28 1 0.03 0.00 0.03 0.01 0.00 99.94 22:05:45 15:50:28 2 0.03 0.00 0.03 0.01 0.00 99.93 22:05:45 15:50:28 3 0.03 0.00 0.02 0.01 0.00 99.94 22:05:45 16:00:28 all 0.03 0.00 0.03 0.02 0.00 99.93 22:05:45 16:00:28 0 0.02 0.00 0.02 0.02 0.00 99.93 22:05:45 16:00:28 1 0.03 0.00 0.03 0.01 0.00 99.93 22:05:45 16:00:28 2 0.04 0.00 0.04 0.04 0.00 99.88 22:05:45 16:00:28 3 0.01 0.00 0.02 0.00 0.00 99.97 22:05:45 16:10:01 all 0.08 0.00 0.02 0.02 0.00 99.88 22:05:45 16:10:01 0 0.25 0.00 0.02 0.01 0.00 99.72 22:05:45 16:10:01 1 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 16:10:01 2 0.03 0.00 0.03 0.04 0.00 99.90 22:05:45 16:10:01 3 0.02 0.00 0.03 0.01 0.00 99.95 22:05:45 16:20:28 all 0.08 0.00 0.03 0.01 0.00 99.88 22:05:45 16:20:28 0 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 16:20:28 1 0.23 0.00 0.03 0.01 0.00 99.72 22:05:45 16:20:28 2 0.03 0.00 0.04 0.03 0.00 99.89 22:05:45 16:20:28 3 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 16:30:28 all 0.34 0.00 0.03 0.01 0.00 99.62 22:05:45 16:30:28 0 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 16:30:28 1 0.38 0.00 0.03 0.00 0.00 99.58 22:05:45 16:30:28 2 0.03 0.00 0.03 0.03 0.00 99.90 22:05:45 16:30:28 3 0.91 0.00 0.02 0.00 0.00 99.07 22:05:45 22:05:45 16:30:28 CPU %user %nice %system %iowait %steal %idle 22:05:45 16:40:01 all 0.11 0.00 0.02 0.01 0.00 99.85 22:05:45 16:40:01 0 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 16:40:01 1 0.32 0.00 0.03 0.00 0.00 99.65 22:05:45 16:40:01 2 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 16:40:01 3 0.10 0.00 0.03 0.01 0.00 99.86 22:05:45 16:50:28 all 0.18 0.00 0.03 0.01 0.00 99.77 22:05:45 16:50:28 0 0.02 0.00 0.04 0.01 0.00 99.93 22:05:45 16:50:28 1 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 16:50:28 2 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 16:50:28 3 0.66 0.00 0.05 0.01 0.00 99.28 22:05:45 17:00:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 17:00:28 0 0.00 0.00 0.01 0.00 0.00 99.99 22:05:45 17:00:28 1 0.02 0.00 0.01 0.00 0.00 99.97 22:05:45 17:00:28 2 0.02 0.00 0.04 0.02 0.00 99.92 22:05:45 17:00:28 3 0.02 0.00 0.03 0.03 0.00 99.92 22:05:45 17:10:01 all 0.20 0.00 0.02 0.02 0.00 99.77 22:05:45 17:10:01 0 0.01 0.00 0.01 0.00 0.00 99.99 22:05:45 17:10:01 1 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 17:10:01 2 0.74 0.00 0.03 0.02 0.00 99.21 22:05:45 17:10:01 3 0.02 0.00 0.02 0.04 0.00 99.91 22:05:45 17:20:28 all 0.13 0.00 0.02 0.01 0.00 99.84 22:05:45 17:20:28 0 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 17:20:28 1 0.02 0.00 0.04 0.00 0.00 99.93 22:05:45 17:20:28 2 0.45 0.00 0.02 0.03 0.00 99.50 22:05:45 17:20:28 3 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 17:30:28 all 0.06 0.00 0.02 0.01 0.00 99.90 22:05:45 17:30:28 0 0.01 0.00 0.02 0.00 0.00 99.98 22:05:45 17:30:28 1 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 17:30:28 2 0.21 0.00 0.03 0.01 0.00 99.75 22:05:45 17:30:28 3 0.01 0.00 0.02 0.03 0.00 99.94 22:05:45 17:40:01 all 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 17:40:01 0 0.00 0.00 0.00 0.00 0.00 99.99 22:05:45 17:40:01 1 0.02 0.00 0.03 0.02 0.00 99.93 22:05:45 17:40:01 2 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 17:40:01 3 0.01 0.00 0.02 0.02 0.00 99.94 22:05:45 17:50:28 all 0.40 0.00 0.03 0.02 0.00 99.54 22:05:45 17:50:28 0 1.54 0.00 0.03 0.02 0.00 98.41 22:05:45 17:50:28 1 0.02 0.00 0.03 0.03 0.00 99.92 22:05:45 17:50:28 2 0.02 0.00 0.02 0.02 0.00 99.94 22:05:45 17:50:28 3 0.03 0.00 0.04 0.01 0.00 99.93 22:05:45 18:00:28 all 0.06 0.00 0.02 0.01 0.00 99.90 22:05:45 18:00:28 0 0.19 0.00 0.02 0.03 0.00 99.76 22:05:45 18:00:28 1 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 18:00:28 2 0.03 0.00 0.03 0.01 0.00 99.93 22:05:45 18:00:28 3 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 18:10:01 all 0.16 0.00 0.06 0.05 0.00 99.73 22:05:45 18:10:01 0 0.15 0.00 0.07 0.03 0.00 99.75 22:05:45 18:10:01 1 0.18 0.00 0.07 0.02 0.00 99.73 22:05:45 18:10:01 2 0.07 0.00 0.05 0.11 0.00 99.77 22:05:45 18:10:01 3 0.23 0.00 0.07 0.02 0.00 99.68 22:05:45 18:20:28 all 0.12 0.00 0.02 0.01 0.00 99.84 22:05:45 18:20:28 0 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 18:20:28 1 0.02 0.00 0.01 0.00 0.00 99.97 22:05:45 18:20:28 2 0.01 0.00 0.03 0.01 0.00 99.95 22:05:45 18:20:28 3 0.42 0.00 0.01 0.03 0.00 99.54 22:05:45 22:05:45 18:20:28 CPU %user %nice %system %iowait %steal %idle 22:05:45 18:30:09 all 0.09 0.00 0.02 0.01 0.00 99.87 22:05:45 18:30:09 0 0.01 0.00 0.02 0.02 0.00 99.94 22:05:45 18:30:09 1 0.32 0.00 0.01 0.01 0.00 99.66 22:05:45 18:30:09 2 0.02 0.00 0.03 0.00 0.00 99.95 22:05:45 18:30:09 3 0.02 0.00 0.03 0.02 0.00 99.93 22:05:45 18:40:00 all 0.22 0.00 0.02 0.01 0.00 99.74 22:05:45 18:40:00 0 0.01 0.00 0.01 0.02 0.00 99.96 22:05:45 18:40:00 1 0.84 0.00 0.02 0.01 0.00 99.14 22:05:45 18:40:00 2 0.02 0.00 0.03 0.01 0.00 99.95 22:05:45 18:40:00 3 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 18:50:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 18:50:28 0 0.01 0.00 0.02 0.00 0.00 99.96 22:05:45 18:50:28 1 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 18:50:28 2 0.03 0.00 0.03 0.03 0.00 99.92 22:05:45 18:50:28 3 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 19:00:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 19:00:28 0 0.01 0.00 0.00 0.01 0.00 99.98 22:05:45 19:00:28 1 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 19:00:28 2 0.01 0.00 0.02 0.03 0.00 99.93 22:05:45 19:00:28 3 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 19:10:00 all 0.48 0.00 0.03 0.01 0.00 99.48 22:05:45 19:10:00 0 1.84 0.00 0.01 0.01 0.00 98.14 22:05:45 19:10:00 1 0.03 0.00 0.05 0.02 0.00 99.90 22:05:45 19:10:00 2 0.02 0.00 0.03 0.03 0.00 99.92 22:05:45 19:10:00 3 0.01 0.00 0.01 0.00 0.00 99.98 22:05:45 19:20:28 all 0.03 0.00 0.03 0.01 0.00 99.93 22:05:45 19:20:28 0 0.08 0.00 0.03 0.01 0.00 99.88 22:05:45 19:20:28 1 0.02 0.00 0.04 0.01 0.00 99.93 22:05:45 19:20:28 2 0.01 0.00 0.02 0.03 0.00 99.93 22:05:45 19:20:28 3 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 19:30:28 all 0.29 0.00 0.03 0.12 0.00 99.56 22:05:45 19:30:28 0 0.02 0.00 0.02 0.01 0.00 99.94 22:05:45 19:30:28 1 0.52 0.00 0.03 0.04 0.00 99.41 22:05:45 19:30:28 2 0.04 0.00 0.04 0.01 0.00 99.92 22:05:45 19:30:28 3 0.57 0.00 0.02 0.43 0.00 98.97 22:05:45 19:40:01 all 0.07 0.00 0.03 0.02 0.00 99.89 22:05:45 19:40:01 0 0.02 0.00 0.04 0.01 0.00 99.93 22:05:45 19:40:01 1 0.02 0.00 0.01 0.00 0.00 99.96 22:05:45 19:40:01 2 0.20 0.00 0.02 0.00 0.00 99.77 22:05:45 19:40:01 3 0.03 0.00 0.03 0.05 0.00 99.90 22:05:45 19:50:28 all 0.08 0.00 0.03 0.02 0.00 99.87 22:05:45 19:50:28 0 0.02 0.00 0.04 0.03 0.00 99.91 22:05:45 19:50:28 1 0.01 0.00 0.01 0.01 0.00 99.96 22:05:45 19:50:28 2 0.28 0.00 0.02 0.00 0.00 99.68 22:05:45 19:50:28 3 0.02 0.00 0.03 0.03 0.00 99.91 22:05:45 20:00:28 all 0.11 0.00 0.02 0.01 0.00 99.85 22:05:45 20:00:28 0 0.01 0.00 0.01 0.00 0.00 99.99 22:05:45 20:00:28 1 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 20:00:28 2 0.40 0.00 0.04 0.01 0.00 99.55 22:05:45 20:00:28 3 0.02 0.00 0.01 0.03 0.00 99.94 22:05:45 20:10:01 all 0.27 0.00 0.03 0.01 0.00 99.69 22:05:45 20:10:01 0 0.57 0.00 0.01 0.00 0.00 99.41 22:05:45 20:10:01 1 0.02 0.00 0.04 0.03 0.00 99.90 22:05:45 20:10:01 2 0.21 0.00 0.03 0.01 0.00 99.75 22:05:45 20:10:01 3 0.27 0.00 0.03 0.01 0.00 99.68 22:05:45 22:05:45 20:10:01 CPU %user %nice %system %iowait %steal %idle 22:05:45 20:20:28 all 0.14 0.00 0.02 0.01 0.00 99.83 22:05:45 20:20:28 0 0.01 0.00 0.01 0.02 0.00 99.96 22:05:45 20:20:28 1 0.50 0.00 0.02 0.01 0.00 99.47 22:05:45 20:20:28 2 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 20:20:28 3 0.02 0.00 0.02 0.00 0.00 99.95 22:05:45 20:30:28 all 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 20:30:28 0 0.01 0.00 0.01 0.03 0.00 99.95 22:05:45 20:30:28 1 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 20:30:28 2 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 20:30:28 3 0.03 0.00 0.04 0.01 0.00 99.93 22:05:45 20:40:01 all 0.20 0.00 0.02 0.02 0.00 99.76 22:05:45 20:40:01 0 0.01 0.00 0.01 0.01 0.00 99.97 22:05:45 20:40:01 1 0.03 0.00 0.03 0.04 0.00 99.90 22:05:45 20:40:01 2 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 20:40:01 3 0.76 0.00 0.02 0.01 0.00 99.21 22:05:45 20:50:28 all 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 20:50:28 0 0.01 0.00 0.02 0.03 0.00 99.94 22:05:45 20:50:28 1 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 20:50:28 2 0.02 0.00 0.03 0.01 0.00 99.94 22:05:45 20:50:28 3 0.01 0.00 0.00 0.00 0.00 99.98 22:05:45 21:00:28 all 0.12 0.00 0.03 0.02 0.00 99.84 22:05:45 21:00:28 0 0.43 0.00 0.04 0.02 0.00 99.52 22:05:45 21:00:28 1 0.01 0.00 0.02 0.02 0.00 99.95 22:05:45 21:00:28 2 0.03 0.00 0.03 0.02 0.00 99.92 22:05:45 21:00:28 3 0.01 0.00 0.02 0.01 0.00 99.97 22:05:45 21:10:01 all 0.01 0.00 0.02 0.01 0.00 99.95 22:05:45 21:10:01 0 0.00 0.00 0.01 0.01 0.00 99.98 22:05:45 21:10:01 1 0.02 0.00 0.04 0.03 0.00 99.90 22:05:45 21:10:01 2 0.02 0.00 0.02 0.01 0.00 99.95 22:05:45 21:10:01 3 0.01 0.00 0.02 0.01 0.00 99.96 22:05:45 21:20:28 all 0.18 0.00 0.03 0.03 0.00 99.76 22:05:45 21:20:28 0 0.67 0.00 0.02 0.04 0.00 99.26 22:05:45 21:20:28 1 0.03 0.00 0.03 0.07 0.00 99.87 22:05:45 21:20:28 2 0.02 0.00 0.02 0.00 0.00 99.96 22:05:45 21:20:28 3 0.02 0.00 0.03 0.02 0.00 99.94 22:05:45 21:30:28 all 0.15 0.00 0.03 0.02 0.00 99.80 22:05:45 21:30:28 0 0.52 0.00 0.02 0.00 0.00 99.45 22:05:45 21:30:28 1 0.02 0.00 0.02 0.04 0.00 99.92 22:05:45 21:30:28 2 0.02 0.00 0.03 0.02 0.00 99.92 22:05:45 21:30:28 3 0.03 0.00 0.04 0.01 0.00 99.92 22:05:45 21:40:01 all 0.17 0.00 0.02 0.01 0.00 99.79 22:05:45 21:40:01 0 0.46 0.00 0.02 0.01 0.00 99.51 22:05:45 21:40:01 1 0.02 0.00 0.01 0.00 0.00 99.96 22:05:45 21:40:01 2 0.02 0.00 0.03 0.01 0.00 99.93 22:05:45 21:40:01 3 0.18 0.00 0.02 0.04 0.00 99.76 22:05:45 21:50:28 all 0.10 0.00 0.03 0.01 0.00 99.86 22:05:45 21:50:28 0 0.32 0.00 0.03 0.01 0.00 99.64 22:05:45 21:50:28 1 0.01 0.00 0.01 0.00 0.00 99.97 22:05:45 21:50:28 2 0.03 0.00 0.04 0.02 0.00 99.90 22:05:45 21:50:28 3 0.02 0.00 0.02 0.03 0.00 99.93 22:05:45 22:00:28 all 10.11 0.00 1.08 0.78 0.01 88.03 22:05:45 22:00:28 0 15.41 0.00 1.40 0.96 0.01 82.22 22:05:45 22:00:28 1 8.38 0.00 1.07 0.81 0.01 89.73 22:05:45 22:00:28 2 8.43 0.00 1.00 0.55 0.01 90.01 22:05:45 22:00:28 3 8.17 0.00 0.85 0.79 0.01 90.18 22:05:45 22:05:45 Average: CPU %user %nice %system %iowait %steal %idle 22:05:45 Average: all 0.20 0.00 0.03 0.02 0.00 99.74 22:05:45 Average: 0 0.25 0.00 0.03 0.02 0.00 99.70 22:05:45 Average: 1 0.18 0.00 0.03 0.02 0.00 99.76 22:05:45 Average: 2 0.20 0.00 0.04 0.02 0.00 99.74 22:05:45 Average: 3 0.17 0.00 0.03 0.02 0.00 99.77 22:05:45 22:05:45 22:05:45