19:56:22 Triggered by Gerrit: https://git.opendaylight.org/gerrit/c/transportpce/+/125699 19:56:22 Running as SYSTEM 19:56:22 [EnvInject] - Loading node environment variables. 19:56:22 Building remotely on prd-ubuntu2204-docker-4c-16g-46934 (ubuntu2204-docker-4c-16g) in workspace /w/workspace/transportpce-tox-verify-titanium 19:56:23 [ssh-agent] Looking for ssh-agent implementation... 19:56:23 [ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine) 19:56:23 $ ssh-agent 19:56:23 SSH_AUTH_SOCK=/tmp/ssh-XXXXXX3b84Pv/agent.1559 19:56:23 SSH_AGENT_PID=1561 19:56:23 [ssh-agent] Started. 19:56:23 Running ssh-add (command line suppressed) 19:56:23 Identity added: /w/workspace/transportpce-tox-verify-titanium@tmp/private_key_16113615404177632800.key (/w/workspace/transportpce-tox-verify-titanium@tmp/private_key_16113615404177632800.key) 19:56:23 [ssh-agent] Using credentials jenkins (jenkins-ssh) 19:56:23 The recommended git tool is: NONE 19:56:25 using credential jenkins-ssh 19:56:25 Wiping out workspace first. 19:56:25 Cloning the remote Git repository 19:56:25 Cloning repository git://devvexx.opendaylight.org/mirror/transportpce 19:56:25 > git init /w/workspace/transportpce-tox-verify-titanium # timeout=10 19:56:25 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 19:56:25 > git --version # timeout=10 19:56:25 > git --version # 'git version 2.34.1' 19:56:25 using GIT_SSH to set credentials jenkins-ssh 19:56:25 Verifying host key using known hosts file, will automatically accept unseen keys 19:56:25 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce +refs/heads/*:refs/remotes/origin/* # timeout=10 19:56:29 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 19:56:29 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 19:56:29 > git config remote.origin.url git://devvexx.opendaylight.org/mirror/transportpce # timeout=10 19:56:29 Fetching upstream changes from git://devvexx.opendaylight.org/mirror/transportpce 19:56:29 using GIT_SSH to set credentials jenkins-ssh 19:56:29 Verifying host key using known hosts file, will automatically accept unseen keys 19:56:29 > git fetch --tags --force --progress -- git://devvexx.opendaylight.org/mirror/transportpce refs/changes/99/125699/2 # timeout=10 19:56:30 > git rev-parse 2375e50b54464a8051bfed426a2e6b223681686b^{commit} # timeout=10 19:56:30 Checking out Revision 2375e50b54464a8051bfed426a2e6b223681686b (refs/changes/99/125699/2) 19:56:30 > git config core.sparsecheckout # timeout=10 19:56:30 > git checkout -f 2375e50b54464a8051bfed426a2e6b223681686b # timeout=10 19:56:30 Commit message: "Update dependencies in pom.xml" 19:56:30 > git rev-parse FETCH_HEAD^{commit} # timeout=10 19:56:30 > git rev-list --no-walk 06806b08925bf88200d2e29d6d17757c875d127d # timeout=10 19:56:30 > git remote # timeout=10 19:56:30 > git submodule init # timeout=10 19:56:30 > git submodule sync # timeout=10 19:56:30 > git config --get remote.origin.url # timeout=10 19:56:30 > git submodule init # timeout=10 19:56:31 > git config -f .gitmodules --get-regexp ^submodule\.(.+)\.url # timeout=10 19:56:31 ERROR: No submodules found. 19:56:34 provisioning config files... 19:56:34 copy managed file [npmrc] to file:/home/jenkins/.npmrc 19:56:34 copy managed file [pipconf] to file:/home/jenkins/.config/pip/pip.conf 19:56:34 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins4962660673779519548.sh 19:56:34 ---> python-tools-install.sh 19:56:34 Setup pyenv: 19:56:34 * system (set by /opt/pyenv/version) 19:56:34 * 3.8.20 (set by /opt/pyenv/version) 19:56:34 * 3.9.20 (set by /opt/pyenv/version) 19:56:34 3.10.15 19:56:34 3.11.10 19:56:39 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-B6WU 19:56:39 lf-activate-venv(): INFO: Save venv in file: /tmp/.os_lf_venv 19:56:39 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 19:56:43 lf-activate-venv(): INFO: Installing additional packages: lftools 19:57:15 lf-activate-venv(): INFO: Adding /tmp/venv-B6WU/bin to PATH 19:57:15 Generating Requirements File 19:57:43 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. 19:57:43 httplib2 0.30.2 requires pyparsing<4,>=3.0.4, but you have pyparsing 2.4.7 which is incompatible. 19:57:44 Python 3.11.10 19:57:44 pip 26.2.1 from /tmp/venv-B6WU/lib/python3.11/site-packages/pip (python 3.11) 19:57:44 aiohappyeyeballs==2.7.1 19:57:44 aiohttp==3.14.3 19:57:44 aiosignal==1.4.0 19:57:44 appdirs==1.4.4 19:57:44 argcomplete==3.7.2 19:57:44 aspy.yaml==1.3.0 19:57:44 attrs==26.1.0 19:57:44 autopage==0.6.0 19:57:44 beautifulsoup4==4.15.0 19:57:44 boto3==1.43.87 19:57:44 botocore==1.43.87 19:57:44 bs4==0.0.2 19:57:44 certifi==2026.7.22 19:57:44 cffi==2.1.1 19:57:44 cfgv==3.5.0 19:57:44 chardet==7.6.0 19:57:44 charset-normalizer==3.5.1 19:57:44 click==8.5.0 19:57:44 cliff==4.16.0 19:57:44 cmd2==4.2.2 19:57:44 cryptography==3.3.2 19:57:44 debtcollector==3.1.0 19:57:44 decorator==5.3.1 19:57:44 defusedxml==0.7.1 19:57:44 Deprecated==1.3.1 19:57:44 distlib==0.4.3 19:57:44 dnspython==2.8.0 19:57:44 docker==7.2.0 19:57:44 dogpile.cache==1.5.0 19:57:44 durationpy==0.11 19:57:44 email-validator==2.3.0 19:57:44 filelock==3.32.5 19:57:44 frozenlist==1.8.0 19:57:44 future==1.0.0 19:57:44 gitdb==4.0.12 19:57:44 GitPython==3.1.61 19:57:44 httplib2==0.30.2 19:57:44 identify==2.6.19 19:57:44 idna==3.19 19:57:44 importlib-resources==1.5.0 19:57:44 iso8601==2.1.0 19:57:44 Jinja2==3.1.6 19:57:44 jmespath==1.1.0 19:57:44 jsonpatch==1.33 19:57:44 jsonpointer==3.1.1 19:57:44 jsonschema==4.26.0 19:57:44 jsonschema-specifications==2025.9.1 19:57:44 keystoneauth1==5.17.0 19:57:44 kubernetes==36.0.3 19:57:44 lftools==0.37.23 19:57:44 lxml==6.1.3 19:57:44 markdown-it-py==4.2.0 19:57:44 MarkupSafe==3.0.3 19:57:44 mdurl==0.1.2 19:57:44 msgpack==1.2.2 19:57:44 multi_key_dict==2.0.3 19:57:44 multidict==6.7.1 19:57:44 munch==4.0.0 19:57:44 netaddr==1.3.0 19:57:44 niet==1.4.2 19:57:44 nodeenv==1.10.0 19:57:44 oauth2client==4.1.3 19:57:44 oauthlib==3.3.1 19:57:44 openstacksdk==4.20.0 19:57:44 os-service-types==1.9.0 19:57:44 osc-lib==4.7.0 19:57:44 oslo.config==10.7.0 19:57:44 oslo.context==6.5.0 19:57:44 oslo.i18n==6.9.0 19:57:44 oslo.log==8.3.1 19:57:44 oslo.serialization==5.11.0 19:57:44 oslo.utils==10.2.0 19:57:44 packaging==26.3 19:57:44 pbr==7.0.3 19:57:44 platformdirs==4.11.7 19:57:44 prettytable==3.18.0 19:57:44 prompt_toolkit==3.0.53 19:57:44 propcache==0.5.2 19:57:44 psutil==7.2.2 19:57:44 pyasn1==0.6.4 19:57:44 pyasn1_modules==0.4.2 19:57:44 pycparser==3.0 19:57:44 pygerrit2==2.0.15 19:57:44 PyGithub==2.10.0 19:57:44 Pygments==2.21.0 19:57:44 PyJWT==2.13.0 19:57:44 PyNaCl==1.6.2 19:57:44 pyparsing==2.4.7 19:57:44 pyperclip==1.11.0 19:57:44 pyrsistent==0.20.0 19:57:44 python-dateutil==2.9.0.post0 19:57:44 python-discovery==1.6.0 19:57:44 python-heatclient==5.3.0 19:57:44 python-jenkins==1.8.3 19:57:44 python-keystoneclient==6.0.0 19:57:44 python-magnumclient==5.0.0 19:57:44 python-manilaclient==6.3.0 19:57:44 python-openstackclient==10.3.0 19:57:44 python-swiftclient==4.11.0 19:57:44 PyYAML==6.0.3 19:57:44 referencing==0.37.0 19:57:44 requests==2.34.2 19:57:44 requests-oauthlib==2.0.0 19:57:44 rfc3986==2.0.0 19:57:44 rich==15.0.0 19:57:44 rich-argparse==1.8.0 19:57:44 rpds-py==2026.6.3 19:57:44 rsa==4.9.1 19:57:44 ruamel.yaml==0.19.1 19:57:44 ruamel.yaml.clib==0.2.15 19:57:44 s3transfer==0.19.2 19:57:44 simplejson==4.1.2 19:57:44 six==1.17.0 19:57:44 smmap==5.0.3 19:57:44 soupsieve==2.9.2 19:57:44 stevedore==5.9.1 19:57:44 tabulate==0.10.0 19:57:44 toml==0.10.2 19:57:44 tomlkit==0.15.1 19:57:44 tqdm==4.70.0 19:57:44 typing_extensions==4.16.0 19:57:44 urllib3==1.26.20 19:57:44 virtualenv==21.7.8 19:57:44 wcwidth==0.8.3 19:57:44 websocket-client==1.9.2 19:57:44 wrapt==2.4.0 19:57:44 xdg==6.0.0 19:57:44 xmltodict==1.0.4 19:57:44 yarl==1.24.5 19:57:44 yq==4.1.2 19:57:44 [transportpce-tox-verify-titanium] $ /bin/sh /tmp/jenkins4836592089214671481.sh 19:57:44 ---> uv-install.sh 19:57:44 Installing uv/uvx (latest) using shell installer 19:57:45 2026-09-02 19:57:45 URL:https://releases.astral.sh/installers/uv/latest/uv-installer.sh [71225/71225] -> "/tmp/uv-install-wLgCNH.sh" [1] 19:57:45 downloading uv 0.12.9 x86_64-unknown-linux-gnu 19:57:45 installing to /home/jenkins/.local/bin 19:57:45 uv 19:57:45 uvx 19:57:45 everything's installed! 19:57:45 19:57:45 To add $HOME/.local/bin to your PATH, either restart your shell or run: 19:57:45 19:57:45 source $HOME/.local/bin/env (sh, bash, zsh) 19:57:45 source $HOME/.local/bin/env.fish (fish) 19:57:45 Adding install location to PATH 19:57:45 ---> Validating uv/uvx install 19:57:46 uvx 0.12.9 (x86_64-unknown-linux-gnu) 19:57:46 [EnvInject] - Injecting environment variables from a build step. 19:57:46 [EnvInject] - Injecting as environment variables the properties content 19:57:46 PYTHON=python3 19:57:46 19:57:46 [EnvInject] - Variables injected successfully. 19:57:46 [transportpce-tox-verify-titanium] $ /bin/bash -l /tmp/jenkins9396072713170611566.sh 19:57:46 ---> tox-install.sh 19:57:46 + source /home/jenkins/lf-env.sh 19:57:46 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 19:57:46 ++ mktemp -d /tmp/venv-XXXX 19:57:46 + lf_venv=/tmp/venv-7H2q 19:57:46 + local venv_file=/tmp/.os_lf_venv 19:57:46 + local python=python3 19:57:46 + local options 19:57:46 + local set_path=true 19:57:46 + local install_args= 19:57:46 ++ 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 19:57:46 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 19:57:46 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 19:57:46 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 19:57:46 + true 19:57:46 + case $1 in 19:57:46 + venv_file=/tmp/.toxenv 19:57:46 + shift 2 19:57:46 + true 19:57:46 + case $1 in 19:57:46 + shift 19:57:46 + break 19:57:46 + case $python in 19:57:46 + local pkg_list= 19:57:46 + [[ -d /opt/pyenv ]] 19:57:46 + echo 'Setup pyenv:' 19:57:46 Setup pyenv: 19:57:46 + export PYENV_ROOT=/opt/pyenv 19:57:46 + PYENV_ROOT=/opt/pyenv 19:57:46 + 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 19:57:46 + 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 19:57:46 + pyenv versions 19:57:46 system 19:57:46 3.8.20 19:57:46 3.9.20 19:57:46 3.10.15 19:57:46 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-titanium/.python-version) 19:57:46 + command -v pyenv 19:57:46 ++ pyenv init - --no-rehash 19:57:46 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 19:57:46 for i in ${!paths[@]}; do 19:57:46 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 19:57:46 fi; done; 19:57:46 echo "${paths[*]}"'\'')" 19:57:46 export PATH="/opt/pyenv/shims:${PATH}" 19:57:46 export PYENV_SHELL=bash 19:57:46 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 19:57:46 pyenv() { 19:57:46 local command 19:57:46 command="${1:-}" 19:57:46 if [ "$#" -gt 0 ]; then 19:57:46 shift 19:57:46 fi 19:57:46 19:57:46 case "$command" in 19:57:46 rehash|shell) 19:57:46 eval "$(pyenv "sh-$command" "$@")" 19:57:46 ;; 19:57:46 *) 19:57:46 command pyenv "$command" "$@" 19:57:46 ;; 19:57:46 esac 19:57:46 }' 19:57:46 +++ bash --norc -ec 'IFS=:; paths=($PATH); 19:57:46 for i in ${!paths[@]}; do 19:57:46 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 19:57:46 fi; done; 19:57:46 echo "${paths[*]}"' 19:57:46 ++ 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 19:57:46 ++ 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 19:57:46 ++ 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 19:57:46 ++ export PYENV_SHELL=bash 19:57:46 ++ PYENV_SHELL=bash 19:57:46 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 19:57:46 +++ complete -F _pyenv pyenv 19:57:46 ++ lf-pyver python3 19:57:46 ++ local py_version_xy=python3 19:57:46 ++ local py_version_xyz= 19:57:46 ++ pyenv versions 19:57:46 ++ local command 19:57:46 ++ command=versions 19:57:46 ++ '[' 1 -gt 0 ']' 19:57:46 ++ shift 19:57:46 ++ case "$command" in 19:57:46 ++ command pyenv versions 19:57:46 ++ sed 's/^[ *]* //' 19:57:46 ++ awk '{ print $1 }' 19:57:46 ++ grep -E '^[0-9.]*[0-9]$' 19:57:46 ++ [[ ! -s /tmp/.pyenv_versions ]] 19:57:46 +++ grep '^3' /tmp/.pyenv_versions 19:57:46 +++ sort -V 19:57:46 +++ tail -n 1 19:57:46 ++ py_version_xyz=3.11.10 19:57:46 ++ [[ -z 3.11.10 ]] 19:57:46 ++ echo 3.11.10 19:57:46 ++ return 0 19:57:46 + pyenv local 3.11.10 19:57:46 + local command 19:57:46 + command=local 19:57:46 + '[' 2 -gt 0 ']' 19:57:46 + shift 19:57:46 + case "$command" in 19:57:46 + command pyenv local 3.11.10 19:57:46 + for arg in "$@" 19:57:46 + case $arg in 19:57:46 + pkg_list+='tox ' 19:57:46 + for arg in "$@" 19:57:46 + case $arg in 19:57:46 + pkg_list+='virtualenv ' 19:57:46 + for arg in "$@" 19:57:46 + case $arg in 19:57:46 + pkg_list+='urllib3~=1.26.15 ' 19:57:46 + [[ -f /tmp/.toxenv ]] 19:57:46 + [[ ! -f /tmp/.toxenv ]] 19:57:46 + [[ -n '' ]] 19:57:46 + python3 -m venv /tmp/venv-7H2q 19:57:50 + echo 'lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-7H2q' 19:57:50 lf-activate-venv(): INFO: Creating python3 venv at /tmp/venv-7H2q 19:57:50 + echo /tmp/venv-7H2q 19:57:50 + echo 'lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv' 19:57:50 lf-activate-venv(): INFO: Save venv in file: /tmp/.toxenv 19:57:50 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 19:57:50 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 19:57:50 + local 'pip_opts=--upgrade --quiet' 19:57:50 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 19:57:50 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 19:57:50 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 19:57:50 + [[ -n '' ]] 19:57:50 + [[ -n '' ]] 19:57:50 + lf-venv-pip-install /tmp/venv-7H2q/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 19:57:50 + local venv_python=/tmp/venv-7H2q/bin/python3 19:57:50 + shift 19:57:50 + local upstream=https://pypi.org/simple 19:57:50 + /tmp/venv-7H2q/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 19:57:54 + return 0 19:57:54 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 19:57:54 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 19:57:54 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 19:57:54 + lf-venv-pip-install /tmp/venv-7H2q/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 19:57:54 + local venv_python=/tmp/venv-7H2q/bin/python3 19:57:54 + shift 19:57:54 + local upstream=https://pypi.org/simple 19:57:54 + /tmp/venv-7H2q/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 19:57:56 + return 0 19:57:56 + type python3 19:57:56 + true 19:57:56 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-7H2q/bin to PATH' 19:57:56 lf-activate-venv(): INFO: Adding /tmp/venv-7H2q/bin to PATH 19:57:56 + PATH=/tmp/venv-7H2q/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 19:57:56 + return 0 19:57:56 + python3 --version 19:57:56 Python 3.11.10 19:57:56 + python3 -m pip --version 19:57:56 pip 26.2.1 from /tmp/venv-7H2q/lib/python3.11/site-packages/pip (python 3.11) 19:57:56 + python3 -m pip freeze 19:57:56 cachetools==7.1.8 19:57:56 colorama==0.4.6 19:57:56 distlib==0.4.3 19:57:56 filelock==3.32.5 19:57:56 packaging==26.3 19:57:56 platformdirs==4.11.7 19:57:56 pluggy==1.6.0 19:57:56 pyproject-api==1.11.0 19:57:56 python-discovery==1.6.0 19:57:56 tomli_w==1.2.0 19:57:56 tox==4.61.2 19:57:56 typing_extensions==4.16.0 19:57:56 urllib3==1.26.20 19:57:56 virtualenv==21.7.8 19:57:56 [transportpce-tox-verify-titanium] $ /bin/sh -xe /tmp/jenkins1611291940231959319.sh 19:57:56 [EnvInject] - Injecting environment variables from a build step. 19:57:56 [EnvInject] - Injecting as environment variables the properties content 19:57:56 PARALLEL=True 19:57:56 19:57:56 [EnvInject] - Variables injected successfully. 19:57:56 [transportpce-tox-verify-titanium] $ /bin/bash -l /tmp/jenkins10119177628822725823.sh 19:57:56 ---> tox-run.sh 19:57:56 + 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 19:57:56 + ARCHIVE_TOX_DIR=/w/workspace/transportpce-tox-verify-titanium/archives/tox 19:57:56 + ARCHIVE_DOC_DIR=/w/workspace/transportpce-tox-verify-titanium/archives/docs 19:57:56 + mkdir -p /w/workspace/transportpce-tox-verify-titanium/archives/tox 19:57:56 + cd /w/workspace/transportpce-tox-verify-titanium/. 19:57:56 + source /home/jenkins/lf-env.sh 19:57:56 + lf-activate-venv --venv-file /tmp/.toxenv tox virtualenv urllib3~=1.26.15 19:57:56 ++ mktemp -d /tmp/venv-XXXX 19:57:56 + lf_venv=/tmp/venv-KJKk 19:57:56 + local venv_file=/tmp/.os_lf_venv 19:57:56 + local python=python3 19:57:56 + local options 19:57:56 + local set_path=true 19:57:56 + local install_args= 19:57:56 ++ 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 19:57:56 + options=' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 19:57:56 + eval set -- ' --venv-file '\''/tmp/.toxenv'\'' -- '\''tox'\'' '\''virtualenv'\'' '\''urllib3~=1.26.15'\''' 19:57:56 ++ set -- --venv-file /tmp/.toxenv -- tox virtualenv urllib3~=1.26.15 19:57:56 + true 19:57:56 + case $1 in 19:57:56 + venv_file=/tmp/.toxenv 19:57:56 + shift 2 19:57:56 + true 19:57:56 + case $1 in 19:57:56 + shift 19:57:56 + break 19:57:56 + case $python in 19:57:56 + local pkg_list= 19:57:56 + [[ -d /opt/pyenv ]] 19:57:56 + echo 'Setup pyenv:' 19:57:56 Setup pyenv: 19:57:56 + export PYENV_ROOT=/opt/pyenv 19:57:56 + PYENV_ROOT=/opt/pyenv 19:57:56 + 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 19:57:56 + 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 19:57:56 + pyenv versions 19:57:56 system 19:57:56 3.8.20 19:57:56 3.9.20 19:57:56 3.10.15 19:57:56 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-titanium/.python-version) 19:57:56 + command -v pyenv 19:57:56 ++ pyenv init - --no-rehash 19:57:56 + eval 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); 19:57:56 for i in ${!paths[@]}; do 19:57:56 if [[ ${paths[i]} == "'\'''\''/opt/pyenv/shims'\'''\''" ]]; then unset '\''\'\'''\''paths[i]'\''\'\'''\''; 19:57:56 fi; done; 19:57:56 echo "${paths[*]}"'\'')" 19:57:56 export PATH="/opt/pyenv/shims:${PATH}" 19:57:56 export PYENV_SHELL=bash 19:57:56 source '\''/opt/pyenv/libexec/../completions/pyenv.bash'\'' 19:57:56 pyenv() { 19:57:56 local command 19:57:56 command="${1:-}" 19:57:56 if [ "$#" -gt 0 ]; then 19:57:56 shift 19:57:56 fi 19:57:56 19:57:56 case "$command" in 19:57:56 rehash|shell) 19:57:56 eval "$(pyenv "sh-$command" "$@")" 19:57:56 ;; 19:57:56 *) 19:57:56 command pyenv "$command" "$@" 19:57:56 ;; 19:57:56 esac 19:57:56 }' 19:57:56 +++ bash --norc -ec 'IFS=:; paths=($PATH); 19:57:56 for i in ${!paths[@]}; do 19:57:56 if [[ ${paths[i]} == "/opt/pyenv/shims" ]]; then unset '\''paths[i]'\''; 19:57:56 fi; done; 19:57:56 echo "${paths[*]}"' 19:57:56 ++ 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 19:57:56 ++ 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 19:57:56 ++ 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 19:57:56 ++ export PYENV_SHELL=bash 19:57:56 ++ PYENV_SHELL=bash 19:57:56 ++ source /opt/pyenv/libexec/../completions/pyenv.bash 19:57:56 +++ complete -F _pyenv pyenv 19:57:56 ++ lf-pyver python3 19:57:56 ++ local py_version_xy=python3 19:57:56 ++ local py_version_xyz= 19:57:56 ++ pyenv versions 19:57:56 ++ local command 19:57:56 ++ command=versions 19:57:56 ++ '[' 1 -gt 0 ']' 19:57:56 ++ shift 19:57:56 ++ case "$command" in 19:57:56 ++ command pyenv versions 19:57:56 ++ sed 's/^[ *]* //' 19:57:56 ++ grep -E '^[0-9.]*[0-9]$' 19:57:56 ++ awk '{ print $1 }' 19:57:57 ++ [[ ! -s /tmp/.pyenv_versions ]] 19:57:57 +++ grep '^3' /tmp/.pyenv_versions 19:57:57 +++ sort -V 19:57:57 +++ tail -n 1 19:57:57 ++ py_version_xyz=3.11.10 19:57:57 ++ [[ -z 3.11.10 ]] 19:57:57 ++ echo 3.11.10 19:57:57 ++ return 0 19:57:57 + pyenv local 3.11.10 19:57:57 + local command 19:57:57 + command=local 19:57:57 + '[' 2 -gt 0 ']' 19:57:57 + shift 19:57:57 + case "$command" in 19:57:57 + command pyenv local 3.11.10 19:57:57 + for arg in "$@" 19:57:57 + case $arg in 19:57:57 + pkg_list+='tox ' 19:57:57 + for arg in "$@" 19:57:57 + case $arg in 19:57:57 + pkg_list+='virtualenv ' 19:57:57 + for arg in "$@" 19:57:57 + case $arg in 19:57:57 + pkg_list+='urllib3~=1.26.15 ' 19:57:57 + [[ -f /tmp/.toxenv ]] 19:57:57 ++ cat /tmp/.toxenv 19:57:57 + lf_venv=/tmp/venv-7H2q 19:57:57 + echo 'lf-activate-venv(): INFO: Reuse venv:/tmp/venv-7H2q from' file:/tmp/.toxenv 19:57:57 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-7H2q from file:/tmp/.toxenv 19:57:57 + echo 'lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv)' 19:57:57 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 19:57:57 + local 'pip_opts=--upgrade --quiet' 19:57:57 + pip_opts='--upgrade --quiet --trusted-host pypi.org' 19:57:57 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org' 19:57:57 + pip_opts='--upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org' 19:57:57 + [[ -n '' ]] 19:57:57 + [[ -n '' ]] 19:57:57 + lf-venv-pip-install /tmp/venv-7H2q/bin/python3 --upgrade --quiet --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org pip 'setuptools<66' virtualenv 19:57:57 + local venv_python=/tmp/venv-7H2q/bin/python3 19:57:57 + shift 19:57:57 + local upstream=https://pypi.org/simple 19:57:57 + /tmp/venv-7H2q/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 19:57:58 + return 0 19:57:58 + [[ -z tox virtualenv urllib3~=1.26.15 ]] 19:57:58 + echo 'lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 ' 19:57:58 lf-activate-venv(): INFO: Installing additional packages: tox virtualenv urllib3~=1.26.15 19:57:58 + lf-venv-pip-install /tmp/venv-7H2q/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 19:57:58 + local venv_python=/tmp/venv-7H2q/bin/python3 19:57:58 + shift 19:57:58 + local upstream=https://pypi.org/simple 19:57:58 + /tmp/venv-7H2q/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 19:57:59 + return 0 19:57:59 + type python3 19:57:59 + true 19:57:59 + echo 'lf-activate-venv(): INFO: Adding /tmp/venv-7H2q/bin to PATH' 19:57:59 lf-activate-venv(): INFO: Adding /tmp/venv-7H2q/bin to PATH 19:57:59 + PATH=/tmp/venv-7H2q/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 19:57:59 + return 0 19:57:59 + [[ -d /opt/pyenv ]] 19:57:59 + echo '---> Setting up pyenv' 19:57:59 ---> Setting up pyenv 19:57:59 + export PYENV_ROOT=/opt/pyenv 19:57:59 + PYENV_ROOT=/opt/pyenv 19:57:59 + export PATH=/opt/pyenv/bin:/tmp/venv-7H2q/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 19:57:59 + PATH=/opt/pyenv/bin:/tmp/venv-7H2q/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 19:57:59 ++ pwd 19:57:59 + PYTHONPATH=/w/workspace/transportpce-tox-verify-titanium 19:57:59 + export PYTHONPATH 19:57:59 + export TOX_TESTENV_PASSENV=PYTHONPATH 19:57:59 + TOX_TESTENV_PASSENV=PYTHONPATH 19:57:59 + tox --version 19:57:59 4.61.2 from /tmp/venv-7H2q/lib/python3.11/site-packages/tox/__init__.py 19:57:59 + PARALLEL=True 19:57:59 + TOX_OPTIONS_LIST= 19:57:59 + [[ -n '' ]] 19:57:59 + case ${PARALLEL,,} in 19:57:59 + TOX_OPTIONS_LIST=' --parallel auto --parallel-live' 19:57:59 + tee -a /w/workspace/transportpce-tox-verify-titanium/archives/tox/tox.log 19:57:59 + tox --parallel auto --parallel-live 19:58:01 checkbashisms: freeze> python -m pip freeze --all 19:58:01 docs: install_deps> python -I -m pip install -r docs/requirements.txt 19:58:01 buildcontroller: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:01 docs-linkcheck: install_deps> python -I -m pip install -r docs/requirements.txt 19:58:01 checkbashisms: pip==26.2.1,setuptools==84.0.0 19:58:01 checkbashisms: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./fixCIcentOS8reposMirrors.sh 19:58:01 checkbashisms: commands[1] /w/workspace/transportpce-tox-verify-titanium/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)' 19:58:01 checkbashisms: commands[2] /w/workspace/transportpce-tox-verify-titanium/tests> find . -not -path '*/\.*' -name '*.sh' -exec checkbashisms -f '{}' + 19:58:02 checkbashisms: OK ✔ in 3.13 seconds 19:58:02 pre-commit: install_deps> python -I -m pip install pre-commit 19:58:05 pre-commit: freeze> python -m pip freeze --all 19:58:05 pre-commit: cfgv==3.5.0,distlib==0.4.3,filelock==3.32.5,identify==2.6.19,nodeenv==1.10.0,pip==26.2.1,platformdirs==4.11.7,pre_commit==4.6.2,python-discovery==1.6.0,PyYAML==6.0.3,setuptools==84.0.0,virtualenv==21.7.8 19:58:05 pre-commit: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./fixCIcentOS8reposMirrors.sh 19:58:05 pre-commit: commands[1] /w/workspace/transportpce-tox-verify-titanium/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)' 19:58:05 /usr/bin/cpan 19:58:05 pre-commit: commands[2] /w/workspace/transportpce-tox-verify-titanium/tests> pre-commit run --all-files --show-diff-on-failure 19:58:05 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 19:58:05 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 19:58:05 [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 19:58:06 [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. 19:58:06 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint. 19:58:06 [INFO] Initializing environment for https://github.com/jorisroovers/gitlint:./gitlint-core[trusted-deps]. 19:58:07 [INFO] Initializing environment for https://github.com/Lucas-C/pre-commit-hooks. 19:58:07 buildcontroller: freeze> python -m pip freeze --all 19:58:08 buildcontroller: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:58:08 buildcontroller: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./build_controller.sh 19:58:08 + update-java-alternatives -l 19:58:08 java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 19:58:08 java-1.17.0-openjdk-amd64 1711 /usr/lib/jvm/java-1.17.0-openjdk-amd64 19:58:08 java-1.21.0-openjdk-amd64 2111 /usr/lib/jvm/java-1.21.0-openjdk-amd64 19:58:08 + sudo update-java-alternatives -s java-1.21.0-openjdk-amd64 19:58:08 [INFO] Initializing environment for https://github.com/pre-commit/mirrors-autopep8. 19:58:08 update-alternatives: error: no alternatives for jaotc 19:58:08 update-alternatives: error: no alternatives for rmic 19:58:08 + + sed -n ;s/.* version "\(.*\)\.\(.*\)\..*".*$/\1/p; 19:58:08 java -version 19:58:08 21 19:58:08 + JAVA_VER=21 19:58:08 + echo 21 19:58:08 + sed -n ;s/javac \(.*\)\.\(.*\)\..*.*$/\1/p; 19:58:08 + javac -version 19:58:08 21 19:58:08 ok, java is 21 or newer 19:58:08 + JAVAC_VER=21 19:58:08 + echo 21 19:58:08 + [ 21 -ge 21 ] 19:58:08 + [ 21 -ge 21 ] 19:58:08 + echo ok, java is 21 or newer 19:58:08 + wget -nv https://dlcdn.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.tar.gz -P /tmp 19:58:08 2026-09-02 19:58:08 URL:https://dlcdn.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.tar.gz [9278065/9278065] -> "/tmp/apache-maven-3.9.16-bin.tar.gz" [1] 19:58:08 + sudo mkdir -p /opt 19:58:13 + sudo tar xf /tmp/apache-maven-3.9.16-bin.tar.gz -C /opt 19:58:13 docs: freeze> python -m pip freeze --all 19:58:13 [INFO] Initializing environment for https://github.com/perltidy/perltidy. 19:58:13 docs-linkcheck: freeze> python -m pip freeze --all 19:58:14 + sudo ln -s /opt/apache-maven-3.9.16 /opt/maven 19:58:14 + sudo ln -s /opt/maven/bin/mvn /usr/bin/mvn 19:58:14 + mvn --version 19:58:14 docs: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.7.22,charset-normalizer==3.5.1,deepmerge==3.0.1,docutils==0.22.4,idna==3.19,imagesize==2.0.1,Jinja2==3.1.6,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,jsonschema_rs==0.37.4,lfdocs_conf==0.11.0,MarkupSafe==3.0.3,minijinja==2.24.0,mistune==3.3.4,packaging==26.3,picobox==4.0.0,pip==26.2.1,Pygments==2.21.0,PyYAML==6.0.3,referencing==0.37.0,requests==2.34.2,requests-file==2.1.0,roman-numerals==4.1.0,rpds-py==2026.6.3,setuptools==84.0.0,snowballstemmer==3.1.1,Sphinx==9.0.4,sphinx-data-viewer==0.1.5,sphinx-needs==8.4.0,sphinx-tabs==3.5.0,sphinx_mdinclude==0.6.2,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-httpdomain==2.0.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-mermaid==2.1.1,sphinxcontrib-openapi==0.9.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-serializinghtml==2.0.0,typing_extensions==4.16.0,urllib3==2.7.0 19:58:14 docs: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> sphinx-build -q -W --keep-going -b html -n -d /w/workspace/transportpce-tox-verify-titanium/.tox/docs/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-titanium/docs/_build/html 19:58:14 docs-linkcheck: alabaster==1.0.0,attrs==26.1.0,babel==2.18.0,certifi==2026.7.22,charset-normalizer==3.5.1,deepmerge==3.0.1,docutils==0.22.4,idna==3.19,imagesize==2.0.1,Jinja2==3.1.6,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,jsonschema_rs==0.37.4,lfdocs_conf==0.11.0,MarkupSafe==3.0.3,minijinja==2.24.0,mistune==3.3.4,packaging==26.3,picobox==4.0.0,pip==26.2.1,Pygments==2.21.0,PyYAML==6.0.3,referencing==0.37.0,requests==2.34.2,requests-file==2.1.0,roman-numerals==4.1.0,rpds-py==2026.6.3,setuptools==84.0.0,snowballstemmer==3.1.1,Sphinx==9.0.4,sphinx-data-viewer==0.1.5,sphinx-needs==8.4.0,sphinx-tabs==3.5.0,sphinx_mdinclude==0.6.2,sphinx_rtd_theme==3.1.0,sphinxcontrib-applehelp==2.0.0,sphinxcontrib-devhelp==2.0.0,sphinxcontrib-htmlhelp==2.1.0,sphinxcontrib-httpdomain==2.0.0,sphinxcontrib-jquery==4.1,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-mermaid==2.1.1,sphinxcontrib-openapi==0.9.0,sphinxcontrib-plantuml==0.31,sphinxcontrib-qthelp==2.0.0,sphinxcontrib-serializinghtml==2.0.0,typing_extensions==4.16.0,urllib3==2.7.0 19:58:14 docs-linkcheck: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> sphinx-build -q -b linkcheck -d /w/workspace/transportpce-tox-verify-titanium/.tox/docs-linkcheck/tmp/doctrees ../docs/ /w/workspace/transportpce-tox-verify-titanium/docs/_build/linkcheck 19:58:14 Apache Maven 3.9.16 (2bdd9fddda4b155ebf8000e807eb73fd829a51d5) 19:58:14 Maven home: /opt/maven 19:58:14 Java version: 21.0.12, vendor: Ubuntu, runtime: /usr/lib/jvm/java-21-openjdk-amd64 19:58:14 Default locale: en, platform encoding: UTF-8 19:58:14 OS name: "linux", version: "5.15.0-190-generic", arch: "amd64", family: "unix" 19:58:14 NOTE: Picked up JDK_JAVA_OPTIONS: 19:58:14 --add-opens=java.base/java.io=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.lang=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.net=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.nio=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.nio.file=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.util=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.util.jar=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.util.stream=ALL-UNNAMED 19:58:14 --add-opens=java.base/java.util.zip=ALL-UNNAMED 19:58:14 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 19:58:14 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 19:58:14 -Xlog:disable 19:58:15 [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 19:58:15 [INFO] Once installed this environment will be reused. 19:58:15 [INFO] This may take a few minutes... 19:58:17 docs: OK ✔ in 17.32 seconds 19:58:17 pylint: install_deps> python -I -m pip install 'pylint>=2.6.0' 19:58:19 docs-linkcheck: OK ✔ in 18.61 seconds 19:58:19 pylint: freeze> python -m pip freeze --all 19:58:20 pylint: astroid==4.0.4,dill==0.4.1,isort==9.0.1,mccabe==0.7.0,mypy_extensions==1.1.0,pip==26.2.1,platformdirs==4.11.7,pylint==4.0.8,setuptools==84.0.0,tomlkit==0.15.1 19:58:20 pylint: commands[0] /w/workspace/transportpce-tox-verify-titanium/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}$' '{}' + 19:58:20 [INFO] Installing environment for https://github.com/Lucas-C/pre-commit-hooks. 19:58:20 [INFO] Once installed this environment will be reused. 19:58:20 [INFO] This may take a few minutes... 19:58:26 [INFO] Installing environment for https://github.com/pre-commit/mirrors-autopep8. 19:58:26 [INFO] Once installed this environment will be reused. 19:58:26 [INFO] This may take a few minutes... 19:58:29 [ERROR] [ERROR] Some problems were encountered while processing the POMs: 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): Could not find artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) @ line 30, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 41, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 45, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 49, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 53, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 57, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 61, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 65, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 69, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 73, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 77, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 28, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 78, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 82, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 86, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 30, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 48, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 52, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-6.1.0:jar is missing. @ line 56, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 60, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 64, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 78, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 63, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 67, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 71, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 75, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 79, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 83, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 87, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 91, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 95, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 99, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 28, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 50, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 74, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 32, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 168, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 33, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 44, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 48, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 52, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 33, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 51, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 55, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 59, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 63, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 67, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 71, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 75, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 79, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 83, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 42, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 119, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 29, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 40, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 44, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 48, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 35, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-openroadm-models:xml:features is missing. @ line 60, column 17 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 34, column 19 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-tapi-2.4.0-models:xml:features is missing. @ line 59, column 17 19:58:29 @ 19:58:29 [ERROR] The build could not read 14 projects -> [Help 1] 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-api:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/api/pom.xml) has 11 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): Could not find artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) @ line 30, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 41, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 45, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 49, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 53, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 57, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 61, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 65, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 69, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 73, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 77, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-common:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/common/pom.xml) has 12 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 28, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 78, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 82, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 86, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:test-common:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/test-common/pom.xml) has 6 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 30, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 48, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 52, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-6.1.0:jar is missing. @ line 56, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 60, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 64, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-renderer:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/renderer/pom.xml) has 11 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openconfig-240119:jar is missing. @ line 78, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-networkmodel:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/networkmodel/pom.xml) has 11 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 63, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 67, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 71, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 75, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 79, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 83, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 87, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 91, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 95, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 99, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-inventory:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/inventory/pom.xml) has 3 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 28, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-olm:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/olm/pom.xml) has 10 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 42, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-pce:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/pce/pom.xml) has 9 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 32, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 54, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 58, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 62, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 66, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 70, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 74, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 168, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-servicehandler:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/servicehandler/pom.xml) has 4 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 33, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 44, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 48, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 52, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-tapi:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/tapi/pom.xml) has 10 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 33, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 51, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 55, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 59, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 63, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 67, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 71, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 75, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 79, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 83, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-nbinotifications:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/nbinotifications/pom.xml) has 5 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 31, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 42, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 46, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 50, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 119, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:transportpce-dmaap-client:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/dmaap-client/pom.xml) has 4 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 29, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-6.1.0:jar is missing. @ line 40, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 44, column 17 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 48, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:odl-transportpce:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/features/odl-transportpce/pom.xml) has 2 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 35, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-openroadm-models:xml:features is missing. @ line 60, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] The project org.opendaylight.transportpce:odl-transportpce-tapi:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/features/odl-transportpce-tapi/pom.xml) has 2 errors 19:58:29 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced @ line 34, column 19 -> [Help 2] 19:58:29 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:odl-tapi-2.4.0-models:xml:features is missing. @ line 59, column 17 19:58:29 [ERROR] 19:58:29 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 19:58:29 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 19:58:29 [ERROR] 19:58:29 [ERROR] For more information about the errors and possible solutions, please read the following articles: 19:58:29 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 19:58:29 [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 19:58:29 buildcontroller: exit 1 (21.32 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./build_controller.sh pid=2740 19:58:30 buildcontroller: FAIL ✖ in 29.86 seconds 19:58:30 build_karaf_tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:30 build_karaf_tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:30 [INFO] Installing environment for https://github.com/perltidy/perltidy. 19:58:30 [INFO] Once installed this environment will be reused. 19:58:30 [INFO] This may take a few minutes... 19:58:39 19:58:39 ------------------------------------ 19:58:39 Your code has been rated at 10.00/10 19:58:39 19:58:39 trim trailing whitespace.................................................Passed 19:58:39 Tabs remover.............................................................Passed 19:58:39 autopep8.................................................................pylint: OK ✔ in 24.05 seconds 19:58:41 build_karaf_tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:43 Passed 19:58:43 perltidy.................................................................Passed 19:58:43 pre-commit: commands[3] /w/workspace/transportpce-tox-verify-titanium/tests> pre-commit run gitlint-ci --hook-stage manual 19:58:43 [WARNING] hook id `remove-tabs` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 19:58:43 [WARNING] hook id `perltidy` uses deprecated stage names (commit) which will be removed in a future version. run: `pre-commit migrate-config` to automatically fix this. 19:58:43 [INFO] Installing environment for https://github.com/jorisroovers/gitlint. 19:58:43 [INFO] Once installed this environment will be reused. 19:58:43 [INFO] This may take a few minutes... 19:58:45 build_karaf_tests121: freeze> python -m pip freeze --all 19:58:45 build_karaf_tests221: freeze> python -m pip freeze --all 19:58:45 build_karaf_tests121: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:58:45 build_karaf_tests121: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh 19:58:45 build karaf in karaf121 with ./karaf121.env 19:58:45 NOTE: Picked up JDK_JAVA_OPTIONS: 19:58:45 --add-opens=java.base/java.io=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.lang=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.net=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.nio=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.nio.file=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.util=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.util.jar=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.util.stream=ALL-UNNAMED 19:58:45 --add-opens=java.base/java.util.zip=ALL-UNNAMED 19:58:45 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 19:58:45 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 19:58:45 -Xlog:disable 19:58:45 build_karaf_tests221: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:58:45 build_karaf_tests221: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh 19:58:45 build karaf in karaf221 with ./karaf221.env 19:58:46 NOTE: Picked up JDK_JAVA_OPTIONS: 19:58:46 --add-opens=java.base/java.io=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.lang=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.net=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.nio=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.nio.file=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.util=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.util.jar=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.util.stream=ALL-UNNAMED 19:58:46 --add-opens=java.base/java.util.zip=ALL-UNNAMED 19:58:46 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 19:58:46 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 19:58:46 -Xlog:disable 19:58:49 build_karaf_tests71: freeze> python -m pip freeze --all 19:58:50 build_karaf_tests71: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:58:50 build_karaf_tests71: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh 19:58:50 build karaf in karaf71 with ./karaf71.env 19:58:50 NOTE: Picked up JDK_JAVA_OPTIONS: 19:58:50 --add-opens=java.base/java.io=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.lang=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.net=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.nio=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.nio.file=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.util=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.util.jar=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.util.stream=ALL-UNNAMED 19:58:50 --add-opens=java.base/java.util.zip=ALL-UNNAMED 19:58:50 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 19:58:50 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 19:58:50 -Xlog:disable 19:58:53 gitlint..................................................................Passed 19:58:54 pre-commit: OK ✔ in 50.95 seconds 19:58:54 build_karaf_tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:56 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:11.3.0-SNAPSHOT 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] Could not find artifact org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) 19:58:56 [ERROR] -> [Help 1] 19:58:56 [ERROR] 19:58:56 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 19:58:56 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 19:58:56 [ERROR] 19:58:56 [ERROR] For more information about the errors and possible solutions, please read the following articles: 19:58:56 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 19:58:56 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 19:58:56 build_karaf_tests121: exit 127 (10.92 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh pid=3496 19:58:56 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:11.3.0-SNAPSHOT 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:56 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:56 [ERROR] org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:56 [ERROR] -> [Help 1] 19:58:56 [ERROR] 19:58:56 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 19:58:56 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 19:58:56 [ERROR] 19:58:56 [ERROR] For more information about the errors and possible solutions, please read the following articles: 19:58:56 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 19:58:56 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 19:58:56 build_karaf_tests121: FAIL ✖ in 27.01 seconds 19:58:56 build_karaf_tests221: exit 127 (10.75 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh pid=3558 19:58:56 build_karaf_tests221: FAIL ✖ in 27.07 seconds 19:58:56 buildlighty: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:56 sims: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:58:57 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:11.3.0-SNAPSHOT 19:58:57 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:57 [ERROR] org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:57 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:57 [ERROR] org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:57 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:57 [ERROR] org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:57 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:57 [ERROR] org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:57 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT (runtime) 19:58:57 [ERROR] org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:58:57 [ERROR] -> [Help 1] 19:58:57 [ERROR] 19:58:57 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 19:58:57 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 19:58:57 [ERROR] 19:58:57 [ERROR] For more information about the errors and possible solutions, please read the following articles: 19:58:57 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 19:58:57 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 19:58:57 build_karaf_tests71: exit 127 (6.91 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh pid=3642 19:59:02 build_karaf_tests71: FAIL ✖ in 16.18 seconds 19:59:02 build_karaf_tests190: freeze> python -m pip freeze --all 19:59:02 build_karaf_tests190: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:59:02 build_karaf_tests190: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh 19:59:02 build karaf in karafoc with ./karafoc.env 19:59:02 NOTE: Picked up JDK_JAVA_OPTIONS: 19:59:02 --add-opens=java.base/java.io=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.lang=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.lang.invoke=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.lang.reflect=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.net=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.nio=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.nio.charset=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.nio.file=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.util=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.util.jar=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.util.stream=ALL-UNNAMED 19:59:02 --add-opens=java.base/java.util.zip=ALL-UNNAMED 19:59:02 --add-opens java.base/sun.nio.ch=ALL-UNNAMED 19:59:02 --add-opens java.base/sun.nio.fs=ALL-UNNAMED 19:59:02 -Xlog:disable 19:59:03 sims: freeze> python -m pip freeze --all 19:59:03 sims: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:59:03 sims: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./install_lightynode.sh 19:59:03 Using lighynode version 20.1.0.5 19:59:03 Installing lightynode device to ./lightynode/lightynode-openroadm-device directory 19:59:03 buildlighty: freeze> python -m pip freeze --all 19:59:04 buildlighty: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 19:59:04 buildlighty: commands[0] /w/workspace/transportpce-tox-verify-titanium/lighty> ./build.sh 19:59:04 NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED 19:59:06 [ERROR] Failed to execute goal on project transportpce-karaf: Could not resolve dependencies for project org.opendaylight.transportpce:transportpce-karaf:pom:11.3.0-SNAPSHOT 19:59:06 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT (runtime) 19:59:06 [ERROR] org.opendaylight.transportpce:odl-transportpce:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:59:06 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT (runtime) 19:59:06 [ERROR] org.opendaylight.transportpce:odl-transportpce-tapi:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:59:06 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT (runtime) 19:59:06 [ERROR] org.opendaylight.transportpce:odl-transportpce-inventory:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:59:06 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT (runtime) 19:59:06 [ERROR] org.opendaylight.transportpce:odl-transportpce-nbinotifications:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:59:06 [ERROR] dependency: org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT (runtime) 19:59:06 [ERROR] org.opendaylight.transportpce:odl-transportpce-dmaap-client:xml:features:11.3.0-SNAPSHOT was not found in https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of opendaylight-snapshot has elapsed or updates are forced 19:59:06 [ERROR] -> [Help 1] 19:59:06 [ERROR] 19:59:06 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 19:59:06 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 19:59:06 [ERROR] 19:59:06 [ERROR] For more information about the errors and possible solutions, please read the following articles: 19:59:06 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException 19:59:06 ./build_karaf_for_tests.sh: 23: ./target/assembly/ressources/post_install_for_tests.sh: not found 19:59:06 build_karaf_tests190: exit 127 (3.64 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./build_karaf_for_tests.sh pid=3798 19:59:06 build_karaf_tests190: FAIL ✖ in 12.75 seconds 19:59:06 testsPCE: install_deps> python -I -m pip install gnpy4tpce==2.4.7 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 19:59:07 [ERROR] [ERROR] Some problems were encountered while processing the POMs: 19:59:07 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): Could not find artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) @ line 33, column 19 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 51, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 55, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 59, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 63, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 67, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 71, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 75, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 79, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 83, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 87, column 17 19:59:07 @ 19:59:07 [ERROR] The build could not read 1 project -> [Help 1] 19:59:07 [ERROR] 19:59:07 [ERROR] The project io.lighty.controllers:tpce:11.3.0-SNAPSHOT (/w/workspace/transportpce-tox-verify-titanium/lighty/pom.xml) has 11 errors 19:59:07 [ERROR] Non-resolvable import POM: The following artifacts could not be resolved: org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT (absent): Could not find artifact org.opendaylight.transportpce.models:transportpce-models-artifacts:pom:22.3.2-SNAPSHOT in opendaylight-snapshot (https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/) @ line 33, column 19 -> [Help 2] 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-1.2.1:jar is missing. @ line 51, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-2.2.1:jar is missing. @ line 55, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-7.1.0:jar is missing. @ line 59, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-common-13.1.1:jar is missing. @ line 63, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-1.2.1:jar is missing. @ line 67, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-2.2.1:jar is missing. @ line 71, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-device-7.1.0:jar is missing. @ line 75, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-network-13.1.1:jar is missing. @ line 79, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:openroadm-service-13.1.1:jar is missing. @ line 83, column 17 19:59:07 [ERROR] 'dependencies.dependency.version' for org.opendaylight.transportpce.models:tapi-2.4.0:jar is missing. @ line 87, column 17 19:59:07 [ERROR] 19:59:07 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 19:59:07 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 19:59:07 [ERROR] 19:59:07 [ERROR] For more information about the errors and possible solutions, please read the following articles: 19:59:07 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 19:59:07 [ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException 19:59:07 unzip: cannot find or open target/tpce-bin.zip, target/tpce-bin.zip.zip or target/tpce-bin.zip.ZIP. 19:59:07 sims: OK ✔ in 10.63 seconds 19:59:07 buildlighty: exit 9 (3.41 seconds) /w/workspace/transportpce-tox-verify-titanium/lighty> ./build.sh pid=3883 19:59:51 buildlighty: FAIL ✖ in 10.95 seconds 19:59:51 testsPCE: freeze> python -m pip freeze --all 19:59:52 testsPCE: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,click==8.5.0,contourpy==1.3.3,cryptography==3.3.2,cycler==0.12.1,dict2xml==1.7.8,Flask==2.1.3,Flask-Injector==0.14.0,fonttools==4.64.0,gnpy4tpce==2.4.7,idna==3.19,iniconfig==2.3.0,injector==0.24.0,invoke==3.0.3,itsdangerous==2.2.0,Jinja2==3.1.6,kiwisolver==1.5.1,lxml==6.1.3,MarkupSafe==3.0.3,matplotlib==3.11.1,netconf-client==3.6.0,networkx==2.8.8,numpy==1.26.4,packaging==26.3,pandas==1.5.3,paramiko==5.0.0,pbr==5.11.1,pillow==12.3.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pyparsing==3.3.2,pytest==9.1.1,python-dateutil==2.9.0.post0,pytz==2026.3.post1,requests==2.34.2,scipy==1.17.1,setuptools==50.3.2,six==1.17.0,urllib3==2.7.0,Werkzeug==2.0.3,xlrd==1.2.0 19:59:52 testsPCE: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh pce 19:59:52 pytest -q transportpce_tests/pce/test01_pce.py 20:01:52 EEEEEEEEEEEEEEEEEEEE [100%] 20:01:55 ==================================== ERRORS ==================================== 20:01:55 _______ ERROR at setup of TestTransportPCEPce.test_01_load_port_mapping ________ 20:01:55 20:01:55 cls = 20:01:55 20:01:55 @classmethod 20:01:55 def setUpClass(cls): 20:01:55 # pylint: disable=bare-except 20:01:55 sample_files_parsed = False 20:01:55 time.sleep(20) 20:01:55 try: 20:01:55 TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 20:01:55 "..", "..", "sample_configs", "honeynode-topo.json") 20:01:55 with open(TOPO_BI_DIR_FILE, 'r', encoding='utf-8') as topo_bi_dir: 20:01:55 cls.simple_topo_bi_dir_data = topo_bi_dir.read() 20:01:55 20:01:55 TOPO_UNI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 20:01:55 "..", "..", "sample_configs", "NW-simple-topology.json") 20:01:55 20:01:55 with open(TOPO_UNI_DIR_FILE, 'r', encoding='utf-8') as topo_uni_dir: 20:01:55 cls.simple_topo_uni_dir_data = topo_uni_dir.read() 20:01:55 20:01:55 TOPO_UNI_DIR_COMPLEX_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 20:01:55 "..", "..", "sample_configs", "NW-for-test-5-4.json") 20:01:55 with open(TOPO_UNI_DIR_COMPLEX_FILE, 'r', encoding='utf-8') as topo_uni_dir_complex: 20:01:55 cls.complex_topo_uni_dir_data = topo_uni_dir_complex.read() 20:01:55 PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), 20:01:55 "..", "..", "sample_configs", "pce_portmapping_121.json") 20:01:55 with open(PORT_MAPPING_FILE, 'r', encoding='utf-8') as port_mapping: 20:01:55 cls.port_mapping_data = port_mapping.read() 20:01:55 sample_files_parsed = True 20:01:55 except PermissionError as err: 20:01:55 print("Permission Error when trying to read sample files\n", err) 20:01:55 sys.exit(2) 20:01:55 except FileNotFoundError as err: 20:01:55 print("File Not found Error when trying to read sample files\n", err) 20:01:55 sys.exit(2) 20:01:55 except: 20:01:55 print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) 20:01:55 sys.exit(2) 20:01:55 finally: 20:01:55 if sample_files_parsed: 20:01:55 print("sample files content loaded") 20:01:55 20:01:55 > cls.processes = test_utils.start_tpce() 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 20:01:55 transportpce_tests/pce/test01_pce.py:93: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 def start_tpce(): 20:01:55 if 'NO_ODL_STARTUP' in os.environ: 20:01:55 print('No OpenDaylight instance to start!') 20:01:55 return [] 20:01:55 print('starting OpenDaylight...') 20:01:55 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:01:55 process = start_lighty() 20:01:55 else: 20:01:55 process = start_karaf() 20:01:55 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:01:55 print('OpenDaylight started !') 20:01:55 else: 20:01:55 print('OpenDaylight failed to start !') 20:01:55 shutdown_process(process) 20:01:55 for pid in process_list: 20:01:55 shutdown_process(pid) 20:01:55 > sys.exit(1) 20:01:55 E SystemExit: 1 20:01:55 20:01:55 transportpce_tests/common/test_utils.py:232: SystemExit 20:01:55 ---------------------------- Captured stdout setup ----------------------------- 20:01:55 sample files content loaded 20:01:55 starting OpenDaylight... 20:01:55 starting KARAF (karaf) TransportPCE build... 20:01:55 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:01:55 ____ ERROR at setup of TestTransportPCEPce.test_02_load_simple_topology_bi _____ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f99565a72e0> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:55 ___________ ERROR at setup of TestTransportPCEPce.test_03_get_nodeId ___________ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f99565b74c0> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:55 ___________ ERROR at setup of TestTransportPCEPce.test_04_get_linkId ___________ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f9956573f60> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:55 ____ ERROR at setup of TestTransportPCEPce.test_05_path_computation_xpdr_bi ____ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f99565a72e0> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:55 ____ ERROR at setup of TestTransportPCEPce.test_06_path_computation_rdm_bi _____ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f9958a15120> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:55 ____ ERROR at setup of TestTransportPCEPce.test_07_load_simple_topology_uni ____ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f99565a72e0> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:55 ___________ ERROR at setup of TestTransportPCEPce.test_08_get_nodeId ___________ 20:01:55 20:01:55 cls = 20:01:55 func = . at 0x7f99565b5d00> 20:01:55 when = 'setup' 20:01:55 reraise = (, ) 20:01:55 20:01:55 @classmethod 20:01:55 def from_call( 20:01:55 cls, 20:01:55 func: Callable[[], TResult], 20:01:55 when: Literal["collect", "setup", "call", "teardown"], 20:01:55 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:55 ) -> CallInfo[TResult]: 20:01:55 """Call func, wrapping the result in a CallInfo. 20:01:55 20:01:55 :param func: 20:01:55 The function to call. Called without arguments. 20:01:55 :type func: Callable[[], _pytest.runner.TResult] 20:01:55 :param when: 20:01:55 The phase in which the function is called. 20:01:55 :param reraise: 20:01:55 Exception or exceptions that shall propagate if raised by the 20:01:55 function, instead of being wrapped in the CallInfo. 20:01:55 """ 20:01:55 excinfo = None 20:01:55 instant = timing.Instant() 20:01:55 try: 20:01:55 > result: TResult | None = func() 20:01:55 ^^^^^^ 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:55 lambda: runtest_hook(item=item, **kwds), 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:55 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:55 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:55 yield 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:55 return (yield) 20:01:55 ^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:55 item.session._setupstate.setup(item) 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:55 col.setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:55 super().setup() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:55 self._request._fillfixtures() 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:55 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:55 fixturedef = self._get_active_fixturedef(argname) 20:01:55 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:55 fixturedef.execute(request=subrequest) 20:01:55 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:55 20:01:55 self = 20:01:55 request = > 20:01:55 20:01:55 def execute(self, request: SubRequest) -> FixtureValue: 20:01:55 """Return the value of this fixture, executing it if not cached.""" 20:01:55 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:55 # This needs to be done before checking if we have a cached value, since 20:01:55 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:55 # parametrization, they finalize themselves and fixtures depending on it 20:01:55 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:55 # See #4871 20:01:55 requested_fixtures_that_should_finalize_us = [] 20:01:55 for argname in self.argnames: 20:01:55 fixturedef = request._get_active_fixturedef(argname) 20:01:55 # Saves requested fixtures in a list so we later can add our finalizer 20:01:55 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:55 # down first. This is generally handled by SetupState, but still currently 20:01:55 # needed when this fixture is not parametrized but depends on a parametrized 20:01:55 # fixture. 20:01:55 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:55 20:01:55 # Check for (and return) cached value/exception. 20:01:55 if self.cached_result is not None: 20:01:55 request_cache_key = self.cache_key(request) 20:01:55 cache_key = self.cached_result[1] 20:01:55 try: 20:01:55 # Attempt to make a normal == check: this might fail for objects 20:01:55 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:55 cache_hit = bool(request_cache_key == cache_key) 20:01:55 except (ValueError, RuntimeError): 20:01:55 # If the comparison raises, use 'is' as fallback. 20:01:55 cache_hit = request_cache_key is cache_key 20:01:55 20:01:55 if cache_hit: 20:01:55 if self.cached_result[2] is not None: 20:01:55 exc, exc_tb = self.cached_result[2] 20:01:55 raise exc.with_traceback(exc_tb) 20:01:55 else: 20:01:55 return self.cached_result[0] 20:01:55 # We have a previous but differently parametrized fixture instance 20:01:55 # so we need to tear it down before creating a new one. 20:01:55 self.finish(request) 20:01:55 assert self.cached_result is None 20:01:55 20:01:55 # Add finalizer to requested fixtures we saved previously. 20:01:55 # We make sure to do this after checking for cached value to avoid 20:01:55 # adding our finalizer multiple times. (#12135) 20:01:55 finalizer = functools.partial(self.finish, request=request) 20:01:55 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:55 parent_fixture.addfinalizer(finalizer) 20:01:55 20:01:55 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:55 # which is executed last. 20:01:55 > assert not self._finalizers 20:01:55 ^^^^^^^^^^^^^^^^^^^^ 20:01:55 E AssertionError 20:01:55 20:01:55 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ___________ ERROR at setup of TestTransportPCEPce.test_09_get_linkId ___________ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b7a60> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ___ ERROR at setup of TestTransportPCEPce.test_10_path_computation_xpdr_uni ____ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f9956573f60> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ____ ERROR at setup of TestTransportPCEPce.test_11_path_computation_rdm_uni ____ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b7b00> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 _____ ERROR at setup of TestTransportPCEPce.test_12_load_complex_topology ______ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b7380> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ___________ ERROR at setup of TestTransportPCEPce.test_13_get_nodeId ___________ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f9956573f60> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 _____ ERROR at setup of TestTransportPCEPce.test_14_fail_path_computation ______ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b6fc0> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ___ ERROR at setup of TestTransportPCEPce.test_15_success1_path_computation ____ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b5da0> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ___ ERROR at setup of TestTransportPCEPce.test_16_success2_path_computation ____ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b7d80> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 ___ ERROR at setup of TestTransportPCEPce.test_17_success3_path_computation ____ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b7b00> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 _ ERROR at setup of TestTransportPCEPce.test_18_path_computation_before_oms_attribute_deletion _ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f9956573e20> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 _ ERROR at setup of TestTransportPCEPce.test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link _ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f9956573ce0> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 _ ERROR at setup of TestTransportPCEPce.test_20_path_computation_after_oms_attribute_deletion _ 20:01:56 20:01:56 cls = 20:01:56 func = . at 0x7f99565b7c40> 20:01:56 when = 'setup' 20:01:56 reraise = (, ) 20:01:56 20:01:56 @classmethod 20:01:56 def from_call( 20:01:56 cls, 20:01:56 func: Callable[[], TResult], 20:01:56 when: Literal["collect", "setup", "call", "teardown"], 20:01:56 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:01:56 ) -> CallInfo[TResult]: 20:01:56 """Call func, wrapping the result in a CallInfo. 20:01:56 20:01:56 :param func: 20:01:56 The function to call. Called without arguments. 20:01:56 :type func: Callable[[], _pytest.runner.TResult] 20:01:56 :param when: 20:01:56 The phase in which the function is called. 20:01:56 :param reraise: 20:01:56 Exception or exceptions that shall propagate if raised by the 20:01:56 function, instead of being wrapped in the CallInfo. 20:01:56 """ 20:01:56 excinfo = None 20:01:56 instant = timing.Instant() 20:01:56 try: 20:01:56 > result: TResult | None = func() 20:01:56 ^^^^^^ 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:361: 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:01:56 lambda: runtest_hook(item=item, **kwds), 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:01:56 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:01:56 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:01:56 yield 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:01:56 return (yield) 20:01:56 ^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:01:56 item.session._setupstate.setup(item) 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:01:56 col.setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:01:56 super().setup() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:01:56 self._request._fillfixtures() 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:01:56 item.funcargs[argname] = self.getfixturevalue(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:01:56 fixturedef = self._get_active_fixturedef(argname) 20:01:56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:01:56 fixturedef.execute(request=subrequest) 20:01:56 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:01:56 20:01:56 self = 20:01:56 request = > 20:01:56 20:01:56 def execute(self, request: SubRequest) -> FixtureValue: 20:01:56 """Return the value of this fixture, executing it if not cached.""" 20:01:56 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:01:56 # This needs to be done before checking if we have a cached value, since 20:01:56 # if a dependent fixture has their cache invalidated, e.g. due to 20:01:56 # parametrization, they finalize themselves and fixtures depending on it 20:01:56 # (which will likely include this fixture) setting `self.cached_result = None`. 20:01:56 # See #4871 20:01:56 requested_fixtures_that_should_finalize_us = [] 20:01:56 for argname in self.argnames: 20:01:56 fixturedef = request._get_active_fixturedef(argname) 20:01:56 # Saves requested fixtures in a list so we later can add our finalizer 20:01:56 # to them, ensuring that if a requested fixture gets torn down we get torn 20:01:56 # down first. This is generally handled by SetupState, but still currently 20:01:56 # needed when this fixture is not parametrized but depends on a parametrized 20:01:56 # fixture. 20:01:56 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:01:56 20:01:56 # Check for (and return) cached value/exception. 20:01:56 if self.cached_result is not None: 20:01:56 request_cache_key = self.cache_key(request) 20:01:56 cache_key = self.cached_result[1] 20:01:56 try: 20:01:56 # Attempt to make a normal == check: this might fail for objects 20:01:56 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:01:56 cache_hit = bool(request_cache_key == cache_key) 20:01:56 except (ValueError, RuntimeError): 20:01:56 # If the comparison raises, use 'is' as fallback. 20:01:56 cache_hit = request_cache_key is cache_key 20:01:56 20:01:56 if cache_hit: 20:01:56 if self.cached_result[2] is not None: 20:01:56 exc, exc_tb = self.cached_result[2] 20:01:56 raise exc.with_traceback(exc_tb) 20:01:56 else: 20:01:56 return self.cached_result[0] 20:01:56 # We have a previous but differently parametrized fixture instance 20:01:56 # so we need to tear it down before creating a new one. 20:01:56 self.finish(request) 20:01:56 assert self.cached_result is None 20:01:56 20:01:56 # Add finalizer to requested fixtures we saved previously. 20:01:56 # We make sure to do this after checking for cached value to avoid 20:01:56 # adding our finalizer multiple times. (#12135) 20:01:56 finalizer = functools.partial(self.finish, request=request) 20:01:56 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:01:56 parent_fixture.addfinalizer(finalizer) 20:01:56 20:01:56 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:01:56 # which is executed last. 20:01:56 > assert not self._finalizers 20:01:56 ^^^^^^^^^^^^^^^^^^^^ 20:01:56 E AssertionError 20:01:56 20:01:56 ../.tox/testsPCE/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:01:56 =========================== short test summary info ============================ 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_01_load_port_mapping 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_02_load_simple_topology_bi 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_03_get_nodeId 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_04_get_linkId 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_05_path_computation_xpdr_bi 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_06_path_computation_rdm_bi 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_07_load_simple_topology_uni 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_08_get_nodeId 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_09_get_linkId 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_10_path_computation_xpdr_uni 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_11_path_computation_rdm_uni 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_12_load_complex_topology 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_13_get_nodeId 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_14_fail_path_computation 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_15_success1_path_computation 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_16_success2_path_computation 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_17_success3_path_computation 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_18_path_computation_before_oms_attribute_deletion 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_19_delete_oms_attribute_in_openroadm13toopenroadm12_link 20:01:56 ERROR transportpce_tests/pce/test01_pce.py::TestTransportPCEPce::test_20_path_computation_after_oms_attribute_deletion 20:01:56 20 errors in 123.79s (0:02:03) 20:01:56 testsPCE: exit 1 (124.08 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh pce pid=3993 20:01:56 testsPCE: FAIL ✖ in 2 minutes 49.62 seconds 20:01:56 tests190: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 20:01:56 tests121: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 20:01:56 tests_tapi: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 20:02:02 tests121: freeze> python -m pip freeze --all 20:02:03 tests190: freeze> python -m pip freeze --all 20:02:03 tests121: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 20:02:03 tests121: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh 1.2.1 20:02:03 using environment variables from ./karaf121.env 20:02:03 pytest -q transportpce_tests/1.2.1/test01_portmapping.py 20:02:03 tests_tapi: freeze> python -m pip freeze --all 20:02:03 tests190: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 20:02:03 tests190: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh oc 20:02:03 using environment variables from ./karafoc.env 20:02:03 pytest -q transportpce_tests/oc/test01_portmapping.py 20:02:03 tests_tapi: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 20:02:03 tests_tapi: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh tapi 20:02:03 using environment variables from ./karaf221.env 20:02:03 pytest -q transportpce_tests/tapi/test01_abstracted_topology.py 20:03:43 EEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 20:03:45 ==================================== ERRORS ==================================== 20:03:45 __ ERROR at setup of TestTransportPCEPortmapping.test_01_meta_data_insertion ___ 20:03:45 20:03:45 cls = 20:03:45 20:03:45 @classmethod 20:03:45 def setUpClass(cls): 20:03:45 > cls.processes = test_utils.start_tpce() 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 20:03:45 transportpce_tests/oc/test01_portmapping.py:29: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 def start_tpce(): 20:03:45 if 'NO_ODL_STARTUP' in os.environ: 20:03:45 print('No OpenDaylight instance to start!') 20:03:45 return [] 20:03:45 print('starting OpenDaylight...') 20:03:45 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:03:45 process = start_lighty() 20:03:45 else: 20:03:45 process = start_karaf() 20:03:45 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:03:45 print('OpenDaylight started !') 20:03:45 else: 20:03:45 print('OpenDaylight failed to start !') 20:03:45 shutdown_process(process) 20:03:45 for pid in process_list: 20:03:45 shutdown_process(pid) 20:03:45 > sys.exit(1) 20:03:45 E SystemExit: 1 20:03:45 20:03:45 transportpce_tests/common/test_utils.py:232: SystemExit 20:03:45 ---------------------------- Captured stdout setup ----------------------------- 20:03:45 starting OpenDaylight... 20:03:45 starting KARAF (karafoc) TransportPCE build... 20:03:45 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_02_catlog_input_insertion _ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079f8d0fe0> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_device_connection _ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079f8f36a0> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_04_xpdr_device_connected __ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079ffdf240> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_05_xpdr_portmapping_info __ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f07a1082fc0> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK5 _ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079f8f13a0> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079f8d1120> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 __ ERROR at setup of TestTransportPCEPortmapping.test_08_mpdr_switching_pool ___ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f07a1fd8400> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 ___ ERROR at setup of TestTransportPCEPortmapping.test_09_check_mccapprofile ___ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079ffdf240> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 20:03:45 20:03:45 cls = 20:03:45 func = . at 0x7f079f8d1120> 20:03:45 when = 'setup' 20:03:45 reraise = (, ) 20:03:45 20:03:45 @classmethod 20:03:45 def from_call( 20:03:45 cls, 20:03:45 func: Callable[[], TResult], 20:03:45 when: Literal["collect", "setup", "call", "teardown"], 20:03:45 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:45 ) -> CallInfo[TResult]: 20:03:45 """Call func, wrapping the result in a CallInfo. 20:03:45 20:03:45 :param func: 20:03:45 The function to call. Called without arguments. 20:03:45 :type func: Callable[[], _pytest.runner.TResult] 20:03:45 :param when: 20:03:45 The phase in which the function is called. 20:03:45 :param reraise: 20:03:45 Exception or exceptions that shall propagate if raised by the 20:03:45 function, instead of being wrapped in the CallInfo. 20:03:45 """ 20:03:45 excinfo = None 20:03:45 instant = timing.Instant() 20:03:45 try: 20:03:45 > result: TResult | None = func() 20:03:45 ^^^^^^ 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:45 lambda: runtest_hook(item=item, **kwds), 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:45 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:45 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:45 yield 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:45 return (yield) 20:03:45 ^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:45 item.session._setupstate.setup(item) 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:45 col.setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:45 super().setup() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:45 self._request._fillfixtures() 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:45 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:45 fixturedef = self._get_active_fixturedef(argname) 20:03:45 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:45 fixturedef.execute(request=subrequest) 20:03:45 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:45 20:03:45 self = 20:03:45 request = > 20:03:45 20:03:45 def execute(self, request: SubRequest) -> FixtureValue: 20:03:45 """Return the value of this fixture, executing it if not cached.""" 20:03:45 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:45 # This needs to be done before checking if we have a cached value, since 20:03:45 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:45 # parametrization, they finalize themselves and fixtures depending on it 20:03:45 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:45 # See #4871 20:03:45 requested_fixtures_that_should_finalize_us = [] 20:03:45 for argname in self.argnames: 20:03:45 fixturedef = request._get_active_fixturedef(argname) 20:03:45 # Saves requested fixtures in a list so we later can add our finalizer 20:03:45 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:45 # down first. This is generally handled by SetupState, but still currently 20:03:45 # needed when this fixture is not parametrized but depends on a parametrized 20:03:45 # fixture. 20:03:45 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:45 20:03:45 # Check for (and return) cached value/exception. 20:03:45 if self.cached_result is not None: 20:03:45 request_cache_key = self.cache_key(request) 20:03:45 cache_key = self.cached_result[1] 20:03:45 try: 20:03:45 # Attempt to make a normal == check: this might fail for objects 20:03:45 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:45 cache_hit = bool(request_cache_key == cache_key) 20:03:45 except (ValueError, RuntimeError): 20:03:45 # If the comparison raises, use 'is' as fallback. 20:03:45 cache_hit = request_cache_key is cache_key 20:03:45 20:03:45 if cache_hit: 20:03:45 if self.cached_result[2] is not None: 20:03:45 exc, exc_tb = self.cached_result[2] 20:03:45 raise exc.with_traceback(exc_tb) 20:03:45 else: 20:03:45 return self.cached_result[0] 20:03:45 # We have a previous but differently parametrized fixture instance 20:03:45 # so we need to tear it down before creating a new one. 20:03:45 self.finish(request) 20:03:45 assert self.cached_result is None 20:03:45 20:03:45 # Add finalizer to requested fixtures we saved previously. 20:03:45 # We make sure to do this after checking for cached value to avoid 20:03:45 # adding our finalizer multiple times. (#12135) 20:03:45 finalizer = functools.partial(self.finish, request=request) 20:03:45 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:45 parent_fixture.addfinalizer(finalizer) 20:03:45 20:03:45 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:45 # which is executed last. 20:03:45 > assert not self._finalizers 20:03:45 ^^^^^^^^^^^^^^^^^^^^ 20:03:45 E AssertionError 20:03:45 20:03:45 ../.tox/tests190/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:45 =========================== short test summary info ============================ 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_01_meta_data_insertion 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_02_catlog_input_insertion 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_device_connection 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_04_xpdr_device_connected 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_05_xpdr_portmapping_info 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK5 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_08_mpdr_switching_pool 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_09_check_mccapprofile 20:03:45 ERROR transportpce_tests/oc/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 20:03:45 10 errors in 102.04s (0:01:42) 20:03:45 Etests190: exit 1 (102.30 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh oc pid=4657 20:03:45 EEtests190: FAIL ✖ in 1 minute 49.46 seconds 20:03:45 tests71: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 20:03:45 EEEEEEEEEEEEEEEEEE [100%] 20:03:47 ==================================== ERRORS ==================================== 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_01_rdm_device_connection __ 20:03:47 20:03:47 cls = 20:03:47 20:03:47 @classmethod 20:03:47 def setUpClass(cls): 20:03:47 > cls.processes = test_utils.start_tpce() 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 20:03:47 transportpce_tests/1.2.1/test01_portmapping.py:33: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 def start_tpce(): 20:03:47 if 'NO_ODL_STARTUP' in os.environ: 20:03:47 print('No OpenDaylight instance to start!') 20:03:47 return [] 20:03:47 print('starting OpenDaylight...') 20:03:47 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:03:47 process = start_lighty() 20:03:47 else: 20:03:47 process = start_karaf() 20:03:47 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:03:47 print('OpenDaylight started !') 20:03:47 else: 20:03:47 print('OpenDaylight failed to start !') 20:03:47 shutdown_process(process) 20:03:47 for pid in process_list: 20:03:47 shutdown_process(pid) 20:03:47 > sys.exit(1) 20:03:47 E SystemExit: 1 20:03:47 20:03:47 transportpce_tests/common/test_utils.py:232: SystemExit 20:03:47 ---------------------------- Captured stdout setup ----------------------------- 20:03:47 starting OpenDaylight... 20:03:47 starting KARAF (karaf121) TransportPCE build... 20:03:47 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:03:47 __ ERROR at setup of TestTransportPCEPortmapping.test_02_rdm_device_connected __ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1760> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 __ ERROR at setup of TestTransportPCEPortmapping.test_03_rdm_portmapping_info __ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce3560> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb473e2b740> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_05_rdm_portmapping_SRG1_PP7_TXRX _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb472483560> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG3_PP1_TXRX _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb13a0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_07_xpdr_device_connection _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1580> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_08_xpdr_device_connected __ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce3600> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_09_xpdr_portmapping_info __ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce28e0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_portmapping_NETWORK1 _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce2de0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_portmapping_NETWORK2 _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce3600> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_portmapping_CLIENT1 _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce2f20> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_13_xpdr_portmapping_CLIENT2 _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1580> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_14_xpdr_portmapping_CLIENT3 _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce2de0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_15_xpdr_portmapping_CLIENT4 _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce2f20> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_16_xpdr_device_disconnection _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1800> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_17_xpdr_device_disconnected _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1bc0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_18_xpdr_device_not_connected _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1da0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_19_rdm_device_disconnection _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470ce2840> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_20_rdm_device_disconnected _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb4708a5d00> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 _ ERROR at setup of TestTransportPCEPortmapping.test_21_rdm_device_not_connected _ 20:03:47 20:03:47 cls = 20:03:47 func = . at 0x7fb470cb1bc0> 20:03:47 when = 'setup' 20:03:47 reraise = (, ) 20:03:47 20:03:47 @classmethod 20:03:47 def from_call( 20:03:47 cls, 20:03:47 func: Callable[[], TResult], 20:03:47 when: Literal["collect", "setup", "call", "teardown"], 20:03:47 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:47 ) -> CallInfo[TResult]: 20:03:47 """Call func, wrapping the result in a CallInfo. 20:03:47 20:03:47 :param func: 20:03:47 The function to call. Called without arguments. 20:03:47 :type func: Callable[[], _pytest.runner.TResult] 20:03:47 :param when: 20:03:47 The phase in which the function is called. 20:03:47 :param reraise: 20:03:47 Exception or exceptions that shall propagate if raised by the 20:03:47 function, instead of being wrapped in the CallInfo. 20:03:47 """ 20:03:47 excinfo = None 20:03:47 instant = timing.Instant() 20:03:47 try: 20:03:47 > result: TResult | None = func() 20:03:47 ^^^^^^ 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:47 lambda: runtest_hook(item=item, **kwds), 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:47 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:47 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:47 yield 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:47 return (yield) 20:03:47 ^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:47 item.session._setupstate.setup(item) 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:47 col.setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:47 super().setup() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:47 self._request._fillfixtures() 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:47 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:47 fixturedef = self._get_active_fixturedef(argname) 20:03:47 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:47 fixturedef.execute(request=subrequest) 20:03:47 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:47 20:03:47 self = 20:03:47 request = > 20:03:47 20:03:47 def execute(self, request: SubRequest) -> FixtureValue: 20:03:47 """Return the value of this fixture, executing it if not cached.""" 20:03:47 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:47 # This needs to be done before checking if we have a cached value, since 20:03:47 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:47 # parametrization, they finalize themselves and fixtures depending on it 20:03:47 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:47 # See #4871 20:03:47 requested_fixtures_that_should_finalize_us = [] 20:03:47 for argname in self.argnames: 20:03:47 fixturedef = request._get_active_fixturedef(argname) 20:03:47 # Saves requested fixtures in a list so we later can add our finalizer 20:03:47 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:47 # down first. This is generally handled by SetupState, but still currently 20:03:47 # needed when this fixture is not parametrized but depends on a parametrized 20:03:47 # fixture. 20:03:47 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:47 20:03:47 # Check for (and return) cached value/exception. 20:03:47 if self.cached_result is not None: 20:03:47 request_cache_key = self.cache_key(request) 20:03:47 cache_key = self.cached_result[1] 20:03:47 try: 20:03:47 # Attempt to make a normal == check: this might fail for objects 20:03:47 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:47 cache_hit = bool(request_cache_key == cache_key) 20:03:47 except (ValueError, RuntimeError): 20:03:47 E # If the comparison raises, use 'is' as fallback. 20:03:47 cache_hit = request_cache_key is cache_key 20:03:47 20:03:47 if cache_hit: 20:03:47 if self.cached_result[2] is not None: 20:03:47 exc, exc_tb = self.cached_result[2] 20:03:47 raise exc.with_traceback(exc_tb) 20:03:47 else: 20:03:47 return self.cached_result[0] 20:03:47 # We have a previous but differently parametrized fixture instance 20:03:47 # so we need to tear it down before creating a new one. 20:03:47 self.finish(request) 20:03:47 assert self.cached_result is None 20:03:47 20:03:47 # Add finalizer to requested fixtures we saved previously. 20:03:47 # We make sure to do this after checking for cached value to avoid 20:03:47 # adding our finalizer multiple times. (#12135) 20:03:47 finalizer = functools.partial(self.finish, request=request) 20:03:47 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:47 parent_fixture.addfinalizer(finalizer) 20:03:47 20:03:47 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:47 # which is executed last. 20:03:47 > assert not self._finalizers 20:03:47 ^^^^^^^^^^^^^^^^^^^^ 20:03:47 E AssertionError 20:03:47 20:03:47 ../.tox/tests121/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:47 =========================== short test summary info ============================ 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_rdm_device_connection 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_rdm_device_connected 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_rdm_portmapping_info 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_SRG1_PP7_TXRX 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG3_PP1_TXRX 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_xpdr_device_connection 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_xpdr_device_connected 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_xpdr_portmapping_info 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_portmapping_NETWORK1 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_portmapping_NETWORK2 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_portmapping_CLIENT1 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_13_xpdr_portmapping_CLIENT2 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_14_xpdr_portmapping_CLIENT3 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_15_xpdr_portmapping_CLIENT4 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_16_xpdr_device_disconnection 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_17_xpdr_device_disconnected 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_18_xpdr_device_not_connected 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_19_rdm_device_disconnection 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_20_rdm_device_disconnected 20:03:47 ERROR transportpce_tests/1.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_21_rdm_device_not_connected 20:03:47 21 errors in 103.87s (0:01:43) 20:03:47 tests121: exit 1 (104.13 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh 1.2.1 pid=4643 20:03:47 EEEEEEEEEEEEEEEEEEEEEEEEtests121: FAIL ✖ in 1 minute 51.26 seconds 20:03:51 tests71: freeze> python -m pip freeze --all 20:03:51 Etests71: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 20:03:51 tests71: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh 7.1 20:03:51 Eusing environment variables from ./karaf71.env 20:03:51 pytest -q transportpce_tests/7.1/test01_portmapping.py 20:03:52 EEEEEE [100%] 20:03:52 ==================================== ERRORS ==================================== 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_01_get_tapi_topology_T100G _ 20:03:52 20:03:52 cls = 20:03:52 20:03:52 @classmethod 20:03:52 def setUpClass(cls): 20:03:52 cls.init_failed = False 20:03:52 os.environ['JAVA_MIN_MEM'] = '1024M' 20:03:52 os.environ['JAVA_MAX_MEM'] = '4096M' 20:03:52 > cls.processes = test_utils.start_tpce() 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 20:03:52 transportpce_tests/tapi/test01_abstracted_topology.py:148: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 def start_tpce(): 20:03:52 if 'NO_ODL_STARTUP' in os.environ: 20:03:52 print('No OpenDaylight instance to start!') 20:03:52 return [] 20:03:52 print('starting OpenDaylight...') 20:03:52 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:03:52 process = start_lighty() 20:03:52 else: 20:03:52 process = start_karaf() 20:03:52 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:03:52 print('OpenDaylight started !') 20:03:52 else: 20:03:52 print('OpenDaylight failed to start !') 20:03:52 shutdown_process(process) 20:03:52 for pid in process_list: 20:03:52 shutdown_process(pid) 20:03:52 > sys.exit(1) 20:03:52 E SystemExit: 1 20:03:52 20:03:52 transportpce_tests/common/test_utils.py:232: SystemExit 20:03:52 ---------------------------- Captured stdout setup ----------------------------- 20:03:52 starting OpenDaylight... 20:03:52 starting KARAF (karaf221) TransportPCE build... 20:03:52 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_02_get_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dca9bc0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_03_connect_rdmb ___ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfb4c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_04_check_tapi_topos _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466f477380> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_05_disconnect_roadmb _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f46703bb740> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_06_connect_xpdra __ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfb560> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_07_check_tapi_topos _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_08_connect_rdma ___ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_09_connect_rdmc ___ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfb880> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_10_check_tapi_topos _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dca9bc0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_11_connect_xpdra_n1_to_roadma_pp1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_12_connect_roadma_pp1_to_xpdra_n1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_13_check_tapi_topology_T100G _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_14_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dca9bc0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 __ ERROR at setup of TestTransportPCEAbstractedTopology.test_15_connect_xpdrc __ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_16_connect_xpdrc_n1_to_roadmc_pp1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_17_connect_roadmc_pp1_to_xpdrc_n1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfae80> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_18_check_tapi_topology_T100G _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa660> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_19_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_20_connect_spdr_sa1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfad40> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_21_connect_spdr_sc1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_22_check_tapi_topology_T100G _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa660> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_23_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1a80> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_24_connect_sprda_n1_to_roadma_pp2 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dca8e00> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_25_connect_roadma_pp2_to_spdra_n1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_26_connect_sprdc_n1_to_roadmc_pp2 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1c60> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_27_connect_roadmc_pp2_to_spdrc_n1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_28_check_tapi_topology_T100G _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dca8e00> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_29_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1f80> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_30_add_oms_attributes _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_31_create_OCH_OTU4_service _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f467036d1c0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_32_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1260> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_33_create_ODU4_service _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_34_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b13a0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_35_connect_sprda_2_n2_to_roadma_pp3 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1120> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_36_connect_roadma_pp3_to_spdra_2_n2 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_37_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b2480> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_38_delete_ODU4_service _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_39_delete_OCH_OTU4_service _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b0900> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_40_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b2a20> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_41_disconnect_xponders_from_roadm _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_42_check_tapi_topology_T0 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b0720> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_43_get_tapi_topology_T100G _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b0ea0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_44_disconnect_roadma _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_45_disconnect_roadmc _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1a80> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_46_check_tapi_topos _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b1260> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_47_disconnect_xpdra _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_48_disconnect_xpdrc _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b2020> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_49_disconnect_spdr_sa1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b14e0> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_50_disconnect_spdr_sc1 _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466dcfa700> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 _ ERROR at setup of TestTransportPCEAbstractedTopology.test_51_check_uninstall_Tapi_Feature _ 20:03:52 20:03:52 cls = 20:03:52 func = . at 0x7f466d9b3560> 20:03:52 when = 'setup' 20:03:52 reraise = (, ) 20:03:52 20:03:52 @classmethod 20:03:52 def from_call( 20:03:52 cls, 20:03:52 func: Callable[[], TResult], 20:03:52 when: Literal["collect", "setup", "call", "teardown"], 20:03:52 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:03:52 ) -> CallInfo[TResult]: 20:03:52 """Call func, wrapping the result in a CallInfo. 20:03:52 20:03:52 :param func: 20:03:52 The function to call. Called without arguments. 20:03:52 :type func: Callable[[], _pytest.runner.TResult] 20:03:52 :param when: 20:03:52 The phase in which the function is called. 20:03:52 :param reraise: 20:03:52 Exception or exceptions that shall propagate if raised by the 20:03:52 function, instead of being wrapped in the CallInfo. 20:03:52 """ 20:03:52 excinfo = None 20:03:52 instant = timing.Instant() 20:03:52 try: 20:03:52 > result: TResult | None = func() 20:03:52 ^^^^^^ 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:361: 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:03:52 lambda: runtest_hook(item=item, **kwds), 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:03:52 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:03:52 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:03:52 yield 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:03:52 return (yield) 20:03:52 ^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:03:52 item.session._setupstate.setup(item) 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:03:52 col.setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:03:52 super().setup() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:03:52 self._request._fillfixtures() 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:03:52 item.funcargs[argname] = self.getfixturevalue(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:03:52 fixturedef = self._get_active_fixturedef(argname) 20:03:52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:03:52 fixturedef.execute(request=subrequest) 20:03:52 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:03:52 20:03:52 self = 20:03:52 request = > 20:03:52 20:03:52 def execute(self, request: SubRequest) -> FixtureValue: 20:03:52 """Return the value of this fixture, executing it if not cached.""" 20:03:52 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:03:52 # This needs to be done before checking if we have a cached value, since 20:03:52 # if a dependent fixture has their cache invalidated, e.g. due to 20:03:52 # parametrization, they finalize themselves and fixtures depending on it 20:03:52 # (which will likely include this fixture) setting `self.cached_result = None`. 20:03:52 # See #4871 20:03:52 requested_fixtures_that_should_finalize_us = [] 20:03:52 for argname in self.argnames: 20:03:52 fixturedef = request._get_active_fixturedef(argname) 20:03:52 # Saves requested fixtures in a list so we later can add our finalizer 20:03:52 # to them, ensuring that if a requested fixture gets torn down we get torn 20:03:52 # down first. This is generally handled by SetupState, but still currently 20:03:52 # needed when this fixture is not parametrized but depends on a parametrized 20:03:52 # fixture. 20:03:52 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:03:52 20:03:52 # Check for (and return) cached value/exception. 20:03:52 if self.cached_result is not None: 20:03:52 request_cache_key = self.cache_key(request) 20:03:52 cache_key = self.cached_result[1] 20:03:52 try: 20:03:52 # Attempt to make a normal == check: this might fail for objects 20:03:52 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:03:52 cache_hit = bool(request_cache_key == cache_key) 20:03:52 except (ValueError, RuntimeError): 20:03:52 # If the comparison raises, use 'is' as fallback. 20:03:52 cache_hit = request_cache_key is cache_key 20:03:52 20:03:52 if cache_hit: 20:03:52 if self.cached_result[2] is not None: 20:03:52 exc, exc_tb = self.cached_result[2] 20:03:52 raise exc.with_traceback(exc_tb) 20:03:52 else: 20:03:52 return self.cached_result[0] 20:03:52 # We have a previous but differently parametrized fixture instance 20:03:52 # so we need to tear it down before creating a new one. 20:03:52 self.finish(request) 20:03:52 assert self.cached_result is None 20:03:52 20:03:52 # Add finalizer to requested fixtures we saved previously. 20:03:52 # We make sure to do this after checking for cached value to avoid 20:03:52 # adding our finalizer multiple times. (#12135) 20:03:52 finalizer = functools.partial(self.finish, request=request) 20:03:52 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:03:52 parent_fixture.addfinalizer(finalizer) 20:03:52 20:03:52 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:03:52 # which is executed last. 20:03:52 > assert not self._finalizers 20:03:52 ^^^^^^^^^^^^^^^^^^^^ 20:03:52 E AssertionError 20:03:52 20:03:52 ../.tox/tests_tapi/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:03:52 =========================== short test summary info ============================ 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_01_get_tapi_topology_T100G 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_02_get_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_03_connect_rdmb 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_04_check_tapi_topos 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_05_disconnect_roadmb 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_06_connect_xpdra 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_07_check_tapi_topos 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_08_connect_rdma 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_09_connect_rdmc 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_10_check_tapi_topos 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_11_connect_xpdra_n1_to_roadma_pp1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_12_connect_roadma_pp1_to_xpdra_n1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_13_check_tapi_topology_T100G 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_14_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_15_connect_xpdrc 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_16_connect_xpdrc_n1_to_roadmc_pp1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_17_connect_roadmc_pp1_to_xpdrc_n1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_18_check_tapi_topology_T100G 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_19_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_20_connect_spdr_sa1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_21_connect_spdr_sc1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_22_check_tapi_topology_T100G 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_23_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_24_connect_sprda_n1_to_roadma_pp2 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_25_connect_roadma_pp2_to_spdra_n1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_26_connect_sprdc_n1_to_roadmc_pp2 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_27_connect_roadmc_pp2_to_spdrc_n1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_28_check_tapi_topology_T100G 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_29_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_30_add_oms_attributes 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_31_create_OCH_OTU4_service 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_32_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_33_create_ODU4_service 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_34_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_35_connect_sprda_2_n2_to_roadma_pp3 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_36_connect_roadma_pp3_to_spdra_2_n2 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_37_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_38_delete_ODU4_service 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_39_delete_OCH_OTU4_service 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_40_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_41_disconnect_xponders_from_roadm 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_42_check_tapi_topology_T0 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_43_get_tapi_topology_T100G 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_44_disconnect_roadma 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_45_disconnect_roadmc 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_46_check_tapi_topos 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_47_disconnect_xpdra 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_48_disconnect_xpdrc 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_49_disconnect_spdr_sa1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_50_disconnect_spdr_sc1 20:03:52 ERROR transportpce_tests/tapi/test01_abstracted_topology.py::TestTransportPCEAbstractedTopology::test_51_check_uninstall_Tapi_Feature 20:03:52 51 errors in 109.27s (0:01:49) 20:03:53 tests_tapi: exit 1 (109.55 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh tapi pid=4668 20:03:53 tests_tapi: FAIL ✖ in 1 minute 56.94 seconds 20:03:53 tests221: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 20:03:59 tests221: freeze> python -m pip freeze --all 20:03:59 tests221: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 20:03:59 tests221: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh 2.2.1 20:03:59 using environment variables from ./karaf221.env 20:03:59 pytest -q transportpce_tests/2.2.1/test01_portmapping.py 20:05:32 EEEEEEEEEEEE [100%] 20:05:34 ==================================== ERRORS ==================================== 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_01_xpdr_device_connection _ 20:05:34 20:05:34 cls = 20:05:34 20:05:34 @classmethod 20:05:34 def setUpClass(cls): 20:05:34 > cls.processes = test_utils.start_tpce() 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 20:05:34 transportpce_tests/7.1/test01_portmapping.py:32: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 def start_tpce(): 20:05:34 if 'NO_ODL_STARTUP' in os.environ: 20:05:34 print('No OpenDaylight instance to start!') 20:05:34 return [] 20:05:34 print('starting OpenDaylight...') 20:05:34 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:05:34 process = start_lighty() 20:05:34 else: 20:05:34 process = start_karaf() 20:05:34 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:05:34 print('OpenDaylight started !') 20:05:34 else: 20:05:34 print('OpenDaylight failed to start !') 20:05:34 shutdown_process(process) 20:05:34 for pid in process_list: 20:05:34 shutdown_process(pid) 20:05:34 > sys.exit(1) 20:05:34 E SystemExit: 1 20:05:34 20:05:34 transportpce_tests/common/test_utils.py:232: SystemExit 20:05:34 ---------------------------- Captured stdout setup ----------------------------- 20:05:34 starting OpenDaylight... 20:05:34 starting KARAF (karaf71) TransportPCE build... 20:05:34 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_02_xpdr_device_connected __ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef0892700> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_03_xpdr_portmapping_info __ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef08b7740> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_04_tpdr_portmapping_NETWORK1 _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef2facea0> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_05_tpdr_portmapping_CLIENT1 _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef0892700> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_06_mpdr_portmapping_NETWORK1 _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef2063e20> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_07_mpdr_portmapping_CLIENT1 _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef0892700> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 ___ ERROR at setup of TestTransportPCEPortmapping.test_08_check_mccapprofile ___ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef08b7600> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 __ ERROR at setup of TestTransportPCEPortmapping.test_09_mpdr_switching_pool ___ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef08b5d00> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_device_disconnection _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef08b7920> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_device_disconnected _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef08b77e0> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_device_not_connected _ 20:05:34 20:05:34 cls = 20:05:34 func = . at 0x7f7ef0892700> 20:05:34 when = 'setup' 20:05:34 reraise = (, ) 20:05:34 20:05:34 @classmethod 20:05:34 def from_call( 20:05:34 cls, 20:05:34 func: Callable[[], TResult], 20:05:34 when: Literal["collect", "setup", "call", "teardown"], 20:05:34 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:34 ) -> CallInfo[TResult]: 20:05:34 """Call func, wrapping the result in a CallInfo. 20:05:34 20:05:34 :param func: 20:05:34 The function to call. Called without arguments. 20:05:34 :type func: Callable[[], _pytest.runner.TResult] 20:05:34 :param when: 20:05:34 The phase in which the function is called. 20:05:34 :param reraise: 20:05:34 Exception or exceptions that shall propagate if raised by the 20:05:34 function, instead of being wrapped in the CallInfo. 20:05:34 """ 20:05:34 excinfo = None 20:05:34 instant = timing.Instant() 20:05:34 try: 20:05:34 > result: TResult | None = func() 20:05:34 ^^^^^^ 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:34 lambda: runtest_hook(item=item, **kwds), 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:34 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:34 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:34 yield 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:34 return (yield) 20:05:34 ^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:34 item.session._setupstate.setup(item) 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:34 col.setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:34 super().setup() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:34 self._request._fillfixtures() 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:34 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:34 fixturedef = self._get_active_fixturedef(argname) 20:05:34 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:34 fixturedef.execute(request=subrequest) 20:05:34 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:34 20:05:34 self = 20:05:34 request = > 20:05:34 20:05:34 def execute(self, request: SubRequest) -> FixtureValue: 20:05:34 """Return the value of this fixture, executing it if not cached.""" 20:05:34 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:34 # This needs to be done before checking if we have a cached value, since 20:05:34 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:34 # parametrization, they finalize themselves and fixtures depending on it 20:05:34 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:34 # See #4871 20:05:34 requested_fixtures_that_should_finalize_us = [] 20:05:34 for argname in self.argnames: 20:05:34 fixturedef = request._get_active_fixturedef(argname) 20:05:34 # Saves requested fixtures in a list so we later can add our finalizer 20:05:34 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:34 # down first. This is generally handled by SetupState, but still currently 20:05:34 # needed when this fixture is not parametrized but depends on a parametrized 20:05:34 # fixture. 20:05:34 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:34 20:05:34 # Check for (and return) cached value/exception. 20:05:34 if self.cached_result is not None: 20:05:34 request_cache_key = self.cache_key(request) 20:05:34 cache_key = self.cached_result[1] 20:05:34 try: 20:05:34 # Attempt to make a normal == check: this might fail for objects 20:05:34 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:34 cache_hit = bool(request_cache_key == cache_key) 20:05:34 except (ValueError, RuntimeError): 20:05:34 # If the comparison raises, use 'is' as fallback. 20:05:34 cache_hit = request_cache_key is cache_key 20:05:34 20:05:34 if cache_hit: 20:05:34 if self.cached_result[2] is not None: 20:05:34 exc, exc_tb = self.cached_result[2] 20:05:34 raise exc.with_traceback(exc_tb) 20:05:34 else: 20:05:34 return self.cached_result[0] 20:05:34 # We have a previous but differently parametrized fixture instance 20:05:34 # so we need to tear it down before creating a new one. 20:05:34 self.finish(request) 20:05:34 assert self.cached_result is None 20:05:34 20:05:34 # Add finalizer to requested fixtures we saved previously. 20:05:34 # We make sure to do this after checking for cached value to avoid 20:05:34 # adding our finalizer multiple times. (#12135) 20:05:34 finalizer = functools.partial(self.finish, request=request) 20:05:34 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:34 parent_fixture.addfinalizer(finalizer) 20:05:34 20:05:34 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:34 # which is executed last. 20:05:34 > assert not self._finalizers 20:05:34 ^^^^^^^^^^^^^^^^^^^^ 20:05:34 E AssertionError 20:05:34 20:05:34 ../.tox/tests71/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:34 =========================== short test summary info ============================ 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_xpdr_device_connection 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_xpdr_device_connected 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_xpdr_portmapping_info 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_tpdr_portmapping_NETWORK1 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_tpdr_portmapping_CLIENT1 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_mpdr_portmapping_NETWORK1 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_mpdr_portmapping_CLIENT1 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_check_mccapprofile 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_mpdr_switching_pool 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_device_disconnection 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_device_disconnected 20:05:34 ERROR transportpce_tests/7.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_device_not_connected 20:05:34 12 errors in 102.27s (0:01:42) 20:05:34 tests71: exit 1 (102.53 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh 7.1 pid=4802 20:05:40 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 20:05:46 ==================================== ERRORS ==================================== 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_01_rdm_device_connection __ 20:05:46 20:05:46 cls = 20:05:46 20:05:46 @classmethod 20:05:46 def setUpClass(cls): 20:05:46 > cls.processes = test_utils.start_tpce() 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 20:05:46 transportpce_tests/2.2.1/test01_portmapping.py:33: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 def start_tpce(): 20:05:46 if 'NO_ODL_STARTUP' in os.environ: 20:05:46 print('No OpenDaylight instance to start!') 20:05:46 return [] 20:05:46 print('starting OpenDaylight...') 20:05:46 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:05:46 process = start_lighty() 20:05:46 else: 20:05:46 process = start_karaf() 20:05:46 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:05:46 print('OpenDaylight started !') 20:05:46 else: 20:05:46 print('OpenDaylight failed to start !') 20:05:46 shutdown_process(process) 20:05:46 for pid in process_list: 20:05:46 shutdown_process(pid) 20:05:46 > sys.exit(1) 20:05:46 E SystemExit: 1 20:05:46 20:05:46 transportpce_tests/common/test_utils.py:232: SystemExit 20:05:46 ---------------------------- Captured stdout setup ----------------------------- 20:05:46 starting OpenDaylight... 20:05:46 starting KARAF (karaf221) TransportPCE build... 20:05:46 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:05:46 __ ERROR at setup of TestTransportPCEPortmapping.test_02_rdm_device_connected __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5207560> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 __ ERROR at setup of TestTransportPCEPortmapping.test_03_rdm_portmapping_info __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e524bec0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_04_rdm_portmapping_DEG1_TTP_TXRX _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e69d6a20> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e791c4a0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_06_rdm_portmapping_SRG1_PP3_TXRX _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a6ca0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_07_rdm_portmapping_SRG3_PP1_TXRX _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e524bec0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_08_xpdr_device_connection _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e69d6a20> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_09_xpdr_device_connected __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a4cc0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_10_xpdr_portmapping_info __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52076a0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_11_xpdr_portmapping_NETWORK1 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e524bec0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_12_xpdr_portmapping_XPDR2_NETWORK1 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a4360> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_13_xpdr_portmapping_XPDR1_CLIENT1 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52076a0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_14_xpdr_portmapping_XPDR1_CLIENT2 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a79c0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_15_spdr_device_connection _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a7880> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_16_spdr_device_connected __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_17_spdr_portmapping_info __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206020> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_18_spdr_switching_pool_1 __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_19_spdr_switching_pool_2 __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206020> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_20_spdr_switching_pool_3 __ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a7b00> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_21_spdr_portmapping_mappings _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_22_spdr_portmapping_XPDR1_CLIENT1 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a4b80> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_23_spdr_portmapping_XPDR1_NETWORK1 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a7c40> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_24_spdr_portmapping_XPDR2_CLIENT2 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_25_spdr_portmapping_XPDR2_NETWORK2 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a7880> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_26_spdr_portmapping_XPDR3_CLIENT3 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a4360> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_27_spdr_portmapping_XPDR3_NETWORK1 _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_28_spdr_device_disconnection _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a71a0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_29_xpdr_device_disconnected _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a7100> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_30_xpdr_device_disconnection _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_31_xpdr_device_disconnected _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a65c0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_32_xpdr_device_not_connected _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a6ca0> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_33_rdm_device_disconnection _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_34_rdm_device_disconnected _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e52a7740> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 _ ERROR at setup of TestTransportPCEPortmapping.test_35_rdm_device_not_connected _ 20:05:46 20:05:46 cls = 20:05:46 func = . at 0x7f61e5206340> 20:05:46 when = 'setup' 20:05:46 reraise = (, ) 20:05:46 20:05:46 @classmethod 20:05:46 def from_call( 20:05:46 cls, 20:05:46 func: Callable[[], TResult], 20:05:46 when: Literal["collect", "setup", "call", "teardown"], 20:05:46 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:05:46 ) -> CallInfo[TResult]: 20:05:46 """Call func, wrapping the result in a CallInfo. 20:05:46 20:05:46 :param func: 20:05:46 The function to call. Called without arguments. 20:05:46 :type func: Callable[[], _pytest.runner.TResult] 20:05:46 :param when: 20:05:46 The phase in which the function is called. 20:05:46 :param reraise: 20:05:46 Exception or exceptions that shall propagate if raised by the 20:05:46 function, instead of being wrapped in the CallInfo. 20:05:46 """ 20:05:46 excinfo = None 20:05:46 instant = timing.Instant() 20:05:46 try: 20:05:46 > result: TResult | None = func() 20:05:46 ^^^^^^ 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:361: 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:05:46 lambda: runtest_hook(item=item, **kwds), 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:05:46 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:05:46 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:05:46 yield 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:05:46 return (yield) 20:05:46 ^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:05:46 item.session._setupstate.setup(item) 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:05:46 col.setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:05:46 super().setup() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:05:46 self._request._fillfixtures() 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:05:46 item.funcargs[argname] = self.getfixturevalue(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:05:46 fixturedef = self._get_active_fixturedef(argname) 20:05:46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:05:46 fixturedef.execute(request=subrequest) 20:05:46 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:05:46 20:05:46 self = 20:05:46 request = > 20:05:46 20:05:46 def execute(self, request: SubRequest) -> FixtureValue: 20:05:46 """Return the value of this fixture, executing it if not cached.""" 20:05:46 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:05:46 # This needs to be done before checking if we have a cached value, since 20:05:46 # if a dependent fixture has their cache invalidated, e.g. due to 20:05:46 # parametrization, they finalize themselves and fixtures depending on it 20:05:46 # (which will likely include this fixture) setting `self.cached_result = None`. 20:05:46 # See #4871 20:05:46 requested_fixtures_that_should_finalize_us = [] 20:05:46 for argname in self.argnames: 20:05:46 fixturedef = request._get_active_fixturedef(argname) 20:05:46 # Saves requested fixtures in a list so we later can add our finalizer 20:05:46 # to them, ensuring that if a requested fixture gets torn down we get torn 20:05:46 # down first. This is generally handled by SetupState, but still currently 20:05:46 # needed when this fixture is not parametrized but depends on a parametrized 20:05:46 # fixture. 20:05:46 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:05:46 20:05:46 # Check for (and return) cached value/exception. 20:05:46 if self.cached_result is not None: 20:05:46 request_cache_key = self.cache_key(request) 20:05:46 cache_key = self.cached_result[1] 20:05:46 try: 20:05:46 # Attempt to make a normal == check: this might fail for objects 20:05:46 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:05:46 cache_hit = bool(request_cache_key == cache_key) 20:05:46 except (ValueError, RuntimeError): 20:05:46 # If the comparison raises, use 'is' as fallback. 20:05:46 cache_hit = request_cache_key is cache_key 20:05:46 20:05:46 if cache_hit: 20:05:46 if self.cached_result[2] is not None: 20:05:46 exc, exc_tb = self.cached_result[2] 20:05:46 raise exc.with_traceback(exc_tb) 20:05:46 else: 20:05:46 return self.cached_result[0] 20:05:46 # We have a previous but differently parametrized fixture instance 20:05:46 # so we need to tear it down before creating a new one. 20:05:46 self.finish(request) 20:05:46 assert self.cached_result is None 20:05:46 20:05:46 # Add finalizer to requested fixtures we saved previously. 20:05:46 # We make sure to do this after checking for cached value to avoid 20:05:46 # adding our finalizer multiple times. (#12135) 20:05:46 finalizer = functools.partial(self.finish, request=request) 20:05:46 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:05:46 parent_fixture.addfinalizer(finalizer) 20:05:46 20:05:46 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:05:46 # which is executed last. 20:05:46 > assert not self._finalizers 20:05:46 ^^^^^^^^^^^^^^^^^^^^ 20:05:46 E AssertionError 20:05:46 20:05:46 ../.tox/tests221/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:05:46 =========================== short test summary info ============================ 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_01_rdm_device_connection 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_02_rdm_device_connected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_03_rdm_portmapping_info 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_04_rdm_portmapping_DEG1_TTP_TXRX 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_05_rdm_portmapping_DEG2_TTP_TXRX_with_ots_oms 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_06_rdm_portmapping_SRG1_PP3_TXRX 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_07_rdm_portmapping_SRG3_PP1_TXRX 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_08_xpdr_device_connection 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_09_xpdr_device_connected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_10_xpdr_portmapping_info 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_11_xpdr_portmapping_NETWORK1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_12_xpdr_portmapping_XPDR2_NETWORK1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_13_xpdr_portmapping_XPDR1_CLIENT1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_14_xpdr_portmapping_XPDR1_CLIENT2 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_15_spdr_device_connection 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_16_spdr_device_connected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_17_spdr_portmapping_info 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_18_spdr_switching_pool_1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_19_spdr_switching_pool_2 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_20_spdr_switching_pool_3 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_21_spdr_portmapping_mappings 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_22_spdr_portmapping_XPDR1_CLIENT1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_23_spdr_portmapping_XPDR1_NETWORK1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_24_spdr_portmapping_XPDR2_CLIENT2 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_25_spdr_portmapping_XPDR2_NETWORK2 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_26_spdr_portmapping_XPDR3_CLIENT3 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_27_spdr_portmapping_XPDR3_NETWORK1 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_28_spdr_device_disconnection 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_29_xpdr_device_disconnected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_30_xpdr_device_disconnection 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_31_xpdr_device_disconnected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_32_xpdr_device_not_connected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_33_rdm_device_disconnection 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_34_rdm_device_disconnected 20:05:46 ERROR transportpce_tests/2.2.1/test01_portmapping.py::TestTransportPCEPortmapping::test_35_rdm_device_not_connected 20:05:46 35 errors in 106.57s (0:01:46) 20:05:46 tests71: FAIL ✖ in 1 minute 48.9 seconds 20:05:46 tests221: exit 1 (106.86 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh 2.2.1 pid=4873 20:05:46 tests221: FAIL ✖ in 1 minute 53.39 seconds 20:05:46 tests_hybrid: install_deps> python -I -m pip install 'setuptools>=7.0' -r /w/workspace/transportpce-tox-verify-titanium/tests/requirements.txt -r /w/workspace/transportpce-tox-verify-titanium/tests/test-requirements.txt 20:05:53 tests_hybrid: freeze> python -m pip freeze --all 20:05:53 tests_hybrid: bcrypt==5.0.0,certifi==2026.7.22,cffi==2.1.1,charset-normalizer==3.5.1,cryptography==50.0.1,dict2xml==1.7.8,idna==3.19,iniconfig==2.3.0,invoke==3.0.3,lxml==6.1.3,netconf-client==3.6.0,packaging==26.3,paramiko==5.0.0,pip==26.2.1,pluggy==1.6.0,psutil==7.2.2,pycparser==3.0,Pygments==2.21.0,PyNaCl==1.6.2,pytest==9.1.1,requests==2.34.2,setuptools==84.0.0,urllib3==2.7.0 20:05:53 tests_hybrid: commands[0] /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh hybrid 20:05:53 using environment variables from ./karaf221.env 20:05:53 pytest -q transportpce_tests/hybrid/test01_device_change_notifications.py 20:07:34 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [100%] 20:07:43 ==================================== ERRORS ==================================== 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_01_connect_xpdrA _ 20:07:43 20:07:43 cls = 20:07:43 20:07:43 @classmethod 20:07:43 def setUpClass(cls): 20:07:43 > cls.processes = test_utils.start_tpce() 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 20:07:43 transportpce_tests/hybrid/test01_device_change_notifications.py:77: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 def start_tpce(): 20:07:43 if 'NO_ODL_STARTUP' in os.environ: 20:07:43 print('No OpenDaylight instance to start!') 20:07:43 return [] 20:07:43 print('starting OpenDaylight...') 20:07:43 if 'USE_LIGHTY' in os.environ and os.environ['USE_LIGHTY'] == 'True': 20:07:43 process = start_lighty() 20:07:43 else: 20:07:43 process = start_karaf() 20:07:43 if wait_until_log_contains(TPCE_LOG, [LIGHTY_OK_START_MSG, KARAF_OK_START_MSG], time_to_wait=100): 20:07:43 print('OpenDaylight started !') 20:07:43 else: 20:07:43 print('OpenDaylight failed to start !') 20:07:43 shutdown_process(process) 20:07:43 for pid in process_list: 20:07:43 shutdown_process(pid) 20:07:43 > sys.exit(1) 20:07:43 E SystemExit: 1 20:07:43 20:07:43 transportpce_tests/common/test_utils.py:232: SystemExit 20:07:43 ---------------------------- Captured stdout setup ----------------------------- 20:07:43 starting OpenDaylight... 20:07:43 starting KARAF (karaf221) TransportPCE build... 20:07:43 Pattern not found after 100 seconds! OpenDaylight failed to start ! 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_02_connect_xpdrC _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace823e0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_03_connect_rdmA _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1eac0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_04_connect_rdmC _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ae5fa7a0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_05_connect_xpdrA_N1_to_roadmA_PP1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace83ba0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_06_connect_roadmA_PP1_to_xpdrA_N1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace83f60> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_07_connect_xpdrC_N1_to_roadmC_PP1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace83ba0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_08_connect_roadmC_PP1_to_xpdrC_N1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1e3e0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_09_add_omsAttributes_ROADMA_ROADMC _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40360> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_10_add_omsAttributes_ROADMC_ROADMA _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6af54d8a0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_11_create_eth_service1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace83f60> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_12_get_eth_service1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f420> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_13_change_status_line_port_xpdra _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40040> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_14_check_update_portmapping _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6af54d8a0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_15_check_update_openroadm_topo _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f880> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_16_check_update_service1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6af54d8a0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_17_restore_status_line_port_xpdra _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40220> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_18_check_update_portmapping_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f880> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_19_check_update_openroadm_topo_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6af54d8a0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_20_check_update_service1_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40220> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_21_change_status_port_roadma_srg _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_22_check_update_portmapping _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40220> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_23_check_update_openroadm_topo _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1c040> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_24_restore_status_port_roadma_srg _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_25_check_update_portmapping_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1c040> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_26_check_update_openroadm_topo_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1e660> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_27_check_update_service1_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_28_change_status_line_port_roadma_deg _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1ede0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_29_check_update_portmapping _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1eca0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_30_check_update_openroadm_topo _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_31_restore_status_line_port_roadma_srg _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1fd80> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_32_check_update_portmapping_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f6a0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_33_check_update_openroadm_topo_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_34_check_update_service1_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1fc40> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_35_change_status_line_port_xpdrc _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_36_check_update_portmapping _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f600> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_37_check_update_openroadm_topo _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f740> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_38_restore_status_line_port_xpdrc _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_39_check_update_portmapping_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1fd80> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_40_check_update_openroadm_topo_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1eca0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_41_check_update_service1_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_42_change_status_port_roadma_srg _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1c040> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_43_check_update_portmapping _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f740> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_44_check_update_openroadm_topo _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1f880> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_45_check_update_service1_ok _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_46_delete_eth_service1 _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1e660> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_47_disconnect_xponders_from_roadm _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_48_disconnect_XPDRA _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1eb60> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_49_disconnect_XPDRC _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1ede0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_50_disconnect_ROADMA _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6ace40400> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 _ ERROR at setup of TestTransportPCEDeviceChangeNotifications.test_51_disconnect_ROADMC _ 20:07:43 20:07:43 cls = 20:07:43 func = . at 0x7fa6acf1e3e0> 20:07:43 when = 'setup' 20:07:43 reraise = (, ) 20:07:43 20:07:43 @classmethod 20:07:43 def from_call( 20:07:43 cls, 20:07:43 func: Callable[[], TResult], 20:07:43 when: Literal["collect", "setup", "call", "teardown"], 20:07:43 reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, 20:07:43 ) -> CallInfo[TResult]: 20:07:43 """Call func, wrapping the result in a CallInfo. 20:07:43 20:07:43 :param func: 20:07:43 The function to call. Called without arguments. 20:07:43 :type func: Callable[[], _pytest.runner.TResult] 20:07:43 :param when: 20:07:43 The phase in which the function is called. 20:07:43 :param reraise: 20:07:43 Exception or exceptions that shall propagate if raised by the 20:07:43 function, instead of being wrapped in the CallInfo. 20:07:43 """ 20:07:43 excinfo = None 20:07:43 instant = timing.Instant() 20:07:43 try: 20:07:43 > result: TResult | None = func() 20:07:43 ^^^^^^ 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:361: 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:250: in 20:07:43 lambda: runtest_hook(item=item, **kwds), 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_hooks.py:512: in __call__ 20:07:43 return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/pluggy/_manager.py:120: in _hookexec 20:07:43 return self._inner_hookexec(hook_name, methods, kwargs, firstresult) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/logging.py:858: in pytest_runtest_setup 20:07:43 yield 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/capture.py:895: in pytest_runtest_setup 20:07:43 return (yield) 20:07:43 ^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:170: in pytest_runtest_setup 20:07:43 item.session._setupstate.setup(item) 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/runner.py:536: in setup 20:07:43 col.setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/unittest.py:248: in setup 20:07:43 super().setup() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/python.py:1710: in setup 20:07:43 self._request._fillfixtures() 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:806: in _fillfixtures 20:07:43 item.funcargs[argname] = self.getfixturevalue(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:630: in getfixturevalue 20:07:43 fixturedef = self._get_active_fixturedef(argname) 20:07:43 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:726: in _get_active_fixturedef 20:07:43 fixturedef.execute(request=subrequest) 20:07:43 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 20:07:43 20:07:43 self = 20:07:43 request = > 20:07:43 20:07:43 def execute(self, request: SubRequest) -> FixtureValue: 20:07:43 """Return the value of this fixture, executing it if not cached.""" 20:07:43 # Ensure that the dependent fixtures requested by this fixture are loaded. 20:07:43 # This needs to be done before checking if we have a cached value, since 20:07:43 # if a dependent fixture has their cache invalidated, e.g. due to 20:07:43 # parametrization, they finalize themselves and fixtures depending on it 20:07:43 # (which will likely include this fixture) setting `self.cached_result = None`. 20:07:43 # See #4871 20:07:43 requested_fixtures_that_should_finalize_us = [] 20:07:43 for argname in self.argnames: 20:07:43 fixturedef = request._get_active_fixturedef(argname) 20:07:43 # Saves requested fixtures in a list so we later can add our finalizer 20:07:43 # to them, ensuring that if a requested fixture gets torn down we get torn 20:07:43 # down first. This is generally handled by SetupState, but still currently 20:07:43 # needed when this fixture is not parametrized but depends on a parametrized 20:07:43 # fixture. 20:07:43 requested_fixtures_that_should_finalize_us.append(fixturedef) 20:07:43 20:07:43 # Check for (and return) cached value/exception. 20:07:43 if self.cached_result is not None: 20:07:43 request_cache_key = self.cache_key(request) 20:07:43 cache_key = self.cached_result[1] 20:07:43 try: 20:07:43 # Attempt to make a normal == check: this might fail for objects 20:07:43 # which do not implement the standard comparison (like numpy arrays -- #6497). 20:07:43 cache_hit = bool(request_cache_key == cache_key) 20:07:43 except (ValueError, RuntimeError): 20:07:43 # If the comparison raises, use 'is' as fallback. 20:07:43 cache_hit = request_cache_key is cache_key 20:07:43 20:07:43 if cache_hit: 20:07:43 if self.cached_result[2] is not None: 20:07:43 exc, exc_tb = self.cached_result[2] 20:07:43 raise exc.with_traceback(exc_tb) 20:07:43 else: 20:07:43 return self.cached_result[0] 20:07:43 # We have a previous but differently parametrized fixture instance 20:07:43 # so we need to tear it down before creating a new one. 20:07:43 self.finish(request) 20:07:43 assert self.cached_result is None 20:07:43 20:07:43 # Add finalizer to requested fixtures we saved previously. 20:07:43 # We make sure to do this after checking for cached value to avoid 20:07:43 # adding our finalizer multiple times. (#12135) 20:07:43 finalizer = functools.partial(self.finish, request=request) 20:07:43 for parent_fixture in requested_fixtures_that_should_finalize_us: 20:07:43 parent_fixture.addfinalizer(finalizer) 20:07:43 20:07:43 # Register the pytest_fixture_post_finalizer as the first finalizer, 20:07:43 # which is executed last. 20:07:43 > assert not self._finalizers 20:07:43 ^^^^^^^^^^^^^^^^^^^^ 20:07:43 E AssertionError 20:07:43 20:07:43 ../.tox/tests_hybrid/lib/python3.11/site-packages/_pytest/fixtures.py:1221: AssertionError 20:07:43 =========================== short test summary info ============================ 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_01_connect_xpdrA 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_02_connect_xpdrC 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_03_connect_rdmA 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_04_connect_rdmC 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_05_connect_xpdrA_N1_to_roadmA_PP1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_06_connect_roadmA_PP1_to_xpdrA_N1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_07_connect_xpdrC_N1_to_roadmC_PP1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_08_connect_roadmC_PP1_to_xpdrC_N1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_09_add_omsAttributes_ROADMA_ROADMC 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_10_add_omsAttributes_ROADMC_ROADMA 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_11_create_eth_service1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_12_get_eth_service1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_13_change_status_line_port_xpdra 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_14_check_update_portmapping 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_15_check_update_openroadm_topo 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_16_check_update_service1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_17_restore_status_line_port_xpdra 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_18_check_update_portmapping_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_19_check_update_openroadm_topo_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_20_check_update_service1_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_21_change_status_port_roadma_srg 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_22_check_update_portmapping 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_23_check_update_openroadm_topo 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_24_restore_status_port_roadma_srg 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_25_check_update_portmapping_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_26_check_update_openroadm_topo_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_27_check_update_service1_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_28_change_status_line_port_roadma_deg 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_29_check_update_portmapping 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_30_check_update_openroadm_topo 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_31_restore_status_line_port_roadma_srg 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_32_check_update_portmapping_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_33_check_update_openroadm_topo_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_34_check_update_service1_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_35_change_status_line_port_xpdrc 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_36_check_update_portmapping 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_37_check_update_openroadm_topo 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_38_restore_status_line_port_xpdrc 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_39_check_update_portmapping_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_40_check_update_openroadm_topo_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_41_check_update_service1_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_42_change_status_port_roadma_srg 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_43_check_update_portmapping 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_44_check_update_openroadm_topo 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_45_check_update_service1_ok 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_46_delete_eth_service1 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_47_disconnect_xponders_from_roadm 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_48_disconnect_XPDRA 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_49_disconnect_XPDRC 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_50_disconnect_ROADMA 20:07:43 ERROR transportpce_tests/hybrid/test01_device_change_notifications.py::TestTransportPCEDeviceChangeNotifications::test_51_disconnect_ROADMC 20:07:43 51 errors in 109.45s (0:01:49) 20:07:43 tests_hybrid: exit 1 (109.71 seconds) /w/workspace/transportpce-tox-verify-titanium/tests> ./launch_tests.sh hybrid pid=4994 20:07:43 buildcontroller: FAIL code 1 (29.86=setup[8.54]+cmd[21.32] seconds) 20:07:43 sims: OK (10.63=setup[7.00]+cmd[3.63] seconds) 20:07:43 build_karaf_tests121: FAIL code 127 (27.01=setup[16.09]+cmd[10.92] seconds) 20:07:43 testsPCE: FAIL code 1 (169.62=setup[45.54]+cmd[124.08] seconds) 20:07:43 tests121: FAIL code 1 (111.26=setup[7.13]+cmd[104.13] seconds) 20:07:43 build_karaf_tests221: FAIL code 127 (27.07=setup[16.32]+cmd[10.75] seconds) 20:07:43 tests_tapi: FAIL code 1 (116.94=setup[7.39]+cmd[109.55] seconds) 20:07:43 tests221: FAIL code 1 (113.39=setup[6.53]+cmd[106.86] seconds) 20:07:43 build_karaf_tests71: FAIL code 127 (16.18=setup[9.27]+cmd[6.91] seconds) 20:07:43 tests71: FAIL code 1 (108.90=setup[6.37]+cmd[102.53] seconds) 20:07:43 build_karaf_tests190: FAIL code 127 (12.74=setup[9.11]+cmd[3.64] seconds) 20:07:43 tests190: FAIL code 1 (109.46=setup[7.16]+cmd[102.30] seconds) 20:07:43 tests_hybrid: FAIL code 1 (116.73=setup[7.02]+cmd[109.71] seconds) 20:07:43 buildlighty: FAIL code 9 (10.95=setup[7.54]+cmd[3.41] seconds) 20:07:43 docs: OK (17.32=setup[14.53]+cmd[2.79] seconds) 20:07:43 docs-linkcheck: OK (18.61=setup[14.60]+cmd[4.01] seconds) 20:07:43 checkbashisms: OK (3.13=setup[1.93]+cmd[0.01,0.04,1.16] seconds) 20:07:43 pre-commit: OK (50.95=setup[2.82]+cmd[0.00,0.00,37.99,10.13] seconds) 20:07:43 pylint: OK (24.05=setup[3.25]+cmd[20.80] seconds) 20:07:43 evaluation failed :( (583.55 seconds) 20:07:43 + tox_status=1 20:07:43 + echo '---> Completed tox runs' 20:07:43 ---> Completed tox runs 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/build_karaf_tests121/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=build_karaf_tests121 20:07:43 + cp -r .tox/build_karaf_tests121/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/build_karaf_tests121 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/build_karaf_tests190/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=build_karaf_tests190 20:07:43 + cp -r .tox/build_karaf_tests190/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/build_karaf_tests190 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/build_karaf_tests221/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=build_karaf_tests221 20:07:43 + cp -r .tox/build_karaf_tests221/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/build_karaf_tests221 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/build_karaf_tests71/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=build_karaf_tests71 20:07:43 + cp -r .tox/build_karaf_tests71/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/build_karaf_tests71 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/buildcontroller/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=buildcontroller 20:07:43 + cp -r .tox/buildcontroller/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/buildcontroller 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/buildlighty/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=buildlighty 20:07:43 + cp -r .tox/buildlighty/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/buildlighty 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/checkbashisms/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=checkbashisms 20:07:43 + cp -r .tox/checkbashisms/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/checkbashisms 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/docs-linkcheck/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=docs-linkcheck 20:07:43 + cp -r .tox/docs-linkcheck/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/docs-linkcheck 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/docs/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=docs 20:07:43 + cp -r .tox/docs/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/docs 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/pre-commit/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=pre-commit 20:07:43 + cp -r .tox/pre-commit/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/pre-commit 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/pylint/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=pylint 20:07:43 + cp -r .tox/pylint/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/pylint 20:07:43 + for i in .tox/*/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 ++ echo .tox/sims/log 20:07:43 + tox_env=sims 20:07:43 + cp -r .tox/sims/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/sims 20:07:43 + for i in .tox/*/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 ++ echo .tox/tests121/log 20:07:43 + tox_env=tests121 20:07:43 + cp -r .tox/tests121/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/tests121 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/tests190/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=tests190 20:07:43 + cp -r .tox/tests190/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/tests190 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/tests221/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=tests221 20:07:43 + cp -r .tox/tests221/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/tests221 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/tests71/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=tests71 20:07:43 + cp -r .tox/tests71/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/tests71 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/testsPCE/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=testsPCE 20:07:43 + cp -r .tox/testsPCE/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/testsPCE 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/tests_hybrid/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=tests_hybrid 20:07:43 + cp -r .tox/tests_hybrid/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/tests_hybrid 20:07:43 + for i in .tox/*/log 20:07:43 ++ echo .tox/tests_tapi/log 20:07:43 ++ awk -F/ '{print $2}' 20:07:43 + tox_env=tests_tapi 20:07:43 + cp -r .tox/tests_tapi/log /w/workspace/transportpce-tox-verify-titanium/archives/tox/tests_tapi 20:07:43 + DOC_DIR=docs/_build/html 20:07:43 + [[ -d docs/_build/html ]] 20:07:43 + echo '---> Archiving generated docs' 20:07:43 ---> Archiving generated docs 20:07:43 + mv docs/_build/html /w/workspace/transportpce-tox-verify-titanium/archives/docs 20:07:43 + echo '---> tox-run.sh ends' 20:07:43 ---> tox-run.sh ends 20:07:43 + test 1 -eq 0 20:07:43 + exit 1 20:07:43 ++ '[' 1 = 1 ']' 20:07:43 ++ '[' -x /usr/bin/clear_console ']' 20:07:43 ++ /usr/bin/clear_console -q 20:07:43 Build step 'Execute shell' marked build as failure 20:07:43 $ ssh-agent -k 20:07:43 unset SSH_AUTH_SOCK; 20:07:43 unset SSH_AGENT_PID; 20:07:43 echo Agent pid 1561 killed; 20:07:43 [ssh-agent] Stopped. 20:07:43 [PostBuildScript] - [INFO] Executing post build scripts. 20:07:43 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins16148576158074930574.sh 20:07:43 ---> sysstat.sh 20:07:44 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins2915870180758055512.sh 20:07:44 ---> package-listing.sh 20:07:44 ++ facter osfamily 20:07:44 ++ tr '[:upper:]' '[:lower:]' 20:07:44 + OS_FAMILY=debian 20:07:44 + workspace=/w/workspace/transportpce-tox-verify-titanium 20:07:44 + START_PACKAGES=/tmp/packages_start.txt 20:07:44 + END_PACKAGES=/tmp/packages_end.txt 20:07:44 + DIFF_PACKAGES=/tmp/packages_diff.txt 20:07:44 + PACKAGES=/tmp/packages_start.txt 20:07:44 + '[' /w/workspace/transportpce-tox-verify-titanium ']' 20:07:44 + PACKAGES=/tmp/packages_end.txt 20:07:44 + case "${OS_FAMILY}" in 20:07:44 + grep '^ii' 20:07:44 + dpkg -l 20:07:44 + '[' -f /tmp/packages_start.txt ']' 20:07:44 + '[' -f /tmp/packages_end.txt ']' 20:07:44 + diff /tmp/packages_start.txt /tmp/packages_end.txt 20:07:44 + '[' /w/workspace/transportpce-tox-verify-titanium ']' 20:07:44 + mkdir -p /w/workspace/transportpce-tox-verify-titanium/archives/ 20:07:44 + cp -f /tmp/packages_diff.txt /tmp/packages_end.txt /tmp/packages_start.txt /w/workspace/transportpce-tox-verify-titanium/archives/ 20:07:44 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins1838736847477545599.sh 20:07:44 ---> capture-instance-metadata.sh 20:07:44 Setup pyenv: 20:07:44 system 20:07:44 3.8.20 20:07:44 3.9.20 20:07:44 3.10.15 20:07:44 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-titanium/.python-version) 20:07:44 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-B6WU from file:/tmp/.os_lf_venv 20:07:44 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 20:07:46 lf-activate-venv(): INFO: Installing additional packages: lftools 20:07:55 lf-activate-venv(): INFO: Adding /tmp/venv-B6WU/bin to PATH 20:07:56 INFO: Running in OpenStack, capturing instance metadata 20:07:56 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins10146192287528318599.sh 20:07:56 provisioning config files... 20:07:56 Could not find credentials [logs] for transportpce-tox-verify-titanium #47 20:07:56 copy managed file [jenkins-log-archives-settings] to file:/w/workspace/transportpce-tox-verify-titanium@tmp/config18396373801408159515tmp 20:07:56 Regular expression run condition: Expression=[^.*logs-s3.*], Label=[odl-logs-s3-cloudfront-index] 20:07:56 Run condition [Regular expression match] enabling perform for step [Provide Configuration files] 20:07:56 provisioning config files... 20:07:56 copy managed file [jenkins-s3-log-ship] to file:/home/jenkins/.aws/credentials 20:07:56 [EnvInject] - Injecting environment variables from a build step. 20:07:56 [EnvInject] - Injecting as environment variables the properties content 20:07:56 SERVER_ID=logs 20:07:56 20:07:56 [EnvInject] - Variables injected successfully. 20:07:56 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins17777034639293514680.sh 20:07:56 ---> create-netrc.sh 20:07:56 WARN: Log server credential not found. 20:07:56 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins11587150265410636606.sh 20:07:56 ---> python-tools-install.sh 20:07:56 Setup pyenv: 20:07:56 system 20:07:56 3.8.20 20:07:56 3.9.20 20:07:56 3.10.15 20:07:56 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-titanium/.python-version) 20:07:57 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-B6WU from file:/tmp/.os_lf_venv 20:07:57 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 20:07:58 lf-activate-venv(): INFO: Installing additional packages: lftools 20:08:08 lf-activate-venv(): INFO: Adding /tmp/venv-B6WU/bin to PATH 20:08:08 [transportpce-tox-verify-titanium] $ /bin/sh /tmp/jenkins12336269422425602678.sh 20:08:08 ---> uv-install.sh 20:08:08 uv 0.12.9 is already installed 20:08:08 uvx 0.12.9 (x86_64-unknown-linux-gnu) 20:08:08 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins7873552581035628748.sh 20:08:08 ---> sudo-logs.sh 20:08:08 Archiving 'sudo' log.. 20:08:08 [transportpce-tox-verify-titanium] $ /bin/bash /tmp/jenkins3911963668747217061.sh 20:08:08 ---> job-cost.sh 20:08:08 INFO: Activating Python virtual environment... 20:08:08 Setup pyenv: 20:08:08 system 20:08:08 3.8.20 20:08:08 3.9.20 20:08:08 3.10.15 20:08:08 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-titanium/.python-version) 20:08:09 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-B6WU from file:/tmp/.os_lf_venv 20:08:09 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 20:08:10 lf-activate-venv(): INFO: Installing additional packages: zipp==1.1.0 python-openstackclient urllib3~=1.26.15 20:08:17 lf-activate-venv(): INFO: Adding /tmp/venv-B6WU/bin to PATH 20:08:17 INFO: No stack-cost file found 20:08:17 INFO: Instance uptime: 761s 20:08:17 INFO: Fetching instance metadata (attempt 1 of 3)... 20:08:17 DEBUG: URL: http://169.254.169.254/latest/meta-data/instance-type 20:08:17 INFO: Successfully fetched instance metadata 20:08:17 INFO: Instance type: v3-standard-4 20:08:17 INFO: Retrieving pricing info for: v3-standard-4 20:08:17 INFO: Fetching Vexxhost pricing API (attempt 1 of 3)... 20:08:17 DEBUG: URL: https://pricing.vexxhost.net/v1/pricing/v3-standard-4/cost?seconds=761 20:08:17 INFO: Successfully fetched Vexxhost pricing API 20:08:17 INFO: Retrieved cost: 0.11 20:08:18 INFO: Retrieved resource: v3-standard-4 20:08:18 INFO: Creating archive directory: /w/workspace/transportpce-tox-verify-titanium/archives/cost 20:08:18 INFO: Archiving costs to: /w/workspace/transportpce-tox-verify-titanium/archives/cost.csv 20:08:18 INFO: Successfully archived job cost data 20:08:18 DEBUG: Cost data: transportpce-tox-verify-titanium,47,2026-09-02 20:08:18,v3-standard-4,761,0.11,0.00,FAILURE 20:08:18 [transportpce-tox-verify-titanium] $ /bin/bash -l /tmp/jenkins12937861934007820666.sh 20:08:18 ---> logs-deploy.sh 20:08:18 Setup pyenv: 20:08:18 system 20:08:18 3.8.20 20:08:18 3.9.20 20:08:18 3.10.15 20:08:18 * 3.11.10 (set by /w/workspace/transportpce-tox-verify-titanium/.python-version) 20:08:18 lf-activate-venv(): INFO: Reuse venv:/tmp/venv-B6WU from file:/tmp/.os_lf_venv 20:08:18 lf-activate-venv(): INFO: Installing base packages (pip, setuptools, virtualenv) 20:08:20 lf-activate-venv(): INFO: Installing additional packages: lftools urllib3~=1.26.15 20:08:29 lf-activate-venv(): INFO: Adding /tmp/venv-B6WU/bin to PATH 20:08:29 WARNING: Nexus logging server not set 20:08:29 INFO: S3 path logs/releng/vex-yul-odl-jenkins-1/transportpce-tox-verify-titanium/47/ 20:08:29 INFO: archiving logs to S3 20:08:30 ---> uname -a: 20:08:30 Linux prd-ubuntu2204-docker-4c-16g-46934 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux 20:08:30 20:08:30 20:08:30 ---> lscpu: 20:08:30 Architecture: x86_64 20:08:30 CPU op-mode(s): 32-bit, 64-bit 20:08:30 Address sizes: 40 bits physical, 48 bits virtual 20:08:30 Byte Order: Little Endian 20:08:30 CPU(s): 4 20:08:30 On-line CPU(s) list: 0-3 20:08:30 Vendor ID: AuthenticAMD 20:08:30 Model name: AMD EPYC-Rome Processor 20:08:30 CPU family: 23 20:08:30 Model: 49 20:08:30 Thread(s) per core: 1 20:08:30 Core(s) per socket: 1 20:08:30 Socket(s): 4 20:08:30 Stepping: 0 20:08:30 BogoMIPS: 5599.99 20:08:30 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 20:08:30 Virtualization: AMD-V 20:08:30 Hypervisor vendor: KVM 20:08:30 Virtualization type: full 20:08:30 L1d cache: 128 KiB (4 instances) 20:08:30 L1i cache: 128 KiB (4 instances) 20:08:30 L2 cache: 2 MiB (4 instances) 20:08:30 L3 cache: 64 MiB (4 instances) 20:08:30 NUMA node(s): 1 20:08:30 NUMA node0 CPU(s): 0-3 20:08:30 Vulnerability Gather data sampling: Not affected 20:08:30 Vulnerability Indirect target selection: Not affected 20:08:30 Vulnerability Itlb multihit: Not affected 20:08:30 Vulnerability L1tf: Not affected 20:08:30 Vulnerability Mds: Not affected 20:08:30 Vulnerability Meltdown: Not affected 20:08:30 Vulnerability Mmio stale data: Not affected 20:08:30 Vulnerability Reg file data sampling: Not affected 20:08:30 Vulnerability Retbleed: Mitigation; untrained return thunk; SMT disabled 20:08:30 Vulnerability Spec rstack overflow: Mitigation; SMT disabled 20:08:30 Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp 20:08:30 Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization 20:08:30 Vulnerability Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected 20:08:30 Vulnerability Srbds: Not affected 20:08:30 Vulnerability Tsa: Not affected 20:08:30 Vulnerability Tsx async abort: Not affected 20:08:30 Vulnerability Vmscape: Not affected 20:08:30 20:08:30 20:08:30 ---> nproc: 20:08:30 4 20:08:30 20:08:30 20:08:30 ---> df -h: 20:08:30 Filesystem Size Used Avail Use% Mounted on 20:08:30 tmpfs 1.6G 1.1M 1.6G 1% /run 20:08:30 /dev/vda1 78G 12G 67G 15% / 20:08:30 tmpfs 7.9G 0 7.9G 0% /dev/shm 20:08:30 tmpfs 5.0M 0 5.0M 0% /run/lock 20:08:30 /dev/vda15 105M 6.1M 99M 6% /boot/efi 20:08:30 tmpfs 1.6G 4.0K 1.6G 1% /run/user/1001 20:08:30 20:08:30 20:08:30 ---> free -m: 20:08:30 total used free shared buff/cache available 20:08:30 Mem: 15989 706 9614 4 5668 14939 20:08:30 Swap: 1023 0 1023 20:08:30 20:08:30 20:08:30 ---> ip addr: 20:08:30 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 20:08:30 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 20:08:30 inet 127.0.0.1/8 scope host lo 20:08:30 valid_lft forever preferred_lft forever 20:08:30 inet6 ::1/128 scope host 20:08:30 valid_lft forever preferred_lft forever 20:08:30 2: ens3: mtu 1458 qdisc mq state UP group default qlen 1000 20:08:30 link/ether fa:16:3e:f6:6d:53 brd ff:ff:ff:ff:ff:ff 20:08:30 altname enp0s3 20:08:30 inet 10.30.171.90/23 metric 100 brd 10.30.171.255 scope global dynamic ens3 20:08:30 valid_lft 85634sec preferred_lft 85634sec 20:08:30 inet6 fe80::f816:3eff:fef6:6d53/64 scope link 20:08:30 valid_lft forever preferred_lft forever 20:08:30 3: docker0: mtu 1458 qdisc noqueue state DOWN group default 20:08:30 link/ether ca:d1:0e:7e:fd:c7 brd ff:ff:ff:ff:ff:ff 20:08:30 inet 10.250.0.254/24 brd 10.250.0.255 scope global docker0 20:08:30 valid_lft forever preferred_lft forever 20:08:30 20:08:30 20:08:30 ---> sar -b -r -n DEV: 20:08:30 Linux 5.15.0-190-generic (prd-ubuntu2204-docker-4c-16g-46934) 09/02/26 _x86_64_ (4 CPU) 20:08:30 20:08:30 19:55:47 LINUX RESTART (4 CPU) 20:08:30 20:08:30 20:08:30 ---> sar -P ALL: 20:08:30 Linux 5.15.0-190-generic (prd-ubuntu2204-docker-4c-16g-46934) 09/02/26 _x86_64_ (4 CPU) 20:08:30 20:08:30 19:55:47 LINUX RESTART (4 CPU) 20:08:30 20:08:30 20:08:30