0s autopkgtest [12:06:09]: starting date and time: 2025-11-17 12:06:09+0000 0s autopkgtest [12:06:09]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [12:06:09]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.e8zz9mco/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python-botocore,src:requests,src:python3-defaults --apt-upgrade python-moto --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 '--env=ADT_TEST_TRIGGERS=python-botocore/1.40.68+repack-1 requests/2.32.5+dfsg-1ubuntu1 python3-defaults/3.13.7-2' -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-arm64-4.secgroup --name adt-resolute-arm64-python-moto-20251117-112138-juju-7f2275-prod-proposed-migration-environment-20-0e5728e0-4743-40f6-bc7c-e3e0319c230e --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-python-moto-20251117-112138-juju-7f2275-prod-proposed-migration-environment-20-0e5728e0-4743-40f6-bc7c-e3e0319c230e from image adt/ubuntu-resolute-arm64-server-20251117.img (UUID 1cd33fbb-18df-4c5a-b8f0-2dcb25269485)... 59s autopkgtest [12:07:08]: testbed dpkg architecture: arm64 60s autopkgtest [12:07:09]: testbed apt version: 3.1.11 60s autopkgtest [12:07:09]: @@@@@@@@@@@@@@@@@@@@ test bed setup 60s autopkgtest [12:07:09]: testbed release detected to be: None 61s autopkgtest [12:07:10]: updating testbed package index (apt update) 62s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 62s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 62s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 62s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 62s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 62s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 62s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [868 kB] 62s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.1 kB] 62s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [149 kB] 62s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [3084 B] 62s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [107 kB] 62s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [324 B] 62s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [577 kB] 62s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [17.8 kB] 62s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [12.5 kB] 62s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [576 B] 63s Fetched 1938 kB in 1s (1848 kB/s) 64s Reading package lists... 65s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 65s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 65s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 65s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 66s Reading package lists... 66s Reading package lists... 66s Building dependency tree... 66s Reading state information... 66s Calculating upgrade... 67s The following packages will be upgraded: 67s libpython3-stdlib python3 python3-botocore python3-minimal python3-requests 67s usbutils 67s 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 67s Need to get 7578 kB of archives. 67s After this operation, 5337 kB of additional disk space will be used. 67s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-botocore all 1.40.68+repack-1 [7381 kB] 68s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-minimal arm64 3.13.7-2 [27.8 kB] 68s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3 arm64 3.13.7-2 [23.9 kB] 68s Get:4 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-requests all 2.32.5+dfsg-1ubuntu1 [53.1 kB] 68s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libpython3-stdlib arm64 3.13.7-2 [10.6 kB] 68s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 usbutils arm64 1:019-1 [81.7 kB] 68s dpkg-preconfigure: unable to re-open stdin: No such file or directory 68s Fetched 7578 kB in 1s (6322 kB/s) 69s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88137 files and directories currently installed.) 69s Preparing to unpack .../python3-botocore_1.40.68+repack-1_all.deb ... 69s Unpacking python3-botocore (1.40.68+repack-1) over (1.37.9+repack-1) ... 70s Preparing to unpack .../python3-minimal_3.13.7-2_arm64.deb ... 70s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 70s Setting up python3-minimal (3.13.7-2) ... 70s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88181 files and directories currently installed.) 70s Preparing to unpack .../python3_3.13.7-2_arm64.deb ... 70s running python pre-rtupdate hooks for python3.13... 70s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 71s Preparing to unpack .../python3-requests_2.32.5+dfsg-1ubuntu1_all.deb ... 71s Unpacking python3-requests (2.32.5+dfsg-1ubuntu1) over (2.32.3+dfsg-5ubuntu2) ... 71s Preparing to unpack .../libpython3-stdlib_3.13.7-2_arm64.deb ... 71s Unpacking libpython3-stdlib:arm64 (3.13.7-2) over (3.13.7-1) ... 71s Preparing to unpack .../usbutils_1%3a019-1_arm64.deb ... 71s Unpacking usbutils (1:019-1) over (1:018-2) ... 71s Setting up usbutils (1:019-1) ... 71s Setting up libpython3-stdlib:arm64 (3.13.7-2) ... 71s Setting up python3 (3.13.7-2) ... 71s running python rtupdate hooks for python3.13... 71s running python post-rtupdate hooks for python3.13... 71s Setting up python3-requests (2.32.5+dfsg-1ubuntu1) ... 71s Setting up python3-botocore (1.40.68+repack-1) ... 72s Processing triggers for man-db (2.13.1-1) ... 73s autopkgtest [12:07:22]: upgrading testbed (apt dist-upgrade and autopurge) 73s Reading package lists... 74s Building dependency tree... 74s Reading state information... 74s Calculating upgrade... 74s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 74s Reading package lists... 75s Building dependency tree... 75s Reading state information... 75s Solving dependencies... 75s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 78s autopkgtest [12:07:27]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 09:50:31 UTC 2025 78s autopkgtest [12:07:27]: @@@@@@@@@@@@@@@@@@@@ apt-source python-moto 80s Get:1 http://ftpmaster.internal/ubuntu resolute/universe python-moto 5.1.1-4 (dsc) [2721 B] 80s Get:2 http://ftpmaster.internal/ubuntu resolute/universe python-moto 5.1.1-4 (tar) [6647 kB] 80s Get:3 http://ftpmaster.internal/ubuntu resolute/universe python-moto 5.1.1-4 (diff) [3856 B] 80s gpgv: Signature made Fri Mar 21 15:43:48 2025 UTC 80s gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE 80s gpgv: Can't check signature: No public key 80s dpkg-source: warning: cannot verify inline signature for ./python-moto_5.1.1-4.dsc: no acceptable signature found 81s autopkgtest [12:07:30]: testing package python-moto version 5.1.1-4 81s autopkgtest [12:07:30]: build not needed 207s autopkgtest [12:09:36]: test pybuild-autopkgtest: preparing testbed 207s Reading package lists... 207s Building dependency tree... 207s Reading state information... 208s Solving dependencies... 208s The following NEW packages will be installed: 208s autoconf automake autopoint autotools-dev build-essential cpp cpp-15 208s cpp-15-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper debugedit 208s dh-autoreconf dh-python dh-strip-nondeterminism dwz g++ g++-15 208s g++-15-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-15 208s gcc-15-aarch64-linux-gnu gcc-aarch64-linux-gnu gettext intltool-debian 208s libarchive-zip-perl libasan8 libcc1-0 libdebhelper-perl 208s libfile-stripnondeterminism-perl libgcc-15-dev libgomp1 libhwasan0 libisl23 208s libitm1 liblsan0 libmpc3 libpython3.14-minimal libpython3.14-stdlib 208s libstdc++-15-dev libtool libtsan2 libubsan1 libxslt1.1 m4 208s openstack-pkg-tools po-debconf pybuild-plugin-autopkgtest 208s pybuild-plugin-pyproject python3-all python3-antlr4 python3-aws-xray-sdk 208s python3-build python3-click python3-docker python3-envs python3-flask 208s python3-flask-cors python3-freezegun python3-graphql-core python3-inflection 208s python3-iniconfig python3-installer python3-itsdangerous python3-joserfc 208s python3-jsondiff python3-jsonpath-ng python3-jsonpickle 208s python3-jsonschema-path python3-lazy-object-proxy python3-lxml python3-moto 208s python3-multipart python3-mypy python3-mypy-extensions 208s python3-openapi-schema-validator python3-openapi-spec-validator 208s python3-pathable python3-pip python3-pluggy python3-ply 208s python3-prompt-toolkit python3-psutil python3-pycognito python3-pyotp 208s python3-pyproject-hooks python3-pytest python3-responses 208s python3-rfc3339-validator python3-terminaltables3 python3-wcwidth 208s python3-werkzeug python3-wheel python3-wrapt python3-xmltodict python3.14 208s python3.14-minimal 208s 0 upgraded, 97 newly installed, 0 to remove and 0 not upgraded. 208s Need to get 94.3 MB of archives. 208s After this operation, 372 MB of additional disk space will be used. 208s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-minimal arm64 3.14.0-4 [903 kB] 209s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14-minimal arm64 3.14.0-4 [2543 kB] 210s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 m4 arm64 1.4.20-2 [213 kB] 210s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 autoconf all 2.72-3.1ubuntu1 [384 kB] 210s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 autotools-dev all 20240727.1 [43.4 kB] 210s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 automake all 1:1.18.1-2 [581 kB] 210s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 autopoint all 0.23.2-1 [620 kB] 210s Get:8 http://ftpmaster.internal/ubuntu resolute/main arm64 libisl23 arm64 0.27-1 [676 kB] 211s Get:9 http://ftpmaster.internal/ubuntu resolute/main arm64 libmpc3 arm64 1.3.1-2 [55.6 kB] 211s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [11.7 MB] 212s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-15 arm64 15.2.0-7ubuntu1 [1026 B] 212s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [5736 B] 212s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 cpp arm64 4:15.2.0-4ubuntu1 [22.4 kB] 212s Get:14 http://ftpmaster.internal/ubuntu resolute/main arm64 libcc1-0 arm64 15.2.0-7ubuntu1 [49.0 kB] 212s Get:15 http://ftpmaster.internal/ubuntu resolute/main arm64 libgomp1 arm64 15.2.0-7ubuntu1 [147 kB] 212s Get:16 http://ftpmaster.internal/ubuntu resolute/main arm64 libitm1 arm64 15.2.0-7ubuntu1 [27.9 kB] 212s Get:17 http://ftpmaster.internal/ubuntu resolute/main arm64 libasan8 arm64 15.2.0-7ubuntu1 [2923 kB] 212s Get:18 http://ftpmaster.internal/ubuntu resolute/main arm64 liblsan0 arm64 15.2.0-7ubuntu1 [1316 kB] 212s Get:19 http://ftpmaster.internal/ubuntu resolute/main arm64 libtsan2 arm64 15.2.0-7ubuntu1 [2689 kB] 212s Get:20 http://ftpmaster.internal/ubuntu resolute/main arm64 libubsan1 arm64 15.2.0-7ubuntu1 [1176 kB] 212s Get:21 http://ftpmaster.internal/ubuntu resolute/main arm64 libhwasan0 arm64 15.2.0-7ubuntu1 [1638 kB] 213s Get:22 http://ftpmaster.internal/ubuntu resolute/main arm64 libgcc-15-dev arm64 15.2.0-7ubuntu1 [2600 kB] 213s Get:23 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [23.1 MB] 213s Get:24 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-15 arm64 15.2.0-7ubuntu1 [513 kB] 213s Get:25 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [1206 B] 213s Get:26 http://ftpmaster.internal/ubuntu resolute/main arm64 gcc arm64 4:15.2.0-4ubuntu1 [5016 B] 213s Get:27 http://ftpmaster.internal/ubuntu resolute/main arm64 libstdc++-15-dev arm64 15.2.0-7ubuntu1 [2546 kB] 214s Get:28 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15-aarch64-linux-gnu arm64 15.2.0-7ubuntu1 [13.2 MB] 214s Get:29 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-15 arm64 15.2.0-7ubuntu1 [23.7 kB] 214s Get:30 http://ftpmaster.internal/ubuntu resolute/main arm64 g++-aarch64-linux-gnu arm64 4:15.2.0-4ubuntu1 [956 B] 214s Get:31 http://ftpmaster.internal/ubuntu resolute/main arm64 g++ arm64 4:15.2.0-4ubuntu1 [1080 B] 214s Get:32 http://ftpmaster.internal/ubuntu resolute/main arm64 build-essential arm64 12.12ubuntu1 [5082 B] 214s Get:33 http://ftpmaster.internal/ubuntu resolute/main arm64 libdebhelper-perl all 13.24.2ubuntu1 [95.7 kB] 214s Get:34 http://ftpmaster.internal/ubuntu resolute/main arm64 libtool all 2.5.4-7 [169 kB] 214s Get:35 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-autoreconf all 21 [12.5 kB] 214s Get:36 http://ftpmaster.internal/ubuntu resolute/main arm64 libarchive-zip-perl all 1.68-1 [90.2 kB] 214s Get:37 http://ftpmaster.internal/ubuntu resolute/main arm64 libfile-stripnondeterminism-perl all 1.15.0-1 [20.5 kB] 214s Get:38 http://ftpmaster.internal/ubuntu resolute/main arm64 dh-strip-nondeterminism all 1.15.0-1 [5090 B] 214s Get:39 http://ftpmaster.internal/ubuntu resolute/main arm64 debugedit arm64 1:5.2-3 [49.1 kB] 214s Get:40 http://ftpmaster.internal/ubuntu resolute/main arm64 dwz arm64 0.16-2 [113 kB] 214s Get:41 http://ftpmaster.internal/ubuntu resolute/main arm64 gettext arm64 0.23.2-1 [998 kB] 214s Get:42 http://ftpmaster.internal/ubuntu resolute/main arm64 intltool-debian all 0.35.0+20060710.6 [23.2 kB] 214s Get:43 http://ftpmaster.internal/ubuntu resolute/main arm64 po-debconf all 1.0.21+nmu1 [233 kB] 214s Get:44 http://ftpmaster.internal/ubuntu resolute/main arm64 debhelper all 13.24.2ubuntu1 [896 kB] 214s Get:45 http://ftpmaster.internal/ubuntu resolute/universe arm64 dh-python all 6.20250414 [119 kB] 214s Get:46 http://ftpmaster.internal/ubuntu resolute/main arm64 libpython3.14-stdlib arm64 3.14.0-4 [2349 kB] 214s Get:47 http://ftpmaster.internal/ubuntu resolute/main arm64 libxslt1.1 arm64 1.1.43-0.3 [172 kB] 214s Get:48 http://ftpmaster.internal/ubuntu resolute/universe arm64 pybuild-plugin-autopkgtest all 6.20250414 [1746 B] 214s Get:49 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pyproject-hooks all 1.2.0-1 [10.2 kB] 214s Get:50 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-wheel all 0.46.1-2 [22.1 kB] 214s Get:51 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-build all 1.2.2-4 [31.0 kB] 214s Get:52 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-installer all 0.7.0+dfsg1-3 [17.4 kB] 214s Get:53 http://ftpmaster.internal/ubuntu resolute/universe arm64 pybuild-plugin-pyproject all 6.20250414 [1728 B] 214s Get:54 http://ftpmaster.internal/ubuntu resolute/main arm64 python3.14 arm64 3.14.0-4 [805 kB] 214s Get:55 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 python3-all arm64 3.13.7-2 [890 B] 214s Get:56 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-antlr4 all 4.9.2-1 [99.0 kB] 214s Get:57 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-jsonpickle all 4.0.2+dfsg-2 [40.1 kB] 214s Get:58 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-wrapt arm64 1.17.3-2 [39.9 kB] 214s Get:59 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-aws-xray-sdk all 0.95-4 [30.3 kB] 214s Get:60 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-click all 8.2.0+0.really.8.1.8-1 [80.0 kB] 214s Get:61 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-docker all 7.1.0-2ubuntu1 [91.0 kB] 214s Get:62 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-terminaltables3 all 4.0.0-4 [14.6 kB] 214s Get:63 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-envs all 1.2.6-4 [6902 B] 214s Get:64 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-itsdangerous all 2.2.0-2 [15.3 kB] 214s Get:65 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-werkzeug all 3.1.3-2 [169 kB] 214s Get:66 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-flask all 3.1.2-1ubuntu1 [84.7 kB] 214s Get:67 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-flask-cors all 6.0.1-1 [512 kB] 214s Get:68 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-freezegun all 1.5.1-1.2 [15.9 kB] 214s Get:69 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-graphql-core all 3.2.7-1 [125 kB] 214s Get:70 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-inflection all 0.3.1-3 [7326 B] 214s Get:71 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-iniconfig all 2.1.0-1 [6840 B] 214s Get:72 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-joserfc all 1.4.1-1 [41.8 kB] 214s Get:73 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-jsondiff all 2.1.2-1 [14.2 kB] 214s Get:74 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-ply all 3.11-9 [45.8 kB] 214s Get:75 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-jsonpath-ng all 1.7.0-3 [32.9 kB] 214s Get:76 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pathable all 0.4.4-1 [5604 B] 214s Get:77 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-jsonschema-path all 0.3.4-1 [8042 B] 214s Get:78 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-lazy-object-proxy arm64 1.12.0-1 [26.3 kB] 214s Get:79 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-lxml arm64 6.0.2-1 [2155 kB] 214s Get:80 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-responses all 0.25.8-1 [40.6 kB] 214s Get:81 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-xmltodict all 0.13.0-1ubuntu1 [14.3 kB] 214s Get:82 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-moto all 5.1.1-4 [3531 kB] 214s Get:83 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-multipart all 1.3.0-3 [15.5 kB] 215s Get:84 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mypy-extensions all 1.1.0-1 [6716 B] 215s Get:85 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-psutil arm64 7.1.0-1ubuntu1 [191 kB] 215s Get:86 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-mypy arm64 1.15.0-5 [8679 kB] 215s Get:87 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-rfc3339-validator all 0.1.4-2 [3930 B] 215s Get:88 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-openapi-schema-validator all 0.6.3-1 [8164 B] 215s Get:89 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-openapi-spec-validator all 0.7.1-3 [27.5 kB] 215s Get:90 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pip all 25.1.1+dfsg-1ubuntu2 [1416 kB] 215s Get:91 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pluggy all 1.6.0-1 [21.0 kB] 215s Get:92 http://ftpmaster.internal/ubuntu resolute/main arm64 python3-wcwidth all 0.2.13+dfsg1-1 [26.3 kB] 215s Get:93 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-prompt-toolkit all 3.0.52-1 [258 kB] 215s Get:94 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pycognito all 2024.5.1-2 [27.0 kB] 215s Get:95 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pyotp all 2.9.0-2 [17.3 kB] 215s Get:96 http://ftpmaster.internal/ubuntu resolute/universe arm64 python3-pytest all 8.3.5-2 [252 kB] 215s Get:97 http://ftpmaster.internal/ubuntu resolute/universe arm64 openstack-pkg-tools all 135ubuntu1 [99.5 kB] 215s Fetched 94.3 MB in 7s (13.5 MB/s) 215s Selecting previously unselected package libpython3.14-minimal:arm64. 215s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 88181 files and directories currently installed.) 215s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_arm64.deb ... 215s Unpacking libpython3.14-minimal:arm64 (3.14.0-4) ... 215s Selecting previously unselected package python3.14-minimal. 215s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_arm64.deb ... 215s Unpacking python3.14-minimal (3.14.0-4) ... 216s Selecting previously unselected package m4. 216s Preparing to unpack .../02-m4_1.4.20-2_arm64.deb ... 216s Unpacking m4 (1.4.20-2) ... 216s Selecting previously unselected package autoconf. 216s Preparing to unpack .../03-autoconf_2.72-3.1ubuntu1_all.deb ... 216s Unpacking autoconf (2.72-3.1ubuntu1) ... 216s Selecting previously unselected package autotools-dev. 216s Preparing to unpack .../04-autotools-dev_20240727.1_all.deb ... 216s Unpacking autotools-dev (20240727.1) ... 216s Selecting previously unselected package automake. 216s Preparing to unpack .../05-automake_1%3a1.18.1-2_all.deb ... 216s Unpacking automake (1:1.18.1-2) ... 216s Selecting previously unselected package autopoint. 216s Preparing to unpack .../06-autopoint_0.23.2-1_all.deb ... 216s Unpacking autopoint (0.23.2-1) ... 216s Selecting previously unselected package libisl23:arm64. 216s Preparing to unpack .../07-libisl23_0.27-1_arm64.deb ... 216s Unpacking libisl23:arm64 (0.27-1) ... 216s Selecting previously unselected package libmpc3:arm64. 216s Preparing to unpack .../08-libmpc3_1.3.1-2_arm64.deb ... 216s Unpacking libmpc3:arm64 (1.3.1-2) ... 216s Selecting previously unselected package cpp-15-aarch64-linux-gnu. 216s Preparing to unpack .../09-cpp-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package cpp-15. 216s Preparing to unpack .../10-cpp-15_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking cpp-15 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package cpp-aarch64-linux-gnu. 216s Preparing to unpack .../11-cpp-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 216s Unpacking cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 216s Selecting previously unselected package cpp. 216s Preparing to unpack .../12-cpp_4%3a15.2.0-4ubuntu1_arm64.deb ... 216s Unpacking cpp (4:15.2.0-4ubuntu1) ... 216s Selecting previously unselected package libcc1-0:arm64. 216s Preparing to unpack .../13-libcc1-0_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libcc1-0:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package libgomp1:arm64. 216s Preparing to unpack .../14-libgomp1_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libgomp1:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package libitm1:arm64. 216s Preparing to unpack .../15-libitm1_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libitm1:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package libasan8:arm64. 216s Preparing to unpack .../16-libasan8_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libasan8:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package liblsan0:arm64. 216s Preparing to unpack .../17-liblsan0_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking liblsan0:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package libtsan2:arm64. 216s Preparing to unpack .../18-libtsan2_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libtsan2:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package libubsan1:arm64. 216s Preparing to unpack .../19-libubsan1_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libubsan1:arm64 (15.2.0-7ubuntu1) ... 216s Selecting previously unselected package libhwasan0:arm64. 216s Preparing to unpack .../20-libhwasan0_15.2.0-7ubuntu1_arm64.deb ... 216s Unpacking libhwasan0:arm64 (15.2.0-7ubuntu1) ... 217s Selecting previously unselected package libgcc-15-dev:arm64. 217s Preparing to unpack .../21-libgcc-15-dev_15.2.0-7ubuntu1_arm64.deb ... 217s Unpacking libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 217s Selecting previously unselected package gcc-15-aarch64-linux-gnu. 217s Preparing to unpack .../22-gcc-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 217s Unpacking gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 217s Selecting previously unselected package gcc-15. 217s Preparing to unpack .../23-gcc-15_15.2.0-7ubuntu1_arm64.deb ... 217s Unpacking gcc-15 (15.2.0-7ubuntu1) ... 217s Selecting previously unselected package gcc-aarch64-linux-gnu. 217s Preparing to unpack .../24-gcc-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 217s Unpacking gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 217s Selecting previously unselected package gcc. 217s Preparing to unpack .../25-gcc_4%3a15.2.0-4ubuntu1_arm64.deb ... 217s Unpacking gcc (4:15.2.0-4ubuntu1) ... 217s Selecting previously unselected package libstdc++-15-dev:arm64. 217s Preparing to unpack .../26-libstdc++-15-dev_15.2.0-7ubuntu1_arm64.deb ... 217s Unpacking libstdc++-15-dev:arm64 (15.2.0-7ubuntu1) ... 217s Selecting previously unselected package g++-15-aarch64-linux-gnu. 217s Preparing to unpack .../27-g++-15-aarch64-linux-gnu_15.2.0-7ubuntu1_arm64.deb ... 217s Unpacking g++-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 218s Selecting previously unselected package g++-15. 218s Preparing to unpack .../28-g++-15_15.2.0-7ubuntu1_arm64.deb ... 218s Unpacking g++-15 (15.2.0-7ubuntu1) ... 218s Selecting previously unselected package g++-aarch64-linux-gnu. 218s Preparing to unpack .../29-g++-aarch64-linux-gnu_4%3a15.2.0-4ubuntu1_arm64.deb ... 218s Unpacking g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 218s Selecting previously unselected package g++. 218s Preparing to unpack .../30-g++_4%3a15.2.0-4ubuntu1_arm64.deb ... 218s Unpacking g++ (4:15.2.0-4ubuntu1) ... 218s Selecting previously unselected package build-essential. 218s Preparing to unpack .../31-build-essential_12.12ubuntu1_arm64.deb ... 218s Unpacking build-essential (12.12ubuntu1) ... 218s Selecting previously unselected package libdebhelper-perl. 218s Preparing to unpack .../32-libdebhelper-perl_13.24.2ubuntu1_all.deb ... 218s Unpacking libdebhelper-perl (13.24.2ubuntu1) ... 218s Selecting previously unselected package libtool. 218s Preparing to unpack .../33-libtool_2.5.4-7_all.deb ... 218s Unpacking libtool (2.5.4-7) ... 218s Selecting previously unselected package dh-autoreconf. 218s Preparing to unpack .../34-dh-autoreconf_21_all.deb ... 218s Unpacking dh-autoreconf (21) ... 218s Selecting previously unselected package libarchive-zip-perl. 218s Preparing to unpack .../35-libarchive-zip-perl_1.68-1_all.deb ... 218s Unpacking libarchive-zip-perl (1.68-1) ... 218s Selecting previously unselected package libfile-stripnondeterminism-perl. 218s Preparing to unpack .../36-libfile-stripnondeterminism-perl_1.15.0-1_all.deb ... 218s Unpacking libfile-stripnondeterminism-perl (1.15.0-1) ... 218s Selecting previously unselected package dh-strip-nondeterminism. 218s Preparing to unpack .../37-dh-strip-nondeterminism_1.15.0-1_all.deb ... 218s Unpacking dh-strip-nondeterminism (1.15.0-1) ... 218s Selecting previously unselected package debugedit. 218s Preparing to unpack .../38-debugedit_1%3a5.2-3_arm64.deb ... 218s Unpacking debugedit (1:5.2-3) ... 218s Selecting previously unselected package dwz. 218s Preparing to unpack .../39-dwz_0.16-2_arm64.deb ... 218s Unpacking dwz (0.16-2) ... 218s Selecting previously unselected package gettext. 218s Preparing to unpack .../40-gettext_0.23.2-1_arm64.deb ... 218s Unpacking gettext (0.23.2-1) ... 218s Selecting previously unselected package intltool-debian. 218s Preparing to unpack .../41-intltool-debian_0.35.0+20060710.6_all.deb ... 218s Unpacking intltool-debian (0.35.0+20060710.6) ... 218s Selecting previously unselected package po-debconf. 218s Preparing to unpack .../42-po-debconf_1.0.21+nmu1_all.deb ... 218s Unpacking po-debconf (1.0.21+nmu1) ... 218s Selecting previously unselected package debhelper. 218s Preparing to unpack .../43-debhelper_13.24.2ubuntu1_all.deb ... 218s Unpacking debhelper (13.24.2ubuntu1) ... 218s Selecting previously unselected package dh-python. 218s Preparing to unpack .../44-dh-python_6.20250414_all.deb ... 218s Unpacking dh-python (6.20250414) ... 218s Selecting previously unselected package libpython3.14-stdlib:arm64. 218s Preparing to unpack .../45-libpython3.14-stdlib_3.14.0-4_arm64.deb ... 218s Unpacking libpython3.14-stdlib:arm64 (3.14.0-4) ... 218s Selecting previously unselected package libxslt1.1:arm64. 218s Preparing to unpack .../46-libxslt1.1_1.1.43-0.3_arm64.deb ... 218s Unpacking libxslt1.1:arm64 (1.1.43-0.3) ... 218s Selecting previously unselected package pybuild-plugin-autopkgtest. 218s Preparing to unpack .../47-pybuild-plugin-autopkgtest_6.20250414_all.deb ... 218s Unpacking pybuild-plugin-autopkgtest (6.20250414) ... 218s Selecting previously unselected package python3-pyproject-hooks. 218s Preparing to unpack .../48-python3-pyproject-hooks_1.2.0-1_all.deb ... 218s Unpacking python3-pyproject-hooks (1.2.0-1) ... 218s Selecting previously unselected package python3-wheel. 218s Preparing to unpack .../49-python3-wheel_0.46.1-2_all.deb ... 218s Unpacking python3-wheel (0.46.1-2) ... 218s Selecting previously unselected package python3-build. 218s Preparing to unpack .../50-python3-build_1.2.2-4_all.deb ... 218s Unpacking python3-build (1.2.2-4) ... 218s Selecting previously unselected package python3-installer. 218s Preparing to unpack .../51-python3-installer_0.7.0+dfsg1-3_all.deb ... 218s Unpacking python3-installer (0.7.0+dfsg1-3) ... 218s Selecting previously unselected package pybuild-plugin-pyproject. 218s Preparing to unpack .../52-pybuild-plugin-pyproject_6.20250414_all.deb ... 218s Unpacking pybuild-plugin-pyproject (6.20250414) ... 219s Selecting previously unselected package python3.14. 219s Preparing to unpack .../53-python3.14_3.14.0-4_arm64.deb ... 219s Unpacking python3.14 (3.14.0-4) ... 219s Selecting previously unselected package python3-all. 219s Preparing to unpack .../54-python3-all_3.13.7-2_arm64.deb ... 219s Unpacking python3-all (3.13.7-2) ... 219s Selecting previously unselected package python3-antlr4. 219s Preparing to unpack .../55-python3-antlr4_4.9.2-1_all.deb ... 219s Unpacking python3-antlr4 (4.9.2-1) ... 219s Selecting previously unselected package python3-jsonpickle. 219s Preparing to unpack .../56-python3-jsonpickle_4.0.2+dfsg-2_all.deb ... 219s Unpacking python3-jsonpickle (4.0.2+dfsg-2) ... 219s Selecting previously unselected package python3-wrapt. 219s Preparing to unpack .../57-python3-wrapt_1.17.3-2_arm64.deb ... 219s Unpacking python3-wrapt (1.17.3-2) ... 219s Selecting previously unselected package python3-aws-xray-sdk. 219s Preparing to unpack .../58-python3-aws-xray-sdk_0.95-4_all.deb ... 219s Unpacking python3-aws-xray-sdk (0.95-4) ... 219s Selecting previously unselected package python3-click. 219s Preparing to unpack .../59-python3-click_8.2.0+0.really.8.1.8-1_all.deb ... 219s Unpacking python3-click (8.2.0+0.really.8.1.8-1) ... 219s Selecting previously unselected package python3-docker. 219s Preparing to unpack .../60-python3-docker_7.1.0-2ubuntu1_all.deb ... 219s Unpacking python3-docker (7.1.0-2ubuntu1) ... 219s Selecting previously unselected package python3-terminaltables3. 219s Preparing to unpack .../61-python3-terminaltables3_4.0.0-4_all.deb ... 219s Unpacking python3-terminaltables3 (4.0.0-4) ... 219s Selecting previously unselected package python3-envs. 219s Preparing to unpack .../62-python3-envs_1.2.6-4_all.deb ... 219s Unpacking python3-envs (1.2.6-4) ... 219s Selecting previously unselected package python3-itsdangerous. 219s Preparing to unpack .../63-python3-itsdangerous_2.2.0-2_all.deb ... 219s Unpacking python3-itsdangerous (2.2.0-2) ... 219s Selecting previously unselected package python3-werkzeug. 219s Preparing to unpack .../64-python3-werkzeug_3.1.3-2_all.deb ... 219s Unpacking python3-werkzeug (3.1.3-2) ... 219s Selecting previously unselected package python3-flask. 219s Preparing to unpack .../65-python3-flask_3.1.2-1ubuntu1_all.deb ... 219s Unpacking python3-flask (3.1.2-1ubuntu1) ... 219s Selecting previously unselected package python3-flask-cors. 219s Preparing to unpack .../66-python3-flask-cors_6.0.1-1_all.deb ... 219s Unpacking python3-flask-cors (6.0.1-1) ... 219s Selecting previously unselected package python3-freezegun. 219s Preparing to unpack .../67-python3-freezegun_1.5.1-1.2_all.deb ... 219s Unpacking python3-freezegun (1.5.1-1.2) ... 219s Selecting previously unselected package python3-graphql-core. 219s Preparing to unpack .../68-python3-graphql-core_3.2.7-1_all.deb ... 219s Unpacking python3-graphql-core (3.2.7-1) ... 219s Selecting previously unselected package python3-inflection. 219s Preparing to unpack .../69-python3-inflection_0.3.1-3_all.deb ... 219s Unpacking python3-inflection (0.3.1-3) ... 219s Selecting previously unselected package python3-iniconfig. 219s Preparing to unpack .../70-python3-iniconfig_2.1.0-1_all.deb ... 219s Unpacking python3-iniconfig (2.1.0-1) ... 219s Selecting previously unselected package python3-joserfc. 219s Preparing to unpack .../71-python3-joserfc_1.4.1-1_all.deb ... 219s Unpacking python3-joserfc (1.4.1-1) ... 219s Selecting previously unselected package python3-jsondiff. 219s Preparing to unpack .../72-python3-jsondiff_2.1.2-1_all.deb ... 219s Unpacking python3-jsondiff (2.1.2-1) ... 219s Selecting previously unselected package python3-ply. 219s Preparing to unpack .../73-python3-ply_3.11-9_all.deb ... 219s Unpacking python3-ply (3.11-9) ... 219s Selecting previously unselected package python3-jsonpath-ng. 219s Preparing to unpack .../74-python3-jsonpath-ng_1.7.0-3_all.deb ... 219s Unpacking python3-jsonpath-ng (1.7.0-3) ... 219s Selecting previously unselected package python3-pathable. 219s Preparing to unpack .../75-python3-pathable_0.4.4-1_all.deb ... 219s Unpacking python3-pathable (0.4.4-1) ... 219s Selecting previously unselected package python3-jsonschema-path. 219s Preparing to unpack .../76-python3-jsonschema-path_0.3.4-1_all.deb ... 219s Unpacking python3-jsonschema-path (0.3.4-1) ... 219s Selecting previously unselected package python3-lazy-object-proxy. 219s Preparing to unpack .../77-python3-lazy-object-proxy_1.12.0-1_arm64.deb ... 219s Unpacking python3-lazy-object-proxy (1.12.0-1) ... 219s Selecting previously unselected package python3-lxml:arm64. 219s Preparing to unpack .../78-python3-lxml_6.0.2-1_arm64.deb ... 219s Unpacking python3-lxml:arm64 (6.0.2-1) ... 219s Selecting previously unselected package python3-responses. 220s Preparing to unpack .../79-python3-responses_0.25.8-1_all.deb ... 220s Unpacking python3-responses (0.25.8-1) ... 220s Selecting previously unselected package python3-xmltodict. 220s Preparing to unpack .../80-python3-xmltodict_0.13.0-1ubuntu1_all.deb ... 220s Unpacking python3-xmltodict (0.13.0-1ubuntu1) ... 220s Selecting previously unselected package python3-moto. 220s Preparing to unpack .../81-python3-moto_5.1.1-4_all.deb ... 220s Unpacking python3-moto (5.1.1-4) ... 220s Selecting previously unselected package python3-multipart. 220s Preparing to unpack .../82-python3-multipart_1.3.0-3_all.deb ... 220s Unpacking python3-multipart (1.3.0-3) ... 220s Selecting previously unselected package python3-mypy-extensions. 220s Preparing to unpack .../83-python3-mypy-extensions_1.1.0-1_all.deb ... 220s Unpacking python3-mypy-extensions (1.1.0-1) ... 220s Selecting previously unselected package python3-psutil. 220s Preparing to unpack .../84-python3-psutil_7.1.0-1ubuntu1_arm64.deb ... 220s Unpacking python3-psutil (7.1.0-1ubuntu1) ... 220s Selecting previously unselected package python3-mypy. 220s Preparing to unpack .../85-python3-mypy_1.15.0-5_arm64.deb ... 220s Unpacking python3-mypy (1.15.0-5) ... 220s Selecting previously unselected package python3-rfc3339-validator. 220s Preparing to unpack .../86-python3-rfc3339-validator_0.1.4-2_all.deb ... 220s Unpacking python3-rfc3339-validator (0.1.4-2) ... 220s Selecting previously unselected package python3-openapi-schema-validator. 220s Preparing to unpack .../87-python3-openapi-schema-validator_0.6.3-1_all.deb ... 220s Unpacking python3-openapi-schema-validator (0.6.3-1) ... 220s Selecting previously unselected package python3-openapi-spec-validator. 220s Preparing to unpack .../88-python3-openapi-spec-validator_0.7.1-3_all.deb ... 220s Unpacking python3-openapi-spec-validator (0.7.1-3) ... 220s Selecting previously unselected package python3-pip. 220s Preparing to unpack .../89-python3-pip_25.1.1+dfsg-1ubuntu2_all.deb ... 220s Unpacking python3-pip (25.1.1+dfsg-1ubuntu2) ... 221s Selecting previously unselected package python3-pluggy. 221s Preparing to unpack .../90-python3-pluggy_1.6.0-1_all.deb ... 221s Unpacking python3-pluggy (1.6.0-1) ... 221s Selecting previously unselected package python3-wcwidth. 221s Preparing to unpack .../91-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... 221s Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... 221s Selecting previously unselected package python3-prompt-toolkit. 221s Preparing to unpack .../92-python3-prompt-toolkit_3.0.52-1_all.deb ... 221s Unpacking python3-prompt-toolkit (3.0.52-1) ... 221s Selecting previously unselected package python3-pycognito. 221s Preparing to unpack .../93-python3-pycognito_2024.5.1-2_all.deb ... 221s Unpacking python3-pycognito (2024.5.1-2) ... 221s Selecting previously unselected package python3-pyotp. 221s Preparing to unpack .../94-python3-pyotp_2.9.0-2_all.deb ... 221s Unpacking python3-pyotp (2.9.0-2) ... 221s Selecting previously unselected package python3-pytest. 221s Preparing to unpack .../95-python3-pytest_8.3.5-2_all.deb ... 221s Unpacking python3-pytest (8.3.5-2) ... 221s Selecting previously unselected package openstack-pkg-tools. 221s Preparing to unpack .../96-openstack-pkg-tools_135ubuntu1_all.deb ... 221s Unpacking openstack-pkg-tools (135ubuntu1) ... 221s Setting up dh-python (6.20250414) ... 221s Setting up python3-iniconfig (2.1.0-1) ... 221s Setting up python3-antlr4 (4.9.2-1) ... 222s Setting up python3-jsonpickle (4.0.2+dfsg-2) ... 222s Setting up libarchive-zip-perl (1.68-1) ... 222s Setting up python3-pathable (0.4.4-1) ... 222s Setting up python3-mypy-extensions (1.1.0-1) ... 222s Setting up libdebhelper-perl (13.24.2ubuntu1) ... 222s Setting up python3-ply (3.11-9) ... 222s Setting up libpython3.14-minimal:arm64 (3.14.0-4) ... 222s Setting up python3-docker (7.1.0-2ubuntu1) ... 223s Setting up python3-rfc3339-validator (0.1.4-2) ... 223s Setting up m4 (1.4.20-2) ... 223s Setting up python3-itsdangerous (2.2.0-2) ... 223s Setting up python3-inflection (0.3.1-3) ... 223s Setting up libgomp1:arm64 (15.2.0-7ubuntu1) ... 223s Setting up python3-click (8.2.0+0.really.8.1.8-1) ... 224s Setting up python3-wheel (0.46.1-2) ... 224s Setting up python3-terminaltables3 (4.0.0-4) ... 224s Setting up python3-psutil (7.1.0-1ubuntu1) ... 225s Setting up python3-joserfc (1.4.1-1) ... 225s Setting up python3-responses (0.25.8-1) ... 225s Setting up python3-xmltodict (0.13.0-1ubuntu1) ... 225s Setting up autotools-dev (20240727.1) ... 225s Setting up python3-pyotp (2.9.0-2) ... 225s Setting up python3-wcwidth (0.2.13+dfsg1-1) ... 226s Setting up python3-pyproject-hooks (1.2.0-1) ... 226s Setting up python3-werkzeug (3.1.3-2) ... 226s Setting up libmpc3:arm64 (1.3.1-2) ... 226s Setting up python3-wrapt (1.17.3-2) ... 226s Setting up python3-mypy (1.15.0-5) ... 229s Setting up autopoint (0.23.2-1) ... 229s Setting up python3-graphql-core (3.2.7-1) ... 229s Setting up python3-pip (25.1.1+dfsg-1ubuntu2) ... 231s Setting up python3-openapi-schema-validator (0.6.3-1) ... 231s Setting up python3-installer (0.7.0+dfsg1-3) ... 231s Setting up autoconf (2.72-3.1ubuntu1) ... 231s Setting up python3-pluggy (1.6.0-1) ... 232s Setting up libubsan1:arm64 (15.2.0-7ubuntu1) ... 232s Setting up dwz (0.16-2) ... 232s Setting up libhwasan0:arm64 (15.2.0-7ubuntu1) ... 232s Setting up libasan8:arm64 (15.2.0-7ubuntu1) ... 232s Setting up libxslt1.1:arm64 (1.1.43-0.3) ... 232s Setting up debugedit (1:5.2-3) ... 232s Setting up python3-jsondiff (2.1.2-1) ... 232s Setting up libtsan2:arm64 (15.2.0-7ubuntu1) ... 232s Setting up python3-lazy-object-proxy (1.12.0-1) ... 232s Setting up python3-jsonpath-ng (1.7.0-3) ... 232s Setting up python3-aws-xray-sdk (0.95-4) ... 233s Setting up libisl23:arm64 (0.27-1) ... 233s Setting up python3-build (1.2.2-4) ... 233s Setting up python3-multipart (1.3.0-3) ... 233s Setting up python3.14-minimal (3.14.0-4) ... 234s Setting up libcc1-0:arm64 (15.2.0-7ubuntu1) ... 234s Setting up python3-freezegun (1.5.1-1.2) ... 234s Setting up liblsan0:arm64 (15.2.0-7ubuntu1) ... 234s Setting up libitm1:arm64 (15.2.0-7ubuntu1) ... 234s Setting up automake (1:1.18.1-2) ... 234s update-alternatives: using /usr/bin/automake-1.18 to provide /usr/bin/automake (automake) in auto mode 234s Setting up python3-prompt-toolkit (3.0.52-1) ... 235s Setting up python3-jsonschema-path (0.3.4-1) ... 235s Setting up libfile-stripnondeterminism-perl (1.15.0-1) ... 235s Setting up cpp-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 235s Setting up gettext (0.23.2-1) ... 235s Setting up python3-openapi-spec-validator (0.7.1-3) ... 235s Setting up libgcc-15-dev:arm64 (15.2.0-7ubuntu1) ... 235s Setting up libpython3.14-stdlib:arm64 (3.14.0-4) ... 235s Setting up pybuild-plugin-pyproject (6.20250414) ... 235s Setting up python3-pytest (8.3.5-2) ... 236s Setting up python3-flask (3.1.2-1ubuntu1) ... 236s Setting up python3-envs (1.2.6-4) ... 236s Setting up intltool-debian (0.35.0+20060710.6) ... 236s Setting up cpp-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 236s Setting up python3-flask-cors (6.0.1-1) ... 236s Setting up libstdc++-15-dev:arm64 (15.2.0-7ubuntu1) ... 236s Setting up python3-moto (5.1.1-4) ... 241s Setting up dh-strip-nondeterminism (1.15.0-1) ... 241s Setting up cpp-15 (15.2.0-7ubuntu1) ... 241s Setting up python3-lxml:arm64 (6.0.2-1) ... 241s Setting up cpp (4:15.2.0-4ubuntu1) ... 241s Setting up python3.14 (3.14.0-4) ... 242s Setting up gcc-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 242s Setting up python3-pycognito (2024.5.1-2) ... 242s Setting up po-debconf (1.0.21+nmu1) ... 242s Setting up python3-all (3.13.7-2) ... 242s Setting up openstack-pkg-tools (135ubuntu1) ... 242s Setting up gcc-15 (15.2.0-7ubuntu1) ... 242s Setting up g++-15-aarch64-linux-gnu (15.2.0-7ubuntu1) ... 242s Setting up g++-15 (15.2.0-7ubuntu1) ... 242s Setting up gcc-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 242s Setting up libtool (2.5.4-7) ... 242s Setting up gcc (4:15.2.0-4ubuntu1) ... 242s Setting up dh-autoreconf (21) ... 242s Setting up g++-aarch64-linux-gnu (4:15.2.0-4ubuntu1) ... 242s Setting up debhelper (13.24.2ubuntu1) ... 242s Setting up g++ (4:15.2.0-4ubuntu1) ... 242s update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode 242s Setting up build-essential (12.12ubuntu1) ... 242s Setting up pybuild-plugin-autopkgtest (6.20250414) ... 242s Processing triggers for man-db (2.13.1-1) ... 243s Processing triggers for install-info (7.2-5) ... 243s Processing triggers for libc-bin (2.42-2ubuntu2) ... 243s Processing triggers for systemd (257.9-0ubuntu2) ... 244s autopkgtest [12:10:13]: test pybuild-autopkgtest: pybuild-autopkgtest 244s autopkgtest [12:10:13]: test pybuild-autopkgtest: [----------------------- 246s make: pyversions: No such file or directory 246s py3versions: no X-Python3-Version in control file, using supported versions 246s pybuild-autopkgtest 246s I: pybuild base:311: cd /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build; python3.14 -m pytest -m 'not network and not requires_docker' tests --deselect tests/test_cloudformation/test_validate.py --deselect tests/test_dynamodb/test_dynamodb_import_table.py --deselect tests/test_dynamodb/test_dynamodb_statements.py --deselect tests/test_s3/test_s3_select.py --deselect tests/test_stepfunctions/parser/ --deselect 'tests/test_stepfunctions/test_stepfunctions_versions.py::test_describe_state_machine_using_version_arn[use_parser]' --deselect tests/test_dynamodb/test_dynamodb_account_mode.py::test_dynamodb_with_account_id_routing --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls --deselect tests/test_firehose/test_firehose_put.py::test_put_record_http_destination --deselect tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination --deselect tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header --deselect tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins 271s ============================= test session starts ============================== 271s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 271s rootdir: /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build 271s configfile: pyproject.toml 271s plugins: typeguard-4.4.2 271s collected 9960 items / 140 deselected / 9820 selected 271s 282s tests/test_acm/test_acm.py ................................ [ 0%] 289s tests/test_acmpca/test_acmpca.py ................... [ 0%] 289s tests/test_amp/test_amp_logging_config.py .... [ 0%] 289s tests/test_amp/test_amp_rulegroupnamespaces.py ....... [ 0%] 290s tests/test_amp/test_amp_workspaces.py ........ [ 0%] 291s tests/test_apigateway/test_apigateway.py ............................... [ 1%] 292s .......................................... [ 1%] 292s tests/test_apigateway/test_apigateway_cloudformation.py .. [ 1%] 292s tests/test_apigateway/test_apigateway_custom_ids.py ... [ 1%] 293s tests/test_apigateway/test_apigateway_deployments.py .......... [ 1%] 293s tests/test_apigateway/test_apigateway_export.py ... [ 1%] 293s tests/test_apigateway/test_apigateway_gatewayresponses.py ........ [ 1%] 293s tests/test_apigateway/test_apigateway_importrestapi.py .... [ 1%] 293s tests/test_apigateway/test_apigateway_integration.py ..... [ 1%] 293s tests/test_apigateway/test_apigateway_putrestapi.py ........ [ 1%] 294s tests/test_apigateway/test_apigateway_stage.py ................ [ 2%] 294s tests/test_apigateway/test_apigateway_validators.py ..... [ 2%] 294s tests/test_apigateway/test_apigateway_vpclink.py ...... [ 2%] 294s tests/test_apigateway/test_server.py ..... [ 2%] 294s tests/test_apigatewaymanagementapi/test_apigatewaymanagementapi.py .... [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2.py ............ [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_authorizers.py ........ [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_domains.py ..... [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_integrationresponses.py ...... [ 2%] 295s . [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_integrations.py ........... [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_mappings.py ....... [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_models.py ...... [ 2%] 295s tests/test_apigatewayv2/test_apigatewayv2_reimport.py .... [ 2%] 296s tests/test_apigatewayv2/test_apigatewayv2_routes.py ............... [ 3%] 296s tests/test_apigatewayv2/test_apigatewayv2_stages.py ... [ 3%] 296s tests/test_apigatewayv2/test_apigatewayv2_tags.py .... [ 3%] 296s tests/test_apigatewayv2/test_apigatewayv2_vpclinks.py ........ [ 3%] 296s tests/test_apigatewayv2/test_server.py . [ 3%] 296s tests/test_appconfig/test_appconfig_applications.py .. [ 3%] 296s tests/test_appconfig/test_appconfig_config_profiles.py .. [ 3%] 296s tests/test_appconfig/test_appconfig_hosted_config_versions.py ... [ 3%] 297s tests/test_applicationautoscaling/test_applicationautoscaling.py ....... [ 3%] 297s ...... [ 3%] 297s tests/test_applicationautoscaling/test_applicationautoscaling_policies.py . [ 3%] 297s ... [ 3%] 297s tests/test_applicationautoscaling/test_validation.py ....... [ 3%] 297s tests/test_appmesh/test_appmesh.py ......... [ 3%] 298s tests/test_appsync/test_appsync.py ................. [ 3%] 298s tests/test_appsync/test_appsync_apikeys.py ....... [ 3%] 298s tests/test_appsync/test_appsync_schema.py ........... [ 3%] 298s tests/test_appsync/test_appsync_tags.py ...... [ 4%] 298s tests/test_appsync/test_server.py . [ 4%] 299s tests/test_athena/test_athena.py ....................... [ 4%] 299s tests/test_athena/test_athena_integration.py . [ 4%] 299s tests/test_athena/test_athena_server_api.py .s.. [ 4%] 301s tests/test_autoscaling/test_autoscaling.py ............................. [ 4%] 302s ........... [ 4%] 302s tests/test_autoscaling/test_autoscaling_cloudformation.py ..... [ 4%] 303s tests/test_autoscaling/test_autoscaling_group_filters.py .... [ 4%] 304s tests/test_autoscaling/test_autoscaling_groups.py ............ [ 4%] 304s tests/test_autoscaling/test_autoscaling_metrics.py . [ 4%] 304s tests/test_autoscaling/test_autoscaling_scheduledactions.py .......... [ 5%] 305s tests/test_autoscaling/test_autoscaling_tags.py ........ [ 5%] 305s tests/test_autoscaling/test_autoscaling_warm_pools.py .... [ 5%] 307s tests/test_autoscaling/test_elb.py .................. [ 5%] 307s tests/test_autoscaling/test_elbv2.py .. [ 5%] 308s tests/test_autoscaling/test_launch_configurations.py ............. [ 5%] 309s tests/test_autoscaling/test_policies.py .......... [ 5%] 309s tests/test_autoscaling/test_server.py . [ 5%] 310s tests/test_awslambda/test_awslambda_cloudformation.py ...FFFF [ 5%] 312s tests/test_awslambda/test_lambda.py .................................... [ 6%] 313s ................................ [ 6%] 314s tests/test_awslambda/test_lambda_alias.py ............... [ 6%] 314s tests/test_awslambda/test_lambda_concurrency.py ...... [ 6%] 315s tests/test_awslambda/test_lambda_eventsourcemapping.py FFFFF [ 6%] 315s tests/test_awslambda/test_lambda_function_urls.py ...... [ 6%] 315s tests/test_awslambda/test_lambda_invoke.py s. [ 6%] 315s tests/test_awslambda/test_lambda_layers.py ........ [ 6%] 316s tests/test_awslambda/test_lambda_policy.py ............. [ 6%] 316s tests/test_awslambda/test_lambda_tags.py ... [ 6%] 316s tests/test_awslambda/test_policy.py . [ 6%] 316s tests/test_awslambda_simple/test_lambda_simple.py ... [ 7%] 317s tests/test_backup/test_backup.py .................. [ 7%] 317s tests/test_batch/test_batch.py .. [ 7%] 317s tests/test_batch/test_batch_cloudformation.py ... [ 7%] 318s tests/test_batch/test_batch_compute_envs.py ............ [ 7%] 318s tests/test_batch/test_batch_job_queue.py ........ [ 7%] 319s tests/test_batch/test_batch_jobs.py ......... [ 7%] 319s tests/test_batch/test_batch_scheduling_policy.py ..... [ 7%] 319s tests/test_batch/test_batch_tags_job_definition.py ... [ 7%] 319s tests/test_batch/test_batch_tags_job_queue.py .... [ 7%] 319s tests/test_batch/test_batch_tags_scheduling_policy.py . [ 7%] 320s tests/test_batch/test_batch_task_definition.py .................. [ 7%] 320s tests/test_batch/test_server.py . [ 7%] 320s tests/test_batch/test_utils.py .................. [ 8%] 321s tests/test_batch_simple/test_batch_cloudformation.py ... [ 8%] 321s tests/test_batch_simple/test_batch_compute_envs.py .. [ 8%] 322s tests/test_batch_simple/test_batch_jobs.py ...... [ 8%] 323s tests/test_bedrock/test_bedrock.py ..................................... [ 8%] 324s ........... [ 8%] 324s tests/test_bedrockagent/test_bedrockagent.py ........................... [ 8%] 324s  [ 8%] 324s tests/test_budgets/test_budgets.py ........ [ 9%] 325s tests/test_budgets/test_notifications.py ..... [ 9%] 325s tests/test_budgets/test_server.py . [ 9%] 325s tests/test_ce/test_ce.py ....... [ 9%] 325s tests/test_ce/test_ce_cost_and_usage.py .. [ 9%] 325s tests/test_ce/test_ce_tags.py .. [ 9%] 330s tests/test_cloudformation/test_cloudformation_custom_resources.py s.. [ 9%] 330s tests/test_cloudformation/test_cloudformation_depends_on.py ... [ 9%] 330s tests/test_cloudformation/test_cloudformation_multi_accounts.py ........ [ 9%] 330s . [ 9%] 331s tests/test_cloudformation/test_cloudformation_nested_stacks.py .... [ 9%] 331s tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py ...... [ 9%] 334s ........................................................................ [ 10%] 335s ................................ [ 10%] 335s tests/test_cloudformation/test_cloudformation_stack_integration.py ..... [ 10%] 337s ............................. [ 10%] 337s tests/test_cloudformation/test_cloudformation_stack_policies.py ........ [ 10%] 337s  [ 10%] 337s tests/test_cloudformation/test_conditions.py ... [ 10%] 337s tests/test_cloudformation/test_import_value.py .. [ 10%] 337s tests/test_cloudformation/test_server.py . [ 10%] 337s tests/test_cloudformation/test_stack_parsing.py ........................ [ 11%] 337s . [ 11%] 337s tests/test_cloudformation/test_utilities.py .... [ 11%] 338s tests/test_cloudfront/test_cloudfront.py ..... [ 11%] 338s tests/test_cloudfront/test_cloudfront_dist_tags.py .. [ 11%] 338s tests/test_cloudfront/test_cloudfront_distributions.py ................. [ 11%] 339s .......................................... [ 11%] 339s tests/test_cloudfront/test_cloudfront_invalidation.py ....... [ 12%] 340s tests/test_cloudfront/test_cloudfront_keys.py .... [ 12%] 340s tests/test_cloudfront/test_cloudfront_oac.py .. [ 12%] 340s tests/test_cloudfront/test_server.py . [ 12%] 340s tests/test_cloudhsmv2/test_cloudhsmv2.py ............. [ 12%] 341s tests/test_cloudtrail/test_cloudtrail.py ............................. [ 12%] 341s tests/test_cloudtrail/test_cloudtrail_eventselectors.py ........ [ 12%] 341s tests/test_cloudtrail/test_cloudtrail_tags.py .... [ 12%] 341s tests/test_cloudtrail/test_server.py . [ 12%] 341s tests/test_cloudwatch/test_cloudwatch_alarms.py ....... [ 12%] 343s tests/test_cloudwatch/test_cloudwatch_boto3.py ......................... [ 12%] 344s ................ [ 13%] 344s tests/test_cloudwatch/test_cloudwatch_dashboards.py ....... [ 13%] 344s tests/test_cloudwatch/test_cloudwatch_expression_parser.py ... [ 13%] 344s tests/test_cloudwatch/test_cloudwatch_expressions.py ... [ 13%] 344s tests/test_cloudwatch/test_cloudwatch_tags.py ....... [ 13%] 344s tests/test_codebuild/test_codebuild.py ................... [ 13%] 345s tests/test_codecommit/test_codecommit.py ........ [ 13%] 345s tests/test_codepipeline/test_codepipeline.py ................ [ 13%] 346s tests/test_cognitoidentity/test_cognitoidentity.py ..................... [ 13%] 346s .. [ 14%] 346s tests/test_cognitoidentity/test_server.py ... [ 14%] 356s tests/test_cognitoidp/test_cognitoidp.py ............................... [ 14%] 377s ........................................................................ [ 15%] 398s ........................................................................ [ 15%] 409s ................................... [ 16%] 410s tests/test_cognitoidp/test_cognitoidp_exceptions.py ... [ 16%] 411s tests/test_cognitoidp/test_cognitoidp_replay.py .. [ 16%] 412s tests/test_cognitoidp/test_server.py ... [ 16%] 413s tests/test_comprehend/test_comprehend.py .................. [ 16%] 416s tests/test_config/test_config.py .................................. [ 16%] 416s tests/test_config/test_config_rules.py ........ [ 16%] 416s tests/test_config/test_config_rules_integration.py ... [ 16%] 417s tests/test_config/test_config_tags.py ... [ 16%] 417s tests/test_core/test_account_id_resolution.py . [ 16%] 418s tests/test_core/test_auth.py .......................... [ 17%] 418s tests/test_core/test_backenddict.py ............. [ 17%] 418s tests/test_core/test_backends.py . [ 17%] 418s tests/test_core/test_botocore_stubber.py . [ 17%] 419s tests/test_core/test_config.py .. [ 17%] 419s tests/test_core/test_decorator_calls.py ............................ [ 17%] 420s tests/test_core/test_ec2_vpc_endpoint_services.py ... [ 17%] 420s tests/test_core/test_environ_patching.py ... [ 17%] 420s tests/test_core/test_importorder.py ....... [ 17%] 420s tests/test_core/test_instance_metadata.py .... [ 17%] 420s tests/test_core/test_mock_regions.py ..... [ 17%] 420s tests/test_core/test_moto_api.py ...... [ 17%] 420s tests/test_core/test_mypy.py ... [ 17%] 420s tests/test_core/test_nested.py .. [ 18%] 420s tests/test_core/test_proxy.py sssss [ 18%] 420s tests/test_core/test_request_mocking.py ... [ 18%] 420s tests/test_core/test_request_passthrough.py . [ 18%] 420s tests/test_core/test_responses.py ......... [ 18%] 421s tests/test_core/test_responses_module.py ..... [ 18%] 422s tests/test_core/test_server.py .... [ 18%] 422s tests/test_core/test_settings.py ......... [ 18%] 423s tests/test_core/test_url_base_regex.py ................................. [ 18%] 424s ........................................................................ [ 19%] 425s ..................................................... [ 19%] 425s tests/test_core/test_url_mapping.py .. [ 20%] 425s tests/test_core/test_utils.py ............ [ 20%] 425s tests/test_databrew/test_databrew_datasets.py ............ [ 20%] 426s tests/test_databrew/test_databrew_jobs.py .......................... [ 20%] 426s tests/test_databrew/test_databrew_recipes.py ........................... [ 20%] 426s ......... [ 20%] 427s tests/test_databrew/test_databrew_rulesets.py .......... [ 20%] 427s tests/test_datapipeline/test_datapipeline.py ........ [ 21%] 427s tests/test_datapipeline/test_datapipeline_cloudformation.py . [ 21%] 427s tests/test_datapipeline/test_server.py . [ 21%] 427s tests/test_datasync/test_datasync.py ................... [ 21%] 428s tests/test_dax/test_dax.py ............................... [ 21%] 428s tests/test_dax/test_server.py . [ 21%] 429s tests/test_directconnect/test_directconnect.py .......... [ 21%] 429s tests/test_dms/test_dms.py ......... [ 21%] 430s tests/test_ds/test_ds.py ........... [ 21%] 430s tests/test_ds/test_ds_ad_connect.py ........ [ 21%] 431s tests/test_ds/test_ds_microsoft_ad.py ......... [ 22%] 431s tests/test_ds/test_ds_simple_ad_directory.py .... [ 22%] 432s tests/test_ds/test_ds_tags.py ... [ 22%] 432s tests/test_dsql/test_dsql.py .... [ 22%] 432s tests/test_dynamodb/exceptions/test_dynamodb_exceptions.py ............. [ 22%] 433s .............................................. [ 22%] 433s tests/test_dynamodb/exceptions/test_dynamodb_transactions.py ........ [ 22%] 434s tests/test_dynamodb/exceptions/test_key_length_exceptions.py ........ [ 22%] 434s tests/test_dynamodb/models/test_item.py ............. [ 23%] 434s tests/test_dynamodb/models/test_key_condition_expression_parser.py ..... [ 23%] 434s .......................... [ 23%] 434s tests/test_dynamodb/models/test_utilities.py ............ [ 23%] 435s tests/test_dynamodb/test_dynamodb.py ................................... [ 23%] 441s ........................................................................ [ 24%] 441s .................................. [ 24%] 442s tests/test_dynamodb/test_dynamodb_batch_get_item.py ....... [ 25%] 442s tests/test_dynamodb/test_dynamodb_batch_write.py ... [ 25%] 442s tests/test_dynamodb/test_dynamodb_cloudformation.py ... [ 25%] 443s tests/test_dynamodb/test_dynamodb_condition_expressions.py .......... [ 25%] 443s tests/test_dynamodb/test_dynamodb_consumedcapacity.py ...... [ 25%] 444s tests/test_dynamodb/test_dynamodb_create_table.py .............. [ 25%] 444s tests/test_dynamodb/test_dynamodb_executor.py ....................... [ 25%] 445s tests/test_dynamodb/test_dynamodb_export_table.py ....... [ 25%] 445s tests/test_dynamodb/test_dynamodb_expression_tokenizer.py .............. [ 25%] 445s ....... [ 25%] 445s tests/test_dynamodb/test_dynamodb_expressions.py ....................... [ 26%] 445s ................. [ 26%] 446s tests/test_dynamodb/test_dynamodb_query.py ................... [ 26%] 447s tests/test_dynamodb/test_dynamodb_resource_policy.py .............. [ 26%] 448s tests/test_dynamodb/test_dynamodb_scan.py .......................... [ 26%] 448s tests/test_dynamodb/test_dynamodb_table_with_range_key.py .............. [ 27%] 448s ........... [ 27%] 448s tests/test_dynamodb/test_dynamodb_table_without_range_key.py ........... [ 27%] 449s ............... [ 27%] 449s tests/test_dynamodb/test_dynamodb_transact.py .................. [ 27%] 450s tests/test_dynamodb/test_dynamodb_update_expressions.py ........ [ 27%] 450s tests/test_dynamodb/test_dynamodb_update_table.py ..... [ 27%] 450s tests/test_dynamodb/test_dynamodb_validation.py ..................... [ 27%] 450s tests/test_dynamodb/test_server.py . [ 27%] 450s tests/test_dynamodb_v20111205/test_server.py ........................... [ 28%] 450s .............. [ 28%] 450s tests/test_dynamodb_v20111205/test_servermode.py ss [ 28%] 451s tests/test_dynamodbstreams/test_dynamodbstreams.py .......... [ 28%] 451s tests/test_ebs/test_ebs.py ........ [ 28%] 451s tests/test_ec2/test_account_attributes.py . [ 28%] 455s tests/test_ec2/test_amis.py ............................................ [ 29%] 456s . [ 29%] 457s tests/test_ec2/test_availability_zones_and_regions.py .............. [ 29%] 457s tests/test_ec2/test_carrier_gateways.py ...... [ 29%] 458s tests/test_ec2/test_customer_gateways.py ...... [ 29%] 459s tests/test_ec2/test_dhcp_options.py .................. [ 29%] 460s tests/test_ec2/test_ec2_cloudformation.py ...................... [ 29%] 461s tests/test_ec2/test_ec2_integration.py . [ 29%] 461s tests/test_ec2/test_egress_only_igw.py ..... [ 29%] 464s tests/test_ec2/test_elastic_block_store.py ............................. [ 30%] 465s ............ [ 30%] 467s tests/test_ec2/test_elastic_ip_addresses.py ...................... [ 30%] 469s tests/test_ec2/test_elastic_network_interfaces.py ...................... [ 30%] 469s ......... [ 30%] 471s tests/test_ec2/test_fleets.py .................... [ 30%] 472s tests/test_ec2/test_flow_logs.py .............. [ 31%] 472s tests/test_ec2/test_flow_logs_cloudformation.py .. [ 31%] 472s tests/test_ec2/test_general.py .. [ 31%] 473s tests/test_ec2/test_hosts.py ........ [ 31%] 473s tests/test_ec2/test_iam_integration.py ....... [ 31%] 474s tests/test_ec2/test_instance_type_offerings.py .... [ 31%] 475s tests/test_ec2/test_instance_types.py ........... [ 31%] 478s tests/test_ec2/test_instances.py ....................................... [ 31%] 483s .......................................................... [ 32%] 484s tests/test_ec2/test_internet_gateways.py ................. [ 32%] 488s tests/test_ec2/test_key_pairs.py ................... [ 32%] 489s tests/test_ec2/test_launch_templates.py ...................... [ 33%] 489s tests/test_ec2/test_launch_templates_cloudformation.py .... [ 33%] 489s tests/test_ec2/test_nat_gateway.py ........ [ 33%] 491s tests/test_ec2/test_network_acls.py ............... [ 33%] 491s tests/test_ec2/test_prefix_lists.py ............. [ 33%] 492s tests/test_ec2/test_regions.py ........ [ 33%] 495s tests/test_ec2/test_route_tables.py ............................. [ 33%] 497s tests/test_ec2/test_security_groups.py ................................. [ 34%] 499s ................... [ 34%] 499s tests/test_ec2/test_security_groups_cloudformation.py .... [ 34%] 499s tests/test_ec2/test_server.py ... [ 34%] 499s tests/test_ec2/test_settings.py .... [ 34%] 501s tests/test_ec2/test_spot_fleet.py ................. [ 34%] 502s tests/test_ec2/test_spot_instances.py ............ [ 34%] 504s tests/test_ec2/test_subnets.py ............................. [ 35%] 505s tests/test_ec2/test_tags.py ................... [ 35%] 509s tests/test_ec2/test_transit_gateway.py ............................... [ 35%] 509s tests/test_ec2/test_transit_gateway_cloudformation.py .. [ 35%] 509s tests/test_ec2/test_transit_gateway_peering_attachments.py ........ [ 35%] 510s tests/test_ec2/test_utils.py ....... [ 35%] 511s tests/test_ec2/test_virtual_private_gateways.py ................ [ 35%] 511s tests/test_ec2/test_vpc_endpoint_services_integration.py . [ 35%] 514s tests/test_ec2/test_vpc_peering.py ........................... [ 36%] 515s tests/test_ec2/test_vpc_service_configuration_integration.py ........... [ 36%] 515s .... [ 36%] 518s tests/test_ec2/test_vpcs.py ............................................ [ 36%] 519s ........ [ 36%] 519s tests/test_ec2/test_vpn_connections.py ...... [ 36%] 519s tests/test_ec2/test_windows.py . [ 36%] 519s tests/test_ec2instanceconnect/test_ec2instanceconnect_boto3.py . [ 36%] 520s tests/test_ecr/test_ecr_boto3.py ....................................... [ 37%] 522s ............................................................ [ 37%] 522s tests/test_ecr/test_ecr_cloudformation.py ... [ 37%] 522s tests/test_ecr/test_ecr_policy_validation.py ...................... [ 38%] 522s tests/test_ecr/test_ecr_scanning_config.py ... [ 38%] 522s tests/test_ecs/test_ecs_account_settings.py ............. [ 38%] 523s tests/test_ecs/test_ecs_boto3.py ....................................... [ 38%] 527s ............................................................ [ 39%] 527s tests/test_ecs/test_ecs_capacity_provider.py ....... [ 39%] 527s tests/test_ecs/test_ecs_cloudformation.py .......... [ 39%] 527s tests/test_ecs/test_ecs_efs.py . [ 39%] 527s tests/test_ecs/test_ecs_task_def_tags.py . [ 39%] 527s tests/test_ecs/test_ecs_task_tags.py .. [ 39%] 528s tests/test_ecs/test_ecs_tasksets.py ......... [ 39%] 528s tests/test_efs/test_access_point_tagging.py .... [ 39%] 528s tests/test_efs/test_access_points.py ....... [ 39%] 528s tests/test_efs/test_efs_cloudformation.py .. [ 39%] 528s tests/test_efs/test_file_system.py ................. [ 39%] 528s tests/test_efs/test_filesystem_policy.py .. [ 40%] 528s tests/test_efs/test_filesystem_tagging.py .... [ 40%] 528s tests/test_efs/test_lifecycle_config.py ... [ 40%] 529s tests/test_efs/test_mount_target.py ................... [ 40%] 529s tests/test_efs/test_mount_target_security_groups.py .... [ 40%] 530s tests/test_efs/test_server.py ....... [ 40%] 573s tests/test_eks/test_eks.py ............................................. [ 40%] 577s ............................................ [ 41%] 577s tests/test_eks/test_eks_ec2.py ... [ 41%] 579s tests/test_eks/test_server.py .................. [ 41%] 580s tests/test_elasticache/test_elasticache.py ............................. [ 41%] 580s .... [ 41%] 580s tests/test_elasticache/test_server.py . [ 41%] 581s tests/test_elasticbeanstalk/test_elasticbeanstalk.py .......... [ 41%] 581s tests/test_elasticbeanstalk/test_server.py . [ 41%] 581s tests/test_elastictranscoder/test_elastictranscoder.py ................ [ 42%] 581s tests/test_elastictranscoder/test_server.py . [ 42%] 584s tests/test_elb/test_elb.py ......................................... [ 42%] 584s tests/test_elb/test_elb_availabilityzones.py . [ 42%] 584s tests/test_elb/test_elb_cloudformation.py ... [ 42%] 584s tests/test_elb/test_elb_policies.py .......... [ 42%] 584s tests/test_elb/test_elb_subnets.py .. [ 42%] 584s tests/test_elb/test_server.py . [ 42%] 588s tests/test_elbv2/test_elbv2.py ......................................... [ 43%] 592s ................ [ 43%] 593s tests/test_elbv2/test_elbv2_cloudformation.py ..... [ 43%] 593s tests/test_elbv2/test_elbv2_integration.py . [ 43%] 593s tests/test_elbv2/test_elbv2_listener_attributes.py . [ 43%] 594s tests/test_elbv2/test_elbv2_listener_rule_tags.py ... [ 43%] 597s tests/test_elbv2/test_elbv2_listener_rules.py .......................... [ 43%] 599s ............ [ 43%] 599s tests/test_elbv2/test_elbv2_listener_tags.py ... [ 43%] 599s tests/test_elbv2/test_elbv2_set_subnets.py .. [ 43%] 602s tests/test_elbv2/test_elbv2_target_groups.py ........................... [ 44%] 606s ............................................. [ 44%] 606s tests/test_elbv2/test_elbv2_target_health.py .. [ 44%] 606s tests/test_elbv2/test_server.py . [ 44%] 606s tests/test_emr/test_emr.py . [ 44%] 612s tests/test_emr/test_emr_boto3.py ............................ [ 44%] 612s tests/test_emr/test_emr_cloudformation.py ....... [ 44%] 613s tests/test_emr/test_emr_integration.py ...... [ 45%] 613s tests/test_emr/test_server.py . [ 45%] 613s tests/test_emr/test_utils.py .. [ 45%] 613s tests/test_emrcontainers/test_emrcontainers.py ......................... [ 45%] 615s ................................ [ 45%] 615s tests/test_emrcontainers/test_server.py . [ 45%] 616s tests/test_emrserverless/test_emrserverless.py ......................... [ 45%] 619s .................................... [ 46%] 619s tests/test_emrserverless/test_server.py . [ 46%] 619s tests/test_es/test_domain_tags.py ..... [ 46%] 619s tests/test_es/test_es.py ................... [ 46%] 619s tests/test_es/test_server.py . [ 46%] 619s tests/test_events/test_event_pattern.py ............ [ 46%] 620s tests/test_events/test_events.py ....................................... [ 47%] 623s ........................................................................ [ 47%] 623s ... [ 47%] 623s tests/test_events/test_events_cloudformation.py ...... [ 47%] 623s tests/test_events/test_events_http_integration.py . [ 47%] 625s tests/test_events/test_events_integration.py ...... [ 47%] 640s tests/test_events/test_events_lambdatriggers_integration.py .... [ 48%] 640s tests/test_events/test_events_partners_integration.py ... [ 48%] 641s tests/test_firehose/test_firehose.py ....... [ 48%] 641s tests/test_firehose/test_firehose_destination_types.py ..... [ 48%] 641s tests/test_firehose/test_firehose_encryption.py .... [ 48%] 641s tests/test_firehose/test_firehose_put.py ..... [ 48%] 641s tests/test_firehose/test_firehose_tags.py ... [ 48%] 641s tests/test_firehose/test_http_destinations.py .. [ 48%] 641s tests/test_forecast/test_forecast.py ..................... [ 48%] 644s tests/test_fsx/test_fsx.py ...... [ 48%] 644s tests/test_glacier/test_glacier_archives.py ... [ 48%] 649s tests/test_glacier/test_glacier_jobs.py .... [ 48%] 649s tests/test_glacier/test_glacier_vaults.py .... [ 48%] 649s tests/test_glacier/test_server.py . [ 48%] 651s tests/test_glue/test_datacatalog.py .................................... [ 49%] 651s ................. [ 49%] 652s tests/test_glue/test_glue.py ........................................... [ 49%] 653s ............... [ 49%] 653s tests/test_glue/test_glue_job_runs.py ...... [ 49%] 653s tests/test_glue/test_partition_filter.py ....... [ 49%] 654s tests/test_glue/test_schema_registry.py ................................ [ 50%] 655s ..................................... [ 50%] 656s tests/test_greengrass/test_greengrass_core.py ............. [ 50%] 657s tests/test_greengrass/test_greengrass_deployment.py ............... [ 50%] 657s tests/test_greengrass/test_greengrass_device.py ............... [ 51%] 658s tests/test_greengrass/test_greengrass_functions.py ................ [ 51%] 658s tests/test_greengrass/test_greengrass_groups.py ........................ [ 51%] 658s ....... [ 51%] 659s tests/test_greengrass/test_greengrass_resource.py .................... [ 51%] 659s tests/test_greengrass/test_greengrass_subscriptions.py ................. [ 51%] 660s ...... [ 52%] 660s tests/test_guardduty/test_guardduty.py ........... [ 52%] 660s tests/test_guardduty/test_guardduty_filters.py ..... [ 52%] 660s tests/test_guardduty/test_guardduty_organization.py .. [ 52%] 660s tests/test_guardduty/test_server.py . [ 52%] 663s tests/test_iam/test_iam.py ............................................. [ 52%] 667s ........................................................................ [ 53%] 670s ...................................... [ 53%] 670s tests/test_iam/test_iam_access_integration.py ... [ 53%] 670s tests/test_iam/test_iam_account_aliases.py . [ 53%] 672s tests/test_iam/test_iam_cloudformation.py .............................. [ 54%] 672s  [ 54%] 673s tests/test_iam/test_iam_groups.py ....................... [ 54%] 673s tests/test_iam/test_iam_oidc.py .................. [ 54%] 673s tests/test_iam/test_iam_password_last_used.py . [ 54%] 674s tests/test_iam/test_iam_policies.py .................................... [ 54%] 676s ........................................................................ [ 55%] 676s ..................... [ 55%] 678s tests/test_iam/test_iam_resets.py .. [ 55%] 678s tests/test_iam/test_iam_server_certificates.py ..... [ 55%] 680s tests/test_iam/test_iam_signing_certificates.py ...... [ 56%] 680s tests/test_iam/test_server.py . [ 56%] 681s tests/test_identitystore/test_identitystore.py ......................... [ 56%] 681s .. [ 56%] 681s tests/test_inspector2/test_inspector2.py .. [ 56%] 681s tests/test_inspector2/test_inspector2_admin_accounts.py . [ 56%] 681s tests/test_inspector2/test_inspector2_enable.py . [ 56%] 682s tests/test_inspector2/test_inspector2_findings.py . [ 56%] 682s tests/test_inspector2/test_inspector2_members.py . [ 56%] 682s tests/test_inspector2/test_inspector2_organization.py . [ 56%] 682s tests/test_inspector2/test_inspector2_tags.py .. [ 56%] 682s tests/test_iot/test_iot.py .... [ 56%] 683s tests/test_iot/test_iot_ca_certificates.py .......... [ 56%] 687s tests/test_iot/test_iot_certificates.py .............. [ 56%] 687s tests/test_iot/test_iot_cloudformation.py ................. [ 56%] 687s tests/test_iot/test_iot_deprecate_thing_type.py .... [ 56%] 688s tests/test_iot/test_iot_domain_configuration.py ............ [ 57%] 688s tests/test_iot/test_iot_indexing_configuration.py .. [ 57%] 688s tests/test_iot/test_iot_integration.py . [ 57%] 688s tests/test_iot/test_iot_job_executions.py ...... [ 57%] 688s tests/test_iot/test_iot_job_templates.py ......... [ 57%] 688s tests/test_iot/test_iot_jobs.py ........ [ 57%] 690s tests/test_iot/test_iot_policies.py ................. [ 57%] 690s tests/test_iot/test_iot_rolealias.py ....... [ 57%] 691s tests/test_iot/test_iot_search.py ............. [ 57%] 691s tests/test_iot/test_iot_thing_groups.py ................. [ 57%] 692s tests/test_iot/test_iot_thing_types.py ..... [ 57%] 692s tests/test_iot/test_iot_things.py ....... [ 57%] 692s tests/test_iot/test_iot_topic_rules.py .......... [ 58%] 693s tests/test_iot/test_server.py ... [ 58%] 694s tests/test_iotdata/test_iotdata.py ................... [ 58%] 694s tests/test_iotdata/test_server.py ... [ 58%] 694s tests/test_ivs/test_ivs.py ................. [ 58%] 694s tests/test_kafka/test_kafka.py ..... [ 58%] 698s tests/test_kinesis/test_kinesis.py .................................. [ 58%] 699s tests/test_kinesis/test_kinesis_boto3.py ................ [ 59%] 699s tests/test_kinesis/test_kinesis_cloudformation.py .... [ 59%] 699s tests/test_kinesis/test_kinesis_encryption.py ... [ 59%] 699s tests/test_kinesis/test_kinesis_monitoring.py ..... [ 59%] 699s tests/test_kinesis/test_kinesis_resource_policy.py ..... [ 59%] 699s tests/test_kinesis/test_kinesis_stream_consumers.py ....... [ 59%] 700s tests/test_kinesis/test_kinesis_stream_limits.py ....... [ 59%] 700s tests/test_kinesis/test_server.py . [ 59%] 700s tests/test_kinesisvideo/test_kinesisvideo.py ........ [ 59%] 700s tests/test_kinesisvideo/test_server.py . [ 59%] 700s tests/test_kinesisvideoarchivedmedia/test_kinesisvideoarchivedmedia.py . [ 59%] 700s .. [ 59%] 700s tests/test_kinesisvideoarchivedmedia/test_server.py . [ 59%] 704s tests/test_kms/test_kms_boto3.py ....................................... [ 59%] 711s ........................................................................ [ 60%] 731s .......................................... [ 61%] 737s tests/test_kms/test_kms_encrypt.py ................... [ 61%] 737s tests/test_kms/test_kms_grants.py ....... [ 61%] 738s tests/test_kms/test_kms_key_rotation.py ....... [ 61%] 739s tests/test_kms/test_kms_mac.py ...... [ 61%] 739s tests/test_kms/test_kms_policy_enforcement.py ........................ [ 61%] 741s tests/test_kms/test_model.py .... [ 61%] 741s tests/test_kms/test_server.py . [ 61%] 741s tests/test_kms/test_utils.py ..................... [ 61%] 742s tests/test_lakeformation/test_lakeformation.py ................... [ 62%] 742s tests/test_lakeformation/test_permission.py .. [ 62%] 742s tests/test_lakeformation/test_resource_tags_integration.py ..... [ 62%] 742s tests/test_lexv2models/test_lexv2models.py ....... [ 62%] 743s tests/test_logs/test_export_tasks.py ......... [ 62%] 743s tests/test_logs/test_integration.py ..... [ 62%] 744s tests/test_logs/test_logs.py ........................................... [ 62%] 745s .................. [ 63%] 745s tests/test_logs/test_logs_cloudformation.py . [ 63%] 745s tests/test_logs/test_logs_filter_log_events.py ........ [ 63%] 746s tests/test_logs/test_logs_metric_filters.py ............ [ 63%] 746s tests/test_logs/test_logs_query/test_boto3.py .... [ 63%] 746s tests/test_logs/test_logs_query/test_query.py .. [ 63%] 746s tests/test_logs/test_logs_query/test_query_parser.py ........... [ 63%] 746s tests/test_logs/test_logs_tags.py .. [ 63%] 746s tests/test_logs/test_models.py . [ 63%] 746s tests/test_managedblockchain/test_managedblockchain_invitations.py ... [ 63%] 746s tests/test_managedblockchain/test_managedblockchain_members.py ......... [ 63%] 746s ...... [ 63%] 746s tests/test_managedblockchain/test_managedblockchain_networks.py ...... [ 63%] 746s tests/test_managedblockchain/test_managedblockchain_nodes.py ........... [ 63%] 746s ...... [ 63%] 747s tests/test_managedblockchain/test_managedblockchain_proposals.py ....... [ 63%] 747s .. [ 63%] 747s tests/test_managedblockchain/test_managedblockchain_proposalvotes.py ... [ 64%] 747s .......... [ 64%] 752s tests/test_mediaconnect/test_mediaconnect.py ...FFFFFFFFFFFFFFFFFFFFFFFF [ 64%] 752s F [ 64%] 752s tests/test_mediaconnect/test_server.py . [ 64%] 753s tests/test_medialive/test_medialive.py ............ [ 64%] 753s tests/test_medialive/test_server.py .. [ 64%] 753s tests/test_mediapackage/test_mediapackage.py .............. [ 64%] 753s tests/test_mediapackage/test_server.py .. [ 64%] 754s tests/test_mediastore/test_mediastore.py ..................... [ 64%] 754s tests/test_mediastore/test_server.py . [ 64%] 754s tests/test_mediastoredata/test_mediastoredata.py ...... [ 65%] 754s tests/test_mediastoredata/test_server.py . [ 65%] 755s tests/test_memorydb/test_memorydb.py ................................... [ 65%] 756s .............. [ 65%] 756s tests/test_meteringmarketplace/test_meteringmarketplace.py . [ 65%] 756s tests/test_moto_api/mock_random/test_mock_random.py ... [ 65%] 757s tests/test_moto_api/recorder/test_recorder.py ........ [ 65%] 757s tests/test_moto_api/seeder/test_seeder.py ... [ 65%] 757s tests/test_moto_api/state_manager/servermode/test_inmemory_server.py ... [ 65%] 757s  [ 65%] 757s tests/test_moto_api/state_manager/servermode/test_state_manager.py sss [ 65%] 757s tests/test_moto_api/state_manager/test_batch_integration.py . [ 65%] 759s tests/test_moto_api/state_manager/test_managed_state_model.py ....... [ 65%] 759s tests/test_moto_api/state_manager/test_state_manager.py ....... [ 65%] 760s tests/test_mq/test_mq.py ................ [ 66%] 760s tests/test_mq/test_mq_configuration.py ......... [ 66%] 760s tests/test_mq/test_mq_tags.py ..... [ 66%] 760s tests/test_mq/test_mq_users.py ....... [ 66%] 760s tests/test_mq/test_server.py . [ 66%] 760s tests/test_neptune/test_cluster_options.py . [ 66%] 761s tests/test_neptune/test_cluster_tags.py . [ 66%] 761s tests/test_neptune/test_clusters.py ....... [ 66%] 761s tests/test_neptune/test_global_clusters.py .... [ 66%] 762s tests/test_networkmanager/test_networkmanager.py ..................... [ 66%] 762s tests/test_networkmanager/test_server.py ... [ 66%] 762s tests/test_opensearch/test_domain_tags.py .. [ 66%] 762s tests/test_opensearch/test_opensearch.py .............. [ 66%] 762s tests/test_opensearchserverless/test_opensearchserverless.py ........... [ 66%] 762s ............ [ 67%] 763s tests/test_opsworks/test_apps.py FF [ 67%] 763s tests/test_opsworks/test_instances.py FFF [ 67%] 763s tests/test_opsworks/test_layers.py FF [ 67%] 763s tests/test_opsworks/test_stack.py FF [ 67%] 764s tests/test_organizations/test_organizations_boto3.py ................... [ 67%] 766s ........................................................................ [ 68%] 766s ................. [ 68%] 767s tests/test_osis/test_osis.py ................ [ 68%] 767s tests/test_osis/test_server.py . [ 68%] 767s tests/test_panorama/test_application_instance.py ...... [ 68%] 767s tests/test_panorama/test_nodes.py ... [ 68%] 768s tests/test_panorama/test_panorama_device.py ............... [ 68%] 768s tests/test_panorama/test_server.py . [ 68%] 768s tests/test_personalize/test_personalize_schema.py ........ [ 68%] 768s tests/test_pinpoint/test_pinpoint.py ....... [ 68%] 768s tests/test_pinpoint/test_pinpoint_application_tags.py .... [ 68%] 769s tests/test_pinpoint/test_pinpoint_event_stream.py ... [ 68%] 769s tests/test_polly/test_polly.py .............. [ 69%] 769s tests/test_polly/test_server.py . [ 69%] 769s tests/test_qldb/test_qldb.py EE [ 69%] 769s tests/test_quicksight/test_quicksight_datasets.py .. [ 69%] 770s tests/test_quicksight/test_quicksight_groups.py ............... [ 69%] 771s tests/test_quicksight/test_quicksight_users.py ....................... [ 69%] 772s tests/test_ram/test_ram.py ............ [ 69%] 772s tests/test_rds/test_db_cluster_param_group.py . [ 69%] 772s tests/test_rds/test_db_cluster_params.py . [ 69%] 772s tests/test_rds/test_filters.py .............................. [ 69%] 772s tests/test_rds/test_global_clusters.py ........ [ 69%] 776s tests/test_rds/test_rds.py ............................................. [ 70%] 780s ........................................................................ [ 71%] 783s ........................................................................ [ 71%] 785s .......... [ 72%] 785s tests/test_rds/test_rds_cloudformation.py ....... [ 72%] 787s tests/test_rds/test_rds_clusters.py .................................... [ 72%] 790s ........................................ [ 72%] 790s tests/test_rds/test_rds_clusters_with_instances.py ..... [ 72%] 790s tests/test_rds/test_rds_event_subscriptions.py ...... [ 72%] 791s tests/test_rds/test_rds_export_tasks.py ........ [ 73%] 791s tests/test_rds/test_rds_proxy.py FFFFF. [ 73%] 792s tests/test_rds/test_rds_proxy_target_groups.py ... [ 73%] 792s tests/test_rds/test_server.py .. [ 73%] 792s tests/test_rds/test_utils.py ................ [ 73%] 792s tests/test_rdsdata/test_rdsdata.py .. [ 73%] 793s tests/test_redshift/test_redshift.py ................................... [ 73%] 794s ............................... [ 74%] 795s tests/test_redshift/test_redshift_cloudformation.py . [ 74%] 795s tests/test_redshift/test_server.py .............. [ 74%] 795s tests/test_redshiftdata/test_redshiftdata.py ......... [ 74%] 795s tests/test_redshiftdata/test_server.py ........ [ 74%] 795s tests/test_rekognition/test_rekognition.py ........ [ 74%] 795s tests/test_resiliencehub/test_resiliencehub.py ........... [ 74%] 795s tests/test_resiliencehub/test_resiliencyhub_resources.py ..... [ 74%] 795s tests/test_resiliencehub/test_resiliencyhub_tagging.py .. [ 74%] 796s tests/test_resourcegroups/test_resourcegroups.py ............ [ 74%] 796s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_dynamodb.py . [ 74%] 796s . [ 74%] 796s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_glue.py . [ 74%] 796s  [ 74%] 796s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_logs.py . [ 74%] 796s . [ 74%] 797s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_rds.py .. [ 74%] 797s  [ 74%] 797s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py ... [ 74%] 799s .............FFF............ [ 75%] 799s tests/test_resourcegroupstaggingapi/test_server.py . [ 75%] 799s tests/test_robomaker/test_robomaker.py F [ 75%] 799s tests/test_route53/test_change_set_model.py ... [ 75%] 803s tests/test_route53/test_route53.py ..................................... [ 75%] 803s .............. [ 75%] 804s tests/test_route53/test_route53_cloudformation.py ...... [ 75%] 804s tests/test_route53/test_route53_delegationsets.py ........ [ 75%] 804s tests/test_route53/test_route53_healthchecks.py .......... [ 75%] 805s tests/test_route53/test_route53_query_logging_config.py ...... [ 75%] 805s tests/test_route53/test_route53_vpcs.py ....... [ 76%] 805s tests/test_route53/test_server.py . [ 76%] 806s tests/test_route53domains/test_route53domains_domain.py ................ [ 76%] 806s ................ [ 76%] 807s tests/test_route53resolver/test_route53resolver_endpoint.py ............ [ 76%] 808s .......... [ 76%] 810s tests/test_route53resolver/test_route53resolver_rule.py ........... [ 76%] 810s tests/test_route53resolver/test_route53resolver_rule_associations.py ... [ 76%] 810s ........ [ 76%] 811s tests/test_route53resolver/test_route53resolver_tags.py .... [ 76%] 813s tests/test_s3/test_s3.py ............................................... [ 77%] 817s ........................................................................ [ 78%] 819s ....................................... [ 78%] 820s tests/test_s3/test_s3_acl.py .......................... [ 78%] 821s tests/test_s3/test_s3_auth.py .... [ 78%] 823s tests/test_s3/test_s3_bucket_policy.py ........... [ 78%] 823s tests/test_s3/test_s3_classdecorator.py . [ 78%] 823s tests/test_s3/test_s3_cloudformation.py ..... [ 78%] 823s tests/test_s3/test_s3_config.py ...... [ 79%] 826s tests/test_s3/test_s3_copyobject.py .................................... [ 79%] 826s  [ 79%] 827s tests/test_s3/test_s3_cross_account.py . [ 79%] 827s tests/test_s3/test_s3_custom_endpoint.py .......... [ 79%] 828s tests/test_s3/test_s3_encryption.py ...... [ 79%] 828s tests/test_s3/test_s3_eventbridge_integration.py .......... [ 79%] 860s tests/test_s3/test_s3_file_handles.py ........................ [ 79%] 862s tests/test_s3/test_s3_lambda_integration.py ...... [ 79%] 862s tests/test_s3/test_s3_lifecycle.py .......... [ 80%] 864s tests/test_s3/test_s3_list_object_versions.py ............ [ 80%] 864s tests/test_s3/test_s3_list_objects.py .. [ 80%] 865s tests/test_s3/test_s3_locales.py . [ 80%] 877s tests/test_s3/test_s3_lock.py ..F........... [ 80%] 877s tests/test_s3/test_s3_logging.py ........... [ 80%] 877s tests/test_s3/test_s3_metadata.py . [ 80%] 880s tests/test_s3/test_s3_multipart.py ..................................... [ 80%] 880s  [ 80%] 880s tests/test_s3/test_s3_notifications.py ............ [ 81%] 881s tests/test_s3/test_s3_object_attributes.py ........ [ 81%] 881s tests/test_s3/test_s3_ownership.py ... [ 81%] 881s tests/test_s3/test_s3_replication.py ....... [ 81%] 881s tests/test_s3/test_s3_storageclass.py ............ [ 81%] 882s tests/test_s3/test_s3_tagging.py ............ [ 81%] 882s tests/test_s3/test_s3_utils.py ........... [ 81%] 882s tests/test_s3/test_server.py ............. [ 81%] 882s tests/test_s3bucket_path/test_s3bucket_path_utils.py ... [ 81%] 882s tests/test_s3bucket_path/test_server.py ..... [ 81%] 883s tests/test_s3control/test_s3control.py . [ 81%] 883s tests/test_s3control/test_s3control_access_points.py .... [ 81%] 883s tests/test_s3control/test_s3control_accesspoint_policy.py ..... [ 81%] 886s tests/test_s3control/test_s3control_config_integration.py .. [ 81%] 886s tests/test_s3control/test_s3control_s3.py ... [ 81%] 888s tests/test_s3tables/test_s3tables.py ............F...F..F.FFFF.. [ 82%] 888s tests/test_s3tables/test_server.py .......F. [ 82%] 888s tests/test_sagemaker/test_sagemaker_automljobs.py ....... [ 82%] 889s tests/test_sagemaker/test_sagemaker_cloudformation.py .................. [ 82%] 890s .. [ 82%] 890s tests/test_sagemaker/test_sagemaker_cluster.py .......... [ 82%] 890s tests/test_sagemaker/test_sagemaker_compilation_jobs.py ........ [ 82%] 890s tests/test_sagemaker/test_sagemaker_data_quality_jobs_definitions.py ... [ 82%] 890s . [ 82%] 891s tests/test_sagemaker/test_sagemaker_domains.py ...... [ 82%] 891s tests/test_sagemaker/test_sagemaker_endpoint.py ................... [ 83%] 891s tests/test_sagemaker/test_sagemaker_experiment.py ..... [ 83%] 891s tests/test_sagemaker/test_sagemaker_feature_groups.py .. [ 83%] 892s tests/test_sagemaker/test_sagemaker_hyper_parameter_tuning_job.py ...... [ 83%] 892s . [ 83%] 892s tests/test_sagemaker/test_sagemaker_model_bias_job_definitions.py .... [ 83%] 895s tests/test_sagemaker/test_sagemaker_model_cards.py ......... [ 83%] 895s tests/test_sagemaker/test_sagemaker_model_expainability.py ....... [ 83%] 895s tests/test_sagemaker/test_sagemaker_model_package_groups.py ............ [ 83%] 895s  [ 83%] 896s tests/test_sagemaker/test_sagemaker_model_packages.py .................. [ 83%] 896s ....... [ 83%] 896s tests/test_sagemaker/test_sagemaker_model_quality.py ....... [ 83%] 897s tests/test_sagemaker/test_sagemaker_models.py .......... [ 83%] 897s tests/test_sagemaker/test_sagemaker_notebooks.py ......... [ 84%] 901s tests/test_sagemaker/test_sagemaker_pipeline.py ........................ [ 84%] 902s .................. [ 84%] 902s tests/test_sagemaker/test_sagemaker_processing.py .......... [ 84%] 902s tests/test_sagemaker/test_sagemaker_search.py ..... [ 84%] 904s tests/test_sagemaker/test_sagemaker_training.py ............ [ 84%] 905s tests/test_sagemaker/test_sagemaker_transform.py ............ [ 84%] 905s tests/test_sagemaker/test_sagemaker_trial.py ....... [ 84%] 906s tests/test_sagemaker/test_sagemaker_trial_component.py ........... [ 85%] 906s tests/test_sagemakermetrics/test_sagemakermetrics.py .. [ 85%] 906s tests/test_sagemakermetrics/test_server.py . [ 85%] 906s tests/test_sagemakerruntime/test_sagemakerruntime.py .... [ 85%] 906s tests/test_scheduler/test_schedule_groups.py ... [ 85%] 906s tests/test_scheduler/test_scheduler.py .................. [ 85%] 906s tests/test_scheduler/test_scheduler_tags.py .. [ 85%] 906s tests/test_scheduler/test_server.py . [ 85%] 907s tests/test_sdb/test_sdb_attributes.py ......... [ 85%] 907s tests/test_sdb/test_sdb_domains.py ................. [ 85%] 907s tests/test_sdb/test_server.py . [ 85%] 908s tests/test_secretsmanager/test_list_secrets.py ......................... [ 85%] 908s . [ 85%] 908s tests/test_secretsmanager/test_policy.py .... [ 85%] 908s tests/test_secretsmanager/test_rotate_simple_lambda.py .. [ 85%] 908s tests/test_secretsmanager/test_secrets_duplication.py .......... [ 86%] 909s tests/test_secretsmanager/test_secretsmanager.py ....................... [ 86%] 911s ......................................s............ss................... [ 87%] 911s .............. [ 87%] 912s tests/test_secretsmanager/test_server.py ............................. [ 87%] 912s tests/test_securityhub/test_securityhub.py ..... [ 87%] 912s tests/test_servicediscovery/test_server.py . [ 87%] 912s tests/test_servicediscovery/test_servicediscovery_httpnamespaces.py .... [ 87%] 912s .......... [ 87%] 913s tests/test_servicediscovery/test_servicediscovery_instance.py .......... [ 87%] 913s ... [ 87%] 913s tests/test_servicediscovery/test_servicediscovery_operations.py ....... [ 87%] 913s tests/test_servicediscovery/test_servicediscovery_service.py ....... [ 87%] 913s tests/test_servicediscovery/test_servicediscovery_tags.py ...... [ 87%] 913s tests/test_servicequotas/test_servicequotas.py .... [ 88%] 913s tests/test_ses/test_server.py .. [ 88%] 915s tests/test_ses/test_ses_boto3.py ....................................... [ 88%] 915s  [ 88%] 916s tests/test_ses/test_ses_sns_boto3.py ........ [ 88%] 916s tests/test_ses/test_ses_utils.py . [ 88%] 916s tests/test_ses/test_templating.py ......... [ 88%] 916s tests/test_sesv2/test_server.py . [ 88%] 917s tests/test_sesv2/test_sesv2.py .......................... [ 88%] 917s tests/test_shield/test_shield.py ...................... [ 89%] 917s tests/test_signer/test_signing_platforms.py . [ 89%] 917s tests/test_signer/test_signing_profiles.py .... [ 89%] 918s tests/test_sns/test_application_boto3.py ..................... [ 89%] 919s tests/test_sns/test_http_message_verification.py . [ 89%] 920s tests/test_sns/test_publish_batch.py ........ [ 89%] 926s tests/test_sns/test_publishing_boto3.py ................................ [ 89%] 938s ........................................................................ [ 90%] 939s ... [ 90%] 939s tests/test_sns/test_server.py . [ 90%] 939s tests/test_sns/test_sns_cloudformation.py ...... [ 90%] 949s tests/test_sns/test_subscriptions_boto3.py ................... [ 90%] 951s tests/test_sns/test_topics_boto3.py ......................... [ 91%] 951s tests/test_sns/test_utils.py ... [ 91%] 951s tests/test_special_cases/test_custom_amis.py . [ 91%] 958s tests/test_sqs/test_server.py ... [ 91%] 969s tests/test_sqs/test_sqs.py ............................................. [ 91%] 994s ........................................................................ [ 92%] 1011s ........................ [ 92%] 1012s tests/test_sqs/test_sqs_cloudformation.py ....... [ 92%] 1012s tests/test_sqs/test_sqs_integration.py F [ 92%] 1012s tests/test_sqs/test_sqs_multiaccount.py . [ 92%] 1013s tests/test_ssm/test_ssm_boto3.py ....................................... [ 93%] 1015s ................................................. [ 93%] 1015s tests/test_ssm/test_ssm_cloudformation.py . [ 93%] 1016s tests/test_ssm/test_ssm_default_amis.py .. [ 93%] 1017s tests/test_ssm/test_ssm_defaults.py ... [ 93%] 1017s tests/test_ssm/test_ssm_doc_permissions.py ...................... [ 93%] 1018s tests/test_ssm/test_ssm_docs.py ........ [ 93%] 1018s tests/test_ssm/test_ssm_ec2_integration.py . [ 93%] 1018s tests/test_ssm/test_ssm_ecs_images.py . [ 93%] 1019s tests/test_ssm/test_ssm_maintenance_windows.py ............ [ 94%] 1020s tests/test_ssm/test_ssm_parameterstore.py ......... [ 94%] 1020s tests/test_ssm/test_ssm_patch_baseline.py .. [ 94%] 1020s tests/test_ssm/test_ssm_secretsmanager.py ...... [ 94%] 1020s tests/test_ssm/test_ssm_utils.py ... [ 94%] 1020s tests/test_ssoadmin/test_server.py . [ 94%] 1021s tests/test_ssoadmin/test_ssoadmin.py .................. [ 94%] 1021s tests/test_ssoadmin/test_ssoadmin_instances.py .. [ 94%] 1021s tests/test_ssoadmin/test_ssoadmin_permission_sets.py .. [ 94%] 1021s tests/test_ssoadmin/test_ssoadmin_policies.py ........... [ 94%] 1022s tests/test_stepfunctions/test_stepfunctions.py ......................... [ 94%] 1023s ....................... [ 95%] 1023s tests/test_stepfunctions/test_stepfunctions_cloudformation.py ... [ 95%] 1023s tests/test_stepfunctions/test_stepfunctions_versions.py ... [ 95%] 1023s tests/test_sts/test_server.py .... [ 95%] 1024s tests/test_sts/test_sts.py ...................... [ 95%] 1024s tests/test_sts/test_sts_integration.py ... [ 95%] 1024s tests/test_support/test_server.py .... [ 95%] 1025s tests/test_support/test_support.py ..................................... [ 95%] 1025s .... [ 95%] 1025s tests/test_swf/models/test_activity_task.py ....... [ 96%] 1025s tests/test_swf/models/test_decision_task.py ..... [ 96%] 1025s tests/test_swf/models/test_domain.py ........ [ 96%] 1025s tests/test_swf/models/test_generic_type.py .... [ 96%] 1025s tests/test_swf/models/test_history_event.py ... [ 96%] 1025s tests/test_swf/models/test_timeout.py . [ 96%] 1025s tests/test_swf/models/test_timer.py .... [ 96%] 1026s tests/test_swf/models/test_workflow_execution.py ....................... [ 96%] 1026s ............ [ 96%] 1029s tests/test_swf/responses/test_activity_tasks.py ............. [ 96%] 1029s tests/test_swf/responses/test_activity_types.py ............. [ 96%] 1035s tests/test_swf/responses/test_decision_tasks.py ....................... [ 97%] 1035s tests/test_swf/responses/test_domains.py ............. [ 97%] 1036s tests/test_swf/responses/test_timeouts.py ... [ 97%] 1036s tests/test_swf/responses/test_workflow_executions.py .............. [ 97%] 1036s tests/test_swf/responses/test_workflow_types.py ............. [ 97%] 1037s tests/test_swf/test_exceptions.py ............ [ 97%] 1037s tests/test_swf/test_utils.py . [ 97%] 1037s tests/test_textract/test_server.py ..... [ 97%] 1037s tests/test_textract/test_textract.py .... [ 97%] 1037s tests/test_timestreaminfluxdb/test_timestreaminfluxdb.py ........... [ 97%] 1037s tests/test_timestreaminfluxdb/test_timestreaminfluxdb_tagging.py ... [ 97%] 1037s tests/test_timestreamquery/test_timestreamquery.py ..... [ 97%] 1037s tests/test_timestreamwrite/test_server.py . [ 98%] 1038s tests/test_timestreamwrite/test_timestreamwrite_database.py ....... [ 98%] 1038s tests/test_timestreamwrite/test_timestreamwrite_table.py .......... [ 98%] 1038s tests/test_timestreamwrite/test_timestreamwrite_tagging.py ..... [ 98%] 1039s tests/test_transcribe/test_transcribe_boto3.py ....................... [ 98%] 1039s tests/test_transfer/test_transfer.py ... [ 98%] 1039s tests/test_utilities/test_docker_utilities.py ....... [ 98%] 1039s tests/test_utilities/test_id_generator.py .......... [ 98%] 1039s tests/test_utilities/test_paginator.py .................... [ 98%] 1039s tests/test_utilities/test_tagging_service.py ........... [ 98%] 1042s tests/test_utilities/test_threaded_server.py ..... [ 99%] 1042s tests/test_utilities/test_utils.py .. [ 99%] 1042s tests/test_wafv2/test_server.py .. [ 99%] 1042s tests/test_wafv2/test_utils.py . [ 99%] 1042s tests/test_wafv2/test_wafv2.py .......... [ 99%] 1042s tests/test_wafv2/test_wafv2_integration.py .... [ 99%] 1042s tests/test_wafv2/test_wafv2_logging_configuration.py .. [ 99%] 1042s tests/test_wafv2/test_wafv2_rules.py ..... [ 99%] 1043s tests/test_wafv2/test_wafv2_tags.py .... [ 99%] 1046s tests/test_workspaces/test_workspaces.py F..FFFFFFFFFFF.FFFFFFF.FFFF.FF [ 99%] 1047s tests/test_workspacesweb/test_workspacesweb.py ......................... [ 99%] 1047s  [ 99%] 1047s tests/test_xray/test_xray_boto3.py ...... [ 99%] 1047s tests/test_xray/test_xray_client.py .... [100%] 1047s 1047s ==================================== ERRORS ==================================== 1047s _______ ERROR at setup of test_create_describe_update_and_delete_ledger ________ 1047s 1047s @pytest.fixture(name="client") 1047s def fixture_qldb_client(): 1047s with mock_aws(): 1047s > yield boto3.client("qldb", region_name="us-east-1") 1047s 1047s tests/test_qldb/test_qldb.py:18: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1047s return _get_default_session().client(*args, **kwargs) 1047s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1047s return self._session.create_client( 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1047s client = client_creator.create_client( 1047s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1047s service_model = self._load_service_model(service_name, api_version) 1047s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1047s json_model = self._loader.load_service_model( 1047s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1047s data = func(self, *args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = , service_name = 'qldb' 1047s type_name = 'service-2', api_version = None 1047s 1047s @instance_cache 1047s def load_service_model(self, service_name, type_name, api_version=None): 1047s  """Load a botocore service model 1047s  1047s  This is the main method for loading botocore models (e.g. a service 1047s  model, pagination configs, waiter configs, etc.). 1047s  1047s  :type service_name: str 1047s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1047s  1047s  :type type_name: str 1047s  :param type_name: The model type. Valid types include, but are not 1047s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1047s  1047s  :type api_version: str 1047s  :param api_version: The API version to load. If this is not 1047s  provided, then the latest API version will be used. 1047s  1047s  :type load_extras: bool 1047s  :param load_extras: Whether or not to load the tool extras which 1047s  contain additional data to be added to the model. 1047s  1047s  :raises: UnknownServiceError if there is no known service with 1047s  the provided service_name. 1047s  1047s  :raises: DataNotFoundError if no data could be found for the 1047s  service_name/type_name/api_version. 1047s  1047s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1047s  """ 1047s # Wrapper around the load_data. This will calculate the path 1047s # to call load_data with. 1047s known_services = self.list_available_services(type_name) 1047s if service_name not in known_services: 1047s > raise UnknownServiceError( 1047s service_name=service_name, 1047s known_service_names=', '.join(sorted(known_services)), 1047s ) 1047s E botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1047s 1047s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1047s ________ ERROR at setup of test_tag_resource_and_list_tags_for_resource ________ 1047s 1047s @pytest.fixture(name="client") 1047s def fixture_qldb_client(): 1047s with mock_aws(): 1047s > yield boto3.client("qldb", region_name="us-east-1") 1047s 1047s tests/test_qldb/test_qldb.py:18: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1047s return _get_default_session().client(*args, **kwargs) 1047s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1047s return self._session.create_client( 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1047s client = client_creator.create_client( 1047s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1047s service_model = self._load_service_model(service_name, api_version) 1047s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1047s json_model = self._loader.load_service_model( 1047s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1047s data = func(self, *args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = , service_name = 'qldb' 1047s type_name = 'service-2', api_version = None 1047s 1047s @instance_cache 1047s def load_service_model(self, service_name, type_name, api_version=None): 1047s  """Load a botocore service model 1047s  1047s  This is the main method for loading botocore models (e.g. a service 1047s  model, pagination configs, waiter configs, etc.). 1047s  1047s  :type service_name: str 1047s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1047s  1047s  :type type_name: str 1047s  :param type_name: The model type. Valid types include, but are not 1047s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1047s  1047s  :type api_version: str 1047s  :param api_version: The API version to load. If this is not 1047s  provided, then the latest API version will be used. 1047s  1047s  :type load_extras: bool 1047s  :param load_extras: Whether or not to load the tool extras which 1047s  contain additional data to be added to the model. 1047s  1047s  :raises: UnknownServiceError if there is no known service with 1047s  the provided service_name. 1047s  1047s  :raises: DataNotFoundError if no data could be found for the 1047s  service_name/type_name/api_version. 1047s  1047s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1047s  """ 1047s # Wrapper around the load_data. This will calculate the path 1047s # to call load_data with. 1047s known_services = self.list_available_services(type_name) 1047s if service_name not in known_services: 1047s > raise UnknownServiceError( 1047s service_name=service_name, 1047s known_service_names=', '.join(sorted(known_services)), 1047s ) 1047s E botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1047s 1047s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1047s =================================== FAILURES =================================== 1047s __________ test_event_source_mapping_create_from_cloudformation_json ___________ 1047s 1047s @mock_aws 1047s def test_event_source_mapping_create_from_cloudformation_json(): 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s s3 = boto3.client("s3", "us-east-1") 1047s cf = boto3.client("cloudformation", region_name="us-east-1") 1047s lmbda = boto3.client("lambda", region_name="us-east-1") 1047s  1047s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1047s  1047s # Creates lambda 1047s _, lambda_stack = create_stack(cf, s3) 1047s created_fn_name = get_created_function_name(cf, lambda_stack) 1047s created_fn_arn = lmbda.get_function(FunctionName=created_fn_name)["Configuration"][ 1047s "FunctionArn" 1047s ] 1047s  1047s esm_template = event_source_mapping_template.substitute( 1047s { 1047s "resource_name": "Foo", 1047s "batch_size": 1, 1047s "event_source_arn": queue.attributes["QueueArn"], 1047s "function_name": created_fn_name, 1047s "enabled": True, 1047s } 1047s ) 1047s  1047s cf.create_stack(StackName=random_stack_name(), TemplateBody=esm_template) 1047s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1047s 1047s tests/test_awslambda/test_awslambda_cloudformation.py:184: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'ListEventSourceMappings' 1047s api_params = {'FunctionName': 'b749a3-LF3ABOV-06I9D4QG1UHP'} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1047s context=request_context, 1047s ) 1047s  1047s if event_response is not None: 1047s http, parsed_response = event_response 1047s else: 1047s maybe_compress_request( 1047s self.meta.config, request_dict, operation_model 1047s ) 1047s apply_request_checksum(request_dict) 1047s http, parsed_response = self._make_request( 1047s operation_model, request_dict, request_context 1047s ) 1047s  1047s self.meta.events.emit( 1047s f'after-call.{service_id}.{operation_name}', 1047s http_response=http, 1047s parsed=parsed_response, 1047s model=operation_model, 1047s context=request_context, 1047s ) 1047s  1047s if http.status_code >= 300: 1047s error_info = parsed_response.get("Error", {}) 1047s error_code = request_context.get( 1047s 'error_code_override' 1047s ) or error_info.get("Code") 1047s error_class = self.exceptions.from_code(error_code) 1047s > raise error_class(parsed_response, operation_name) 1047s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1047s 1047s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1047s ____________________ test_event_source_mapping_delete_stack ____________________ 1047s 1047s @mock_aws 1047s def test_event_source_mapping_delete_stack(): 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s s3 = boto3.client("s3", "us-east-1") 1047s cf = boto3.client("cloudformation", region_name="us-east-1") 1047s lmbda = boto3.client("lambda", region_name="us-east-1") 1047s  1047s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1047s  1047s # Creates lambda 1047s _, lambda_stack = create_stack(cf, s3) 1047s created_fn_name = get_created_function_name(cf, lambda_stack) 1047s  1047s esm_template = event_source_mapping_template.substitute( 1047s { 1047s "resource_name": "Foo", 1047s "batch_size": 1, 1047s "event_source_arn": queue.attributes["QueueArn"], 1047s "function_name": created_fn_name, 1047s "enabled": True, 1047s } 1047s ) 1047s  1047s esm_stack = cf.create_stack( 1047s StackName=random_stack_name(), TemplateBody=esm_template 1047s ) 1047s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1047s 1047s tests/test_awslambda/test_awslambda_cloudformation.py:218: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'ListEventSourceMappings' 1047s api_params = {'FunctionName': 'c0b52b-LF3ABOV-LTX8L6XGOPKF'} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1047s context=request_context, 1047s ) 1047s  1047s if event_response is not None: 1047s http, parsed_response = event_response 1047s else: 1047s maybe_compress_request( 1047s self.meta.config, request_dict, operation_model 1047s ) 1047s apply_request_checksum(request_dict) 1047s http, parsed_response = self._make_request( 1047s operation_model, request_dict, request_context 1047s ) 1047s  1047s self.meta.events.emit( 1047s f'after-call.{service_id}.{operation_name}', 1047s http_response=http, 1047s parsed=parsed_response, 1047s model=operation_model, 1047s context=request_context, 1047s ) 1047s  1047s if http.status_code >= 300: 1047s error_info = parsed_response.get("Error", {}) 1047s error_code = request_context.get( 1047s 'error_code_override' 1047s ) or error_info.get("Code") 1047s error_class = self.exceptions.from_code(error_code) 1047s > raise error_class(parsed_response, operation_name) 1047s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1047s 1047s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1047s __________ test_event_source_mapping_update_from_cloudformation_json ___________ 1047s 1047s @mock_aws 1047s def test_event_source_mapping_update_from_cloudformation_json(): 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s s3 = boto3.client("s3", "us-east-1") 1047s cf = boto3.client("cloudformation", region_name="us-east-1") 1047s lmbda = boto3.client("lambda", region_name="us-east-1") 1047s  1047s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1047s  1047s # Creates lambda 1047s _, lambda_stack = create_stack(cf, s3) 1047s created_fn_name = get_created_function_name(cf, lambda_stack) 1047s  1047s original_template = event_source_mapping_template.substitute( 1047s { 1047s "resource_name": "Foo", 1047s "batch_size": 1, 1047s "event_source_arn": queue.attributes["QueueArn"], 1047s "function_name": created_fn_name, 1047s "enabled": True, 1047s } 1047s ) 1047s  1047s stack_name = random_stack_name() 1047s cf.create_stack(StackName=stack_name, TemplateBody=original_template) 1047s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1047s 1047s tests/test_awslambda/test_awslambda_cloudformation.py:253: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'ListEventSourceMappings' 1047s api_params = {'FunctionName': '43bdda-LF3ABOV-OXR4D69ROHVU'} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1047s context=request_context, 1047s ) 1047s  1047s if event_response is not None: 1047s http, parsed_response = event_response 1047s else: 1047s maybe_compress_request( 1047s self.meta.config, request_dict, operation_model 1047s ) 1047s apply_request_checksum(request_dict) 1047s http, parsed_response = self._make_request( 1047s operation_model, request_dict, request_context 1047s ) 1047s  1047s self.meta.events.emit( 1047s f'after-call.{service_id}.{operation_name}', 1047s http_response=http, 1047s parsed=parsed_response, 1047s model=operation_model, 1047s context=request_context, 1047s ) 1047s  1047s if http.status_code >= 300: 1047s error_info = parsed_response.get("Error", {}) 1047s error_code = request_context.get( 1047s 'error_code_override' 1047s ) or error_info.get("Code") 1047s error_class = self.exceptions.from_code(error_code) 1047s > raise error_class(parsed_response, operation_name) 1047s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1047s 1047s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1047s __________ test_event_source_mapping_delete_from_cloudformation_json ___________ 1047s 1047s @mock_aws 1047s def test_event_source_mapping_delete_from_cloudformation_json(): 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s s3 = boto3.client("s3", "us-east-1") 1047s cf = boto3.client("cloudformation", region_name="us-east-1") 1047s lmbda = boto3.client("lambda", region_name="us-east-1") 1047s  1047s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1047s  1047s # Creates lambda 1047s _, lambda_stack = create_stack(cf, s3) 1047s created_fn_name = get_created_function_name(cf, lambda_stack) 1047s  1047s original_template = event_source_mapping_template.substitute( 1047s { 1047s "resource_name": "Foo", 1047s "batch_size": 1, 1047s "event_source_arn": queue.attributes["QueueArn"], 1047s "function_name": created_fn_name, 1047s "enabled": True, 1047s } 1047s ) 1047s  1047s stack_name = random_stack_name() 1047s cf.create_stack(StackName=stack_name, TemplateBody=original_template) 1047s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1047s 1047s tests/test_awslambda/test_awslambda_cloudformation.py:303: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'ListEventSourceMappings' 1047s api_params = {'FunctionName': '2f03ef-LF3ABOV-E59ROH9QMDNU'} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1047s context=request_context, 1047s ) 1047s  1047s if event_response is not None: 1047s http, parsed_response = event_response 1047s else: 1047s maybe_compress_request( 1047s self.meta.config, request_dict, operation_model 1047s ) 1047s apply_request_checksum(request_dict) 1047s http, parsed_response = self._make_request( 1047s operation_model, request_dict, request_context 1047s ) 1047s  1047s self.meta.events.emit( 1047s f'after-call.{service_id}.{operation_name}', 1047s http_response=http, 1047s parsed=parsed_response, 1047s model=operation_model, 1047s context=request_context, 1047s ) 1047s  1047s if http.status_code >= 300: 1047s error_info = parsed_response.get("Error", {}) 1047s error_code = request_context.get( 1047s 'error_code_override' 1047s ) or error_info.get("Code") 1047s error_class = self.exceptions.from_code(error_code) 1047s > raise error_class(parsed_response, operation_name) 1047s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1047s 1047s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1047s _______________________ test_create_event_source_mapping _______________________ 1047s 1047s @mock_aws 1047s def test_create_event_source_mapping(): 1047s function_name = str(uuid.uuid4())[0:6] 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1047s  1047s conn = boto3.client("lambda", region_name="us-east-1") 1047s func = conn.create_function( 1047s FunctionName=function_name, 1047s Runtime=PYTHON_VERSION, 1047s Role=get_role_name(), 1047s Handler="lambda_function.lambda_handler", 1047s Code={"ZipFile": get_test_zip_file3()}, 1047s Description="test lambda function", 1047s Timeout=3, 1047s MemorySize=128, 1047s Publish=True, 1047s ) 1047s  1047s destination_config = { 1047s "OnSuccess": {"Destination": "s3"}, 1047s "OnFailure": {"Destination": "s4"}, 1047s } 1047s doc_db_config = { 1047s "DatabaseName": "db", 1047s "CollectionName": "cn", 1047s "FullDocument": "UpdateLookup", 1047s } 1047s > response = conn.create_event_source_mapping( 1047s EventSourceArn=queue.attributes["QueueArn"], 1047s FunctionName=func["FunctionArn"], 1047s BatchSize=1, 1047s FilterCriteria={ 1047s "Filters": [{"Pattern": r"asdf"}], 1047s }, 1047s MaximumBatchingWindowInSeconds=5, 1047s ParallelizationFactor=4, 1047s StartingPosition="AT_TIMESTAMP", 1047s DestinationConfig=destination_config, 1047s MaximumRecordAgeInSeconds=59, 1047s BisectBatchOnFunctionError=True, 1047s MaximumRetryAttempts=9000, 1047s Tags={"k1": "v1"}, 1047s TumblingWindowInSeconds=100, 1047s Topics=["t1", "T2"], 1047s Queues=["q1", "q2"], 1047s SourceAccessConfigurations=[ 1047s {"Type": "BASIC_AUTH", "URI": "http://auth.endpoint"}, 1047s ], 1047s SelfManagedEventSource={ 1047s "Endpoints": { 1047s "key": ["v1"], 1047s }, 1047s }, 1047s FunctionResponseTypes=["ReportBatchItemFailures"], 1047s AmazonManagedKafkaEventSourceConfig={"ConsumerGroupId": "cgid"}, 1047s SelfManagedKafkaEventSourceConfig={"ConsumerGroupId": "cgid2"}, 1047s ScalingConfig={"MaximumConcurrency": 100}, 1047s DocumentDBEventSourceConfig=doc_db_config, 1047s KMSKeyArn="arn:kms:key", 1047s MetricsConfig={"Metrics": ["EventCount"]}, 1047s ProvisionedPollerConfig={"MinimumPollers": 12, "MaximumPollers": 13}, 1047s ) 1047s 1047s tests/test_awslambda/test_lambda_eventsourcemapping.py:51: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'CreateEventSourceMapping' 1047s api_params = {'AmazonManagedKafkaEventSourceConfig': {'ConsumerGroupId': 'cgid'}, 'BatchSize': 1, 'BisectBatchOnFunctionError': True, 'DestinationConfig': {'OnFailure': {'Destination': 's4'}, 'OnSuccess': {'Destination': 's3'}}, ...} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1047s context=request_context, 1047s ) 1047s  1047s if event_response is not None: 1047s http, parsed_response = event_response 1047s else: 1047s maybe_compress_request( 1047s self.meta.config, request_dict, operation_model 1047s ) 1047s apply_request_checksum(request_dict) 1047s http, parsed_response = self._make_request( 1047s operation_model, request_dict, request_context 1047s ) 1047s  1047s self.meta.events.emit( 1047s f'after-call.{service_id}.{operation_name}', 1047s http_response=http, 1047s parsed=parsed_response, 1047s model=operation_model, 1047s context=request_context, 1047s ) 1047s  1047s if http.status_code >= 300: 1047s error_info = parsed_response.get("Error", {}) 1047s error_code = request_context.get( 1047s 'error_code_override' 1047s ) or error_info.get("Code") 1047s error_class = self.exceptions.from_code(error_code) 1047s > raise error_class(parsed_response, operation_name) 1047s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1047s 1047s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1047s _______________________ test_list_event_source_mappings ________________________ 1047s 1047s @mock_aws 1047s def test_list_event_source_mappings(): 1047s function_name = str(uuid.uuid4())[0:6] 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1047s  1047s conn = boto3.client("lambda", region_name="us-east-1") 1047s func = conn.create_function( 1047s FunctionName=function_name, 1047s Runtime=PYTHON_VERSION, 1047s Role=get_role_name(), 1047s Handler="lambda_function.lambda_handler", 1047s Code={"ZipFile": get_test_zip_file3()}, 1047s Description="test lambda function", 1047s Timeout=3, 1047s MemorySize=128, 1047s Publish=True, 1047s ) 1047s > response = conn.create_event_source_mapping( 1047s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"] 1047s ) 1047s 1047s tests/test_awslambda/test_lambda_eventsourcemapping.py:473: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'CreateEventSourceMapping' 1047s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:7f1686_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:7f1686'} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1047s context=request_context, 1047s ) 1047s  1047s if event_response is not None: 1047s http, parsed_response = event_response 1047s else: 1047s maybe_compress_request( 1047s self.meta.config, request_dict, operation_model 1047s ) 1047s apply_request_checksum(request_dict) 1047s http, parsed_response = self._make_request( 1047s operation_model, request_dict, request_context 1047s ) 1047s  1047s self.meta.events.emit( 1047s f'after-call.{service_id}.{operation_name}', 1047s http_response=http, 1047s parsed=parsed_response, 1047s model=operation_model, 1047s context=request_context, 1047s ) 1047s  1047s if http.status_code >= 300: 1047s error_info = parsed_response.get("Error", {}) 1047s error_code = request_context.get( 1047s 'error_code_override' 1047s ) or error_info.get("Code") 1047s error_class = self.exceptions.from_code(error_code) 1047s > raise error_class(parsed_response, operation_name) 1047s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1047s 1047s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1047s ________________________ test_get_event_source_mapping _________________________ 1047s 1047s @mock_aws 1047s def test_get_event_source_mapping(): 1047s function_name = str(uuid.uuid4())[0:6] 1047s sqs = boto3.resource("sqs", region_name="us-east-1") 1047s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1047s  1047s conn = boto3.client("lambda", region_name="us-east-1") 1047s func = conn.create_function( 1047s FunctionName=function_name, 1047s Runtime=PYTHON_VERSION, 1047s Role=get_role_name(), 1047s Handler="lambda_function.lambda_handler", 1047s Code={"ZipFile": get_test_zip_file3()}, 1047s Description="test lambda function", 1047s Timeout=3, 1047s MemorySize=128, 1047s Publish=True, 1047s ) 1047s > response = conn.create_event_source_mapping( 1047s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"] 1047s ) 1047s 1047s tests/test_awslambda/test_lambda_eventsourcemapping.py:505: 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1047s return self._make_api_call(operation_name, kwargs) 1047s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1047s return func(*args, **kwargs) 1047s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1047s 1047s self = 1047s operation_name = 'CreateEventSourceMapping' 1047s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:981474_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:981474'} 1047s 1047s @with_current_context() 1047s def _make_api_call(self, operation_name, api_params): 1047s operation_model = self._service_model.operation_model(operation_name) 1047s service_name = self._service_model.service_name 1047s history_recorder.record( 1047s 'API_CALL', 1047s { 1047s 'service': service_name, 1047s 'operation': operation_name, 1047s 'params': api_params, 1047s }, 1047s ) 1047s if operation_model.deprecated: 1047s logger.debug( 1047s 'Warning: %s.%s() is deprecated', service_name, operation_name 1047s ) 1047s request_context = { 1047s 'client_region': self.meta.region_name, 1047s 'client_config': self.meta.config, 1047s 'has_streaming_input': operation_model.has_streaming_input, 1047s 'auth_type': operation_model.resolved_auth_type, 1047s 'unsigned_payload': operation_model.unsigned_payload, 1047s 'auth_options': self._service_model.metadata.get('auth'), 1047s } 1047s  1047s api_params = self._emit_api_params( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s context=request_context, 1047s ) 1047s ( 1047s endpoint_url, 1047s additional_headers, 1047s properties, 1047s ) = self._resolve_endpoint_ruleset( 1047s operation_model, api_params, request_context 1047s ) 1047s if properties: 1047s # Pass arbitrary endpoint info with the Request 1047s # for use during construction. 1047s request_context['endpoint_properties'] = properties 1047s request_dict = self._convert_to_request_dict( 1047s api_params=api_params, 1047s operation_model=operation_model, 1047s endpoint_url=endpoint_url, 1047s context=request_context, 1047s headers=additional_headers, 1047s ) 1047s resolve_checksum_context(request_dict, operation_model, api_params) 1047s  1047s service_id = self._service_model.service_id.hyphenize() 1047s handler, event_response = self.meta.events.emit_until_response( 1047s f'before-call.{service_id}.{operation_name}', 1047s model=operation_model, 1047s params=request_dict, 1047s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _______________________ test_update_event_source_mapping _______________________ 1048s 1048s @mock_aws 1048s def test_update_event_source_mapping(): 1048s function_name = str(uuid.uuid4())[0:6] 1048s sqs = boto3.resource("sqs", region_name="us-east-1") 1048s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1048s  1048s conn = boto3.client("lambda", region_name="us-east-1") 1048s func1 = conn.create_function( 1048s FunctionName=function_name, 1048s Runtime=PYTHON_VERSION, 1048s Role=get_role_name(), 1048s Handler="lambda_function.lambda_handler", 1048s Code={"ZipFile": get_test_zip_file3()}, 1048s Description="test lambda function", 1048s Timeout=3, 1048s MemorySize=128, 1048s Publish=True, 1048s ) 1048s func2 = conn.create_function( 1048s FunctionName="testFunction2", 1048s Runtime=PYTHON_VERSION, 1048s Role=get_role_name(), 1048s Handler="lambda_function.lambda_handler", 1048s Code={"ZipFile": get_test_zip_file3()}, 1048s Description="test lambda function", 1048s Timeout=3, 1048s MemorySize=128, 1048s Publish=True, 1048s ) 1048s > response = conn.create_event_source_mapping( 1048s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func1["FunctionArn"] 1048s ) 1048s 1048s tests/test_awslambda/test_lambda_eventsourcemapping.py:548: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'CreateEventSourceMapping' 1048s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:cea2f8_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:cea2f8'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _______________________ test_delete_event_source_mapping _______________________ 1048s 1048s @mock_aws 1048s def test_delete_event_source_mapping(): 1048s function_name = str(uuid.uuid4())[0:6] 1048s sqs = boto3.resource("sqs", region_name="us-east-1") 1048s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1048s  1048s conn = boto3.client("lambda", region_name="us-east-1") 1048s func1 = conn.create_function( 1048s FunctionName=function_name, 1048s Runtime=PYTHON_VERSION, 1048s Role=get_role_name(), 1048s Handler="lambda_function.lambda_handler", 1048s Code={"ZipFile": get_test_zip_file3()}, 1048s Description="test lambda function", 1048s Timeout=3, 1048s MemorySize=128, 1048s Publish=True, 1048s ) 1048s > response = conn.create_event_source_mapping( 1048s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func1["FunctionArn"] 1048s ) 1048s 1048s tests/test_awslambda/test_lambda_eventsourcemapping.py:635: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'CreateEventSourceMapping' 1048s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:2b7e38_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:2b7e38'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _________________________ test_describe_flow_succeeds __________________________ 1048s 1048s @mock_aws 1048s def test_describe_flow_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s > describe_response = client.describe_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:157: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s __________________________ test_delete_flow_succeeds ___________________________ 1048s 1048s @mock_aws 1048s def test_delete_flow_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s > delete_response = client.delete_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:170: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:49: in delete_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ________________________ test_start_stop_flow_succeeds _________________________ 1048s 1048s @mock_aws 1048s def test_start_stop_flow_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > start_response = client.start_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:186: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:54: in start_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ______________________________ test_unknown_flow _______________________________ 1048s 1048s @mock_aws 1048s def test_unknown_flow(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s  1048s with pytest.raises(ClientError) as exc: 1048s > client.describe_flow(FlowArn="unknown") 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:210: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s __________________________ test_tag_resource_succeeds __________________________ 1048s 1048s @mock_aws 1048s def test_tag_resource_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s  1048s > tag_response = client.tag_resource(ResourceArn="some-arn", Tags={"Tag1": "Value1"}) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:234: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:64: in tag_resource 1048s resource_arn = unquote(self._get_param("resourceArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ____________________ test_add_flow_vpc_interfaces_succeeds _____________________ 1048s 1048s @mock_aws 1048s def test_add_flow_vpc_interfaces_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > client.add_flow_vpc_interfaces( 1048s FlowArn=flow_arn, 1048s VpcInterfaces=[ 1048s { 1048s "Name": "VPCInterface", 1048s "SubnetId": "", 1048s "SecurityGroupIds": [], 1048s "RoleArn": "", 1048s } 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:252: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:75: in add_flow_vpc_interfaces 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ______________________ test_add_flow_vpc_interfaces_fails ______________________ 1048s 1048s @mock_aws 1048s def test_add_flow_vpc_interfaces_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s with pytest.raises(ClientError) as err: 1048s > client.add_flow_vpc_interfaces(FlowArn=flow_arn, VpcInterfaces=[]) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:281: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:75: in add_flow_vpc_interfaces 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ___________________ test_remove_flow_vpc_interface_succeeds ____________________ 1048s 1048s @mock_aws 1048s def test_remove_flow_vpc_interface_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > client.add_flow_vpc_interfaces( 1048s FlowArn=flow_arn, 1048s VpcInterfaces=[ 1048s { 1048s "Name": "VPCInterface", 1048s "SubnetId": "", 1048s "SecurityGroupIds": [], 1048s "RoleArn": "", 1048s } 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:297: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:75: in add_flow_vpc_interfaces 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s _____________________ test_remove_flow_vpc_interface_fails _____________________ 1048s 1048s @mock_aws 1048s def test_remove_flow_vpc_interface_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s with pytest.raises(ClientError) as err: 1048s > client.remove_flow_vpc_interface( 1048s FlowArn=flow_arn, VpcInterfaceName="VPCInterface" 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:324: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:85: in remove_flow_vpc_interface 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ________________________ test_add_flow_outputs_succeeds ________________________ 1048s 1048s @mock_aws 1048s def test_add_flow_outputs_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > client.add_flow_outputs( 1048s FlowArn=flow_arn, 1048s Outputs=[ 1048s {"Description": "string", "Name": "string", "Port": 123, "Protocol": "rist"} 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:342: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:95: in add_flow_outputs 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s _________________________ test_add_flow_outputs_fails __________________________ 1048s 1048s @mock_aws 1048s def test_add_flow_outputs_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s with pytest.raises(ClientError) as err: 1048s > client.add_flow_outputs(FlowArn=flow_arn, Outputs=[]) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:360: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:95: in add_flow_outputs 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s _______________________ test_update_flow_output_succeeds _______________________ 1048s 1048s @mock_aws 1048s def test_update_flow_output_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s output_arn = create_response["Flow"]["Outputs"][0]["OutputArn"] 1048s  1048s > update_response = client.update_flow_output( 1048s FlowArn=flow_arn, OutputArn=output_arn, Description="new description" 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:377: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:111: in update_flow_output 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ________________________ test_update_flow_output_fails _________________________ 1048s 1048s @mock_aws 1048s def test_update_flow_output_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s with pytest.raises(ClientError) as err: 1048s > client.update_flow_output( 1048s FlowArn=flow_arn, 1048s OutputArn="some-arn", 1048s Description="new description", 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:388: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:111: in update_flow_output 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ________________________ test_remove_flow_output_fails _________________________ 1048s 1048s @mock_aws 1048s def test_remove_flow_output_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s output_arn = "unknown-arn" 1048s with pytest.raises(ClientError) as err: 1048s > client.remove_flow_output(FlowArn=flow_arn, OutputArn=output_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:404: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:103: in remove_flow_output 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s _______________________ test_remove_flow_output_succeeds _______________________ 1048s 1048s @mock_aws 1048s def test_remove_flow_output_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > client.add_flow_outputs( 1048s FlowArn=flow_arn, 1048s Outputs=[ 1048s {"Description": "string", "Name": "string", "Port": 123, "Protocol": "rist"} 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:420: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:95: in add_flow_outputs 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s _________________________ test_add_flow_sources_fails __________________________ 1048s 1048s @mock_aws 1048s def test_add_flow_sources_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s with pytest.raises(ClientError) as err: 1048s > client.add_flow_sources(FlowArn=flow_arn, Sources=[]) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:442: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:152: in add_flow_sources 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ________________________ test_add_flow_sources_succeeds ________________________ 1048s 1048s @mock_aws 1048s def test_add_flow_sources_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > client.add_flow_sources( 1048s FlowArn=flow_arn, 1048s Sources=[ 1048s { 1048s "Description": "string", 1048s "Name": "string", 1048s "Protocol": "rist", 1048s "SenderControlPort": 123, 1048s } 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:458: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:152: in add_flow_sources 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ________________________ test_update_flow_source_fails _________________________ 1048s 1048s @mock_aws 1048s def test_update_flow_source_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s source_arn = "unknown-source" 1048s  1048s channel_config = _create_flow_config("test-Flow-1") 1048s client.create_flow(**channel_config) 1048s  1048s with pytest.raises(ClientError) as err: 1048s > client.update_flow_source( 1048s FlowArn=flow_arn, SourceArn=source_arn, Description="new description" 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:485: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:160: in update_flow_source 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s _______________________ test_update_flow_source_succeeds _______________________ 1048s 1048s @mock_aws 1048s def test_update_flow_source_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > add_response = client.add_flow_sources( 1048s FlowArn=flow_arn, 1048s Sources=[ 1048s { 1048s "Description": "string", 1048s "Name": "string", 1048s "Protocol": "rist", 1048s "SenderControlPort": 123, 1048s } 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:503: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:152: in add_flow_sources 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ______________________ test_grant_flow_entitlements_fails ______________________ 1048s 1048s @mock_aws 1048s def test_grant_flow_entitlements_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s flow_arn = "unknown-flow" 1048s  1048s channel_config = _create_flow_config("test-Flow-1") 1048s client.create_flow(**channel_config) 1048s  1048s with pytest.raises(ClientError) as err: 1048s > client.grant_flow_entitlements( 1048s FlowArn=flow_arn, 1048s Entitlements=[ 1048s { 1048s "DataTransferSubscriberFeePercent": 12, 1048s "Description": "A new entitlement", 1048s "Encryption": {"Algorithm": "aes256", "RoleArn": "some:role"}, 1048s "EntitlementStatus": "ENABLED", 1048s "Name": "Entitlement-B", 1048s "Subscribers": [], 1048s } 1048s ], 1048s ) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:536: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:201: in grant_flow_entitlements 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ____________________ test_grant_flow_entitlements_succeeds _____________________ 1048s 1048s @mock_aws 1048s def test_grant_flow_entitlements_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > describe_response = client.describe_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:564: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ______________________ test_revoke_flow_entitlement_fails ______________________ 1048s 1048s @mock_aws 1048s def test_revoke_flow_entitlement_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > describe_response = client.describe_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:607: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ____________________ test_revoke_flow_entitlement_succeeds _____________________ 1048s 1048s @mock_aws 1048s def test_revoke_flow_entitlement_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > describe_response = client.describe_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:630: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ______________________ test_update_flow_entitlement_fails ______________________ 1048s 1048s @mock_aws 1048s def test_update_flow_entitlement_fails(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > describe_response = client.describe_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:655: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ____________________ test_update_flow_entitlement_succeeds _____________________ 1048s 1048s @mock_aws 1048s def test_update_flow_entitlement_succeeds(): 1048s client = boto3.client("mediaconnect", region_name=region) 1048s channel_config = _create_flow_config("test-Flow-1") 1048s  1048s create_response = client.create_flow(**channel_config) 1048s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1048s assert create_response["Flow"]["Status"] == "STANDBY" 1048s flow_arn = create_response["Flow"]["FlowArn"] 1048s  1048s > describe_response = client.describe_flow(FlowArn=flow_arn) 1048s 1048s tests/test_mediaconnect/test_mediaconnect.py:680: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1048s http, parsed_response = self._make_request( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1048s return self._endpoint.make_request(operation_model, request_dict) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1048s return self._send_request(request_dict, operation_model) 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1048s while self._needs_retry( 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1048s responses = self._event_emitter.emit( 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1048s if self._checker(**checker_kwargs): 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1048s should_retry = self._should_retry( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1048s return self._checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1048s checker_response = checker( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1048s return self._check_caught_exception( 1048s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1048s raise caught_exception 1048s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1048s responses = self._event_emitter.emit(event_name, request=request) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1048s return self._emitter.emit(aliased_event_name, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1048s return self._emit(event_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1048s response = handler(**kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1048s response = self.process_request(request) 1048s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1048s status, headers, body = method_to_execute( 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1048s return cls()._dispatch(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1048s return self.call_action() 1048s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1048s response = method() 1048s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1048s flow_arn = unquote(self._get_param("flowArn")) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s string = None, encoding = 'utf-8', errors = 'replace' 1048s 1048s def unquote(string, encoding='utf-8', errors='replace'): 1048s  """Replace %xx escapes by their single-character equivalent. The optional 1048s  encoding and errors parameters specify how to decode percent-encoded 1048s  sequences into Unicode characters, as accepted by the bytes.decode() 1048s  method. 1048s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1048s  sequences are replaced by a placeholder character. 1048s  1048s  unquote('abc%20def') -> 'abc def'. 1048s  """ 1048s if isinstance(string, bytes): 1048s return _unquote_impl(string).decode(encoding, errors) 1048s > if '%' not in string: 1048s E TypeError: argument of type 'NoneType' is not a container or iterable 1048s 1048s /usr/lib/python3.14/urllib/parse.py:728: TypeError 1048s ___________________________ test_create_app_response ___________________________ 1048s 1048s @freeze_time("2015-01-01") 1048s @mock_aws 1048s def test_create_app_response(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_apps.py:12: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s ______________________________ test_describe_apps ______________________________ 1048s 1048s @freeze_time("2015-01-01") 1048s @mock_aws 1048s def test_describe_apps(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_apps.py:49: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s _____________________________ test_create_instance _____________________________ 1048s 1048s @mock_aws 1048s def test_create_instance(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_instances.py:11: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s ___________________________ test_describe_instances ____________________________ 1048s 1048s @mock_aws 1048s def test_describe_instances(): 1048s  """ 1048s  create two stacks, with 1 layer and 2 layers (S1L1, S2L1, S2L2) 1048s  1048s  populate S1L1 with 2 instances (S1L1_i1, S1L1_i2) 1048s  populate S2L1 with 1 instance (S2L1_i1) 1048s  populate S2L2 with 3 instances (S2L2_i1..2) 1048s  """ 1048s  1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_instances.py:87: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s _____________________________ test_ec2_integration _____________________________ 1048s 1048s @mock_aws 1048s def test_ec2_integration(): 1048s  """Verify instances created via OpsWorks are discoverable via ec2.""" 1048s > opsworks = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_instances.py:186: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s __________________________ test_create_layer_response __________________________ 1048s 1048s @freeze_time("2015-01-01") 1048s @mock_aws 1048s def test_create_layer_response(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_layers.py:12: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s _____________________________ test_describe_layers _____________________________ 1048s 1048s @freeze_time("2015-01-01") 1048s @mock_aws 1048s def test_describe_layers(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_layers.py:74: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s __________________________ test_create_stack_response __________________________ 1048s 1048s @mock_aws 1048s def test_create_stack_response(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_stack.py:9: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s _____________________________ test_describe_stacks _____________________________ 1048s 1048s @mock_aws 1048s def test_describe_stacks(): 1048s > client = boto3.client("opsworks", region_name="us-east-1") 1048s 1048s tests/test_opsworks/test_stack.py:21: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'opsworks', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s _____________________________ test_create_db_proxy _____________________________ 1048s 1048s @mock_aws 1048s def test_create_db_proxy(): 1048s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1048s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1048s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1048s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s > resp = rds_client.create_db_proxy( 1048s DBProxyName="testrdsproxy", 1048s EngineFamily="MYSQL", 1048s Auth=[ 1048s { 1048s "Description": "Test Description", 1048s "UserName": "Test Username", 1048s "AuthScheme": "SECRETS", 1048s "SecretArn": "TestSecretARN", 1048s "IAMAuth": "ENABLED", 1048s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1048s }, 1048s ], 1048s RoleArn="TestArn", 1048s VpcSubnetIds=[subnet_id, subnet_id_2], 1048s RequireTLS=True, 1048s Tags=[{"Key": "TestKey", "Value": "TestValue"}], 1048s ) 1048s 1048s tests/test_rds/test_rds_proxy.py:22: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxy', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1048s operation_model = OperationModel(name=CreateDBProxy) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1048s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ___________________________ test_describe_db_proxies ___________________________ 1048s 1048s @mock_aws 1048s def test_describe_db_proxies(): 1048s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1048s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1048s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1048s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s > rds_client.create_db_proxy( 1048s DBProxyName="testrdsproxydescribe", 1048s EngineFamily="MYSQL", 1048s Auth=[ 1048s { 1048s "Description": "Test Description", 1048s "UserName": "Test Username", 1048s "AuthScheme": "SECRETS", 1048s "SecretArn": "TestSecretARN", 1048s "IAMAuth": "ENABLED", 1048s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1048s }, 1048s ], 1048s RoleArn="TestArn", 1048s VpcSubnetIds=[subnet_id, subnet_id_2], 1048s RequireTLS=True, 1048s Tags=[ 1048s {"Key": "TestKey", "Value": "TestValue"}, 1048s {"Key": "aaa", "Value": "bbb"}, 1048s ], 1048s ) 1048s 1048s tests/test_rds/test_rds_proxy.py:76: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxydescribe', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1048s operation_model = OperationModel(name=CreateDBProxy) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1048s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ___________________________ test_list_tags_db_proxy ____________________________ 1048s 1048s @mock_aws 1048s def test_list_tags_db_proxy(): 1048s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1048s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1048s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1048s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s > resp = rds_client.create_db_proxy( 1048s DBProxyName="testrdsproxydescribe", 1048s EngineFamily="MYSQL", 1048s Auth=[ 1048s { 1048s "Description": "Test Description", 1048s "UserName": "Test Username", 1048s "AuthScheme": "SECRETS", 1048s "SecretArn": "TestSecretARN", 1048s "IAMAuth": "ENABLED", 1048s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1048s }, 1048s ], 1048s RoleArn="TestArn", 1048s VpcSubnetIds=[subnet_id, subnet_id_2], 1048s RequireTLS=True, 1048s Tags=[ 1048s {"Key": "TestKey", "Value": "TestValue"}, 1048s {"Key": "aaa", "Value": "bbb"}, 1048s ], 1048s ) 1048s 1048s tests/test_rds/test_rds_proxy.py:134: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxydescribe', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1048s operation_model = OperationModel(name=CreateDBProxy) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1048s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________________ test_create_db_proxy_invalid_subnet ______________________ 1048s 1048s @mock_aws 1048s def test_create_db_proxy_invalid_subnet(): 1048s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1048s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1048s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1048s vpc_id_2 = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1048s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id_2)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s with pytest.raises(ClientError) as ex: 1048s > rds_client.create_db_proxy( 1048s DBProxyName="testrdsproxy", 1048s EngineFamily="MYSQL", 1048s Auth=[ 1048s { 1048s "Description": "Test Description", 1048s "UserName": "Test Username", 1048s "AuthScheme": "SECRETS", 1048s "SecretArn": "TestSecretARN", 1048s "IAMAuth": "ENABLED", 1048s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1048s }, 1048s ], 1048s RoleArn="TestArn", 1048s VpcSubnetIds=[subnet_id, subnet_id_2], 1048s RequireTLS=True, 1048s Tags=[{"Key": "TestKey", "Value": "TestValue"}], 1048s ) 1048s 1048s tests/test_rds/test_rds_proxy.py:176: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxy', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1048s operation_model = OperationModel(name=CreateDBProxy) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1048s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________________ test_create_db_proxy_duplicate_name ______________________ 1048s 1048s @mock_aws 1048s def test_create_db_proxy_duplicate_name(): 1048s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1048s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1048s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1048s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1048s "Subnet" 1048s ]["SubnetId"] 1048s > rds_client.create_db_proxy( 1048s DBProxyName="testrdsproxy", 1048s EngineFamily="MYSQL", 1048s Auth=[ 1048s { 1048s "Description": "Test Description", 1048s "UserName": "Test Username", 1048s "AuthScheme": "SECRETS", 1048s "SecretArn": "TestSecretARN", 1048s "IAMAuth": "ENABLED", 1048s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1048s }, 1048s ], 1048s RoleArn="TestArn", 1048s VpcSubnetIds=[subnet_id, subnet_id_2], 1048s RequireTLS=True, 1048s Tags=[{"Key": "TestKey", "Value": "TestValue"}], 1048s ) 1048s 1048s tests/test_rds/test_rds_proxy.py:209: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxy', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1048s operation_model = OperationModel(name=CreateDBProxy) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1048s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ________________________ test_get_resources_workspaces _________________________ 1048s 1048s @mock_aws 1048s def test_get_resources_workspaces(): 1048s workspaces = boto3.client("workspaces", region_name="eu-central-1") 1048s  1048s # Create two tagged Workspaces 1048s directory_id = create_directory() 1048s > workspaces.register_workspace_directory( 1048s DirectoryId=directory_id, EnableWorkDocs=False 1048s ) 1048s 1048s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py:804: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-1603818045', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ___________________ test_get_resources_workspace_directories ___________________ 1048s 1048s @mock_aws 1048s def test_get_resources_workspace_directories(): 1048s workspaces = boto3.client("workspaces", region_name="eu-central-1") 1048s  1048s # Create two tagged Workspaces Directories 1048s for i in range(1, 3): 1048s i_str = str(i) 1048s directory_id = create_directory() 1048s > workspaces.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=False, 1048s Tags=[ 1048s {"Key": "Test", "Value": i_str}, 1048s ], 1048s ) 1048s 1048s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py:851: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-216d1a6362', 'EnableWorkDocs': False, 'Tags': [{'Key': 'Test', 'Value': '1'}]} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________________ test_get_resources_workspace_images ______________________ 1048s 1048s @mock_aws 1048s def test_get_resources_workspace_images(): 1048s workspaces = boto3.client("workspaces", region_name="eu-central-1") 1048s  1048s # Create two tagged Workspace Images 1048s directory_id = create_directory() 1048s > workspaces.register_workspace_directory( 1048s DirectoryId=directory_id, EnableWorkDocs=False 1048s ) 1048s 1048s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py:880: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-c43c266519', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ____________________________ test_robot_application ____________________________ 1048s 1048s @mock_aws 1048s def test_robot_application(): 1048s > client = boto3.client("robomaker", region_name="eu-west-1") 1048s 1048s tests/test_robomaker/test_robomaker.py:11: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1048s return _get_default_session().client(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1048s return self._session.create_client( 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1048s client = client_creator.create_client( 1048s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1048s service_model = self._load_service_model(service_name, api_version) 1048s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1048s json_model = self._loader.load_service_model( 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1048s data = func(self, *args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s service_name = 'robomaker', type_name = 'service-2', api_version = None 1048s 1048s @instance_cache 1048s def load_service_model(self, service_name, type_name, api_version=None): 1048s  """Load a botocore service model 1048s  1048s  This is the main method for loading botocore models (e.g. a service 1048s  model, pagination configs, waiter configs, etc.). 1048s  1048s  :type service_name: str 1048s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1048s  1048s  :type type_name: str 1048s  :param type_name: The model type. Valid types include, but are not 1048s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1048s  1048s  :type api_version: str 1048s  :param api_version: The API version to load. If this is not 1048s  provided, then the latest API version will be used. 1048s  1048s  :type load_extras: bool 1048s  :param load_extras: Whether or not to load the tool extras which 1048s  contain additional data to be added to the model. 1048s  1048s  :raises: UnknownServiceError if there is no known service with 1048s  the provided service_name. 1048s  1048s  :raises: DataNotFoundError if no data could be found for the 1048s  service_name/type_name/api_version. 1048s  1048s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1048s  """ 1048s # Wrapper around the load_data. This will calculate the path 1048s # to call load_data with. 1048s known_services = self.list_available_services(type_name) 1048s if service_name not in known_services: 1048s > raise UnknownServiceError( 1048s service_name=service_name, 1048s known_service_names=', '.join(sorted(known_services)), 1048s ) 1048s E botocore.exceptions.UnknownServiceError: Unknown service: 'robomaker'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1048s 1048s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1048s __________________ test_locked_object_governance_mode[bypass] __________________ 1048s 1048s bypass_governance_retention = True 1048s bucket_name = '26e500e5-14a2-4ce4-9bd6-afc68d3649f1' 1048s 1048s @s3_aws_verified 1048s @pytest.mark.aws_verified 1048s @pytest.mark.parametrize( 1048s "bypass_governance_retention", 1048s [True, False, None], 1048s ids=["bypass", "no_bypass", "unspecified"], 1048s ) 1048s def test_locked_object_governance_mode(bypass_governance_retention, bucket_name=None): 1048s s3_client = boto3.client("s3", DEFAULT_REGION_NAME) 1048s  1048s key_name = "file.txt" 1048s seconds_lock = 10 1048s  1048s enable_versioning(bucket_name, s3_client) 1048s  1048s s3_client.put_object_lock_configuration( 1048s Bucket=bucket_name, 1048s ObjectLockConfiguration={ 1048s "ObjectLockEnabled": "Enabled", 1048s "Rule": {"DefaultRetention": {"Mode": "GOVERNANCE", "Days": 1}}, 1048s }, 1048s ) 1048s  1048s until = utcnow() + datetime.timedelta(seconds=seconds_lock) 1048s s3_client.put_object( 1048s Bucket=bucket_name, 1048s Body=b"test", 1048s Key=key_name, 1048s ObjectLockMode="GOVERNANCE", 1048s ObjectLockRetainUntilDate=until, 1048s ContentMD5=generate_content_md5(b"test"), 1048s ) 1048s  1048s versions_response = s3_client.list_object_versions(Bucket=bucket_name) 1048s initial_version_id = versions_response["Versions"][0]["VersionId"] 1048s  1048s with pytest.raises(ClientError) as exc: 1048s s3_client.delete_object( 1048s Bucket=bucket_name, Key=key_name, VersionId=initial_version_id 1048s ) 1048s err = exc.value.response["Error"] 1048s assert err["Code"] == "AccessDenied" 1048s  1048s kwargs = {} 1048s if bypass_governance_retention in [True, False]: 1048s kwargs["BypassGovernanceRetention"] = bypass_governance_retention 1048s  1048s # Delete the object without VersionId always succeeds 1048s response = s3_client.delete_objects( 1048s Bucket=bucket_name, 1048s Delete={ 1048s "Objects": [ 1048s {"Key": key_name}, 1048s ], 1048s }, 1048s **kwargs, 1048s ) 1048s assert response["Deleted"][0]["Key"] == key_name 1048s deleted_version_id = response["Deleted"][0]["DeleteMarkerVersionId"] 1048s  1048s # Delete any version id only succeeds if BypassGovernanceRetention=true 1048s response = s3_client.delete_objects( 1048s Bucket=bucket_name, 1048s Delete={ 1048s "Objects": [ 1048s {"Key": key_name, "VersionId": initial_version_id}, 1048s ], 1048s }, 1048s **kwargs, 1048s ) 1048s if bypass_governance_retention: 1048s > assert "Deleted" in response 1048s E AssertionError: assert 'Deleted' in {'Errors': [{'Code': 'AccessDenied', 'Key': 'file.txt', 'Message': 'Access Denied because object protected by object l...KIZ'}, 'HTTPStatusCode': 200, 'RequestId': 'LIrAhzinWsP7FznljrljgvJTDvLfWrlt7rtZ7WxO7IoN8Kcu8KIZ', 'RetryAttempts': 0}} 1048s 1048s tests/test_s3/test_s3_lock.py:130: AssertionError 1048s ________________________________ test_get_table ________________________________ 1048s 1048s @mock_aws 1048s def test_get_table(): 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s table_arn = client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s )["tableARN"] 1048s  1048s assert ( 1048s > client.get_table(tableBucketARN=arn, namespace="bar", name="baz")["tableARN"] 1048s == table_arn 1048s ) 1048s 1048s tests/test_s3tables/test_s3tables.py:156: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s ______________ test_delete_table_deletes_underlying_table_storage ______________ 1048s 1048s @mock_aws 1048s def test_delete_table_deletes_underlying_table_storage(): 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s s3 = boto3.client("s3", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s ) 1048s > warehouse = client.get_table(tableBucketARN=arn, namespace="bar", name="baz")[ 1048s "warehouseLocation" 1048s ] 1048s 1048s tests/test_s3tables/test_s3tables.py:227: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _____________________ test_update_table_metadata_location ______________________ 1048s 1048s @mock_aws 1048s def test_update_table_metadata_location(): 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s resp = client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s ) 1048s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1048s 1048s tests/test_s3tables/test_s3tables.py:280: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _________________________ test_write_metadata_to_table _________________________ 1048s 1048s @mock_aws 1048s def test_write_metadata_to_table() -> None: 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s resp = client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s ) 1048s  1048s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1048s 1048s tests/test_s3tables/test_s3tables.py:324: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _________ test_underlying_table_storage_does_not_support_list_objects __________ 1048s 1048s @mock_aws 1048s def test_underlying_table_storage_does_not_support_list_objects() -> None: 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s resp = client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s ) 1048s  1048s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1048s 1048s tests/test_s3tables/test_s3tables.py:356: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s _________ test_underlying_table_storage_does_not_support_delete_object _________ 1048s 1048s @mock_aws 1048s def test_underlying_table_storage_does_not_support_delete_object() -> None: 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s resp = client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s ) 1048s  1048s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1048s 1048s tests/test_s3tables/test_s3tables.py:374: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s ______________________________ test_rename_table _______________________________ 1048s 1048s @mock_aws 1048s def test_rename_table() -> None: 1048s client = boto3.client("s3tables", region_name="us-east-2") 1048s arn = client.create_table_bucket(name="foo")["arn"] 1048s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1048s resp = client.create_table( 1048s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1048s ) 1048s  1048s client.create_namespace(tableBucketARN=arn, namespace=["bar-two"]) 1048s client.rename_table( 1048s tableBucketARN=arn, 1048s namespace="bar", 1048s name="baz", 1048s newNamespaceName="bar-two", 1048s newName="baz-two", 1048s versionToken=resp["versionToken"], 1048s ) 1048s assert ( 1048s > client.get_table(tableBucketARN=arn, namespace="bar-two", name="baz-two")[ 1048s "name" 1048s ] 1048s == "baz-two" 1048s ) 1048s 1048s tests/test_s3tables/test_s3tables.py:403: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'GetTable' 1048s api_params = {'name': 'baz-two', 'namespace': 'bar-two', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s ___________________________ test_s3tables_get_table ____________________________ 1048s 1048s bucket_name = 'table-bucketxtwyzpintp' 1048s 1048s def test_s3tables_get_table(bucket_name: str): 1048s backend = server.create_backend_app("s3tables") 1048s test_client = backend.test_client() 1048s  1048s resp = test_client.put("/buckets", json={"name": bucket_name}) 1048s arn = resp.get_json()["arn"] 1048s  1048s quoted_arn = quote(arn, safe="") 1048s resp = test_client.put(f"/namespaces/{quoted_arn}", json={"namespace": ["bar"]}) 1048s  1048s resp = test_client.put( 1048s f"/tables/{quoted_arn}/bar", json={"name": "baz", "format": "ICEBERG"} 1048s ) 1048s  1048s resp = test_client.get(f"/tables/{quoted_arn}/bar/baz") 1048s > assert resp.status_code == 200 1048s E assert 404 == 200 1048s E + where 404 = .status_code 1048s 1048s tests/test_s3tables/test_server.py:126: AssertionError 1048s ___________________ test_invoke_fake_function_from_sqs_queue ___________________ 1048s 1048s @mock_aws(config={"lambda": {"use_docker": False}}) 1048s def test_invoke_fake_function_from_sqs_queue(): 1048s if not settings.TEST_DECORATOR_MODE: 1048s raise SkipTest("Can only set Config in DecoratorMode") 1048s logs_conn = boto3.client("logs", region_name="us-east-1") 1048s sqs = boto3.resource("sqs", region_name="us-east-1") 1048s queue_name = str(uuid.uuid4())[0:6] 1048s queue = sqs.create_queue(QueueName=queue_name) 1048s  1048s fn_name = str(uuid.uuid4())[0:6] 1048s conn = boto3.client("lambda", region_name="us-east-1") 1048s func = conn.create_function( 1048s FunctionName=fn_name, 1048s Runtime="python3.11", 1048s Role=get_role_name(), 1048s Handler="lambda_function.lambda_handler", 1048s Code={"ZipFile": b"n/a"}, 1048s ) 1048s  1048s > conn.create_event_source_mapping( 1048s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"] 1048s ) 1048s 1048s tests/test_sqs/test_sqs_integration.py:94: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s operation_name = 'CreateEventSourceMapping' 1048s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:1868c2', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:545cf0'} 1048s 1048s @with_current_context() 1048s def _make_api_call(self, operation_name, api_params): 1048s operation_model = self._service_model.operation_model(operation_name) 1048s service_name = self._service_model.service_name 1048s history_recorder.record( 1048s 'API_CALL', 1048s { 1048s 'service': service_name, 1048s 'operation': operation_name, 1048s 'params': api_params, 1048s }, 1048s ) 1048s if operation_model.deprecated: 1048s logger.debug( 1048s 'Warning: %s.%s() is deprecated', service_name, operation_name 1048s ) 1048s request_context = { 1048s 'client_region': self.meta.region_name, 1048s 'client_config': self.meta.config, 1048s 'has_streaming_input': operation_model.has_streaming_input, 1048s 'auth_type': operation_model.resolved_auth_type, 1048s 'unsigned_payload': operation_model.unsigned_payload, 1048s 'auth_options': self._service_model.metadata.get('auth'), 1048s } 1048s  1048s api_params = self._emit_api_params( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s context=request_context, 1048s ) 1048s ( 1048s endpoint_url, 1048s additional_headers, 1048s properties, 1048s ) = self._resolve_endpoint_ruleset( 1048s operation_model, api_params, request_context 1048s ) 1048s if properties: 1048s # Pass arbitrary endpoint info with the Request 1048s # for use during construction. 1048s request_context['endpoint_properties'] = properties 1048s request_dict = self._convert_to_request_dict( 1048s api_params=api_params, 1048s operation_model=operation_model, 1048s endpoint_url=endpoint_url, 1048s context=request_context, 1048s headers=additional_headers, 1048s ) 1048s resolve_checksum_context(request_dict, operation_model, api_params) 1048s  1048s service_id = self._service_model.service_id.hyphenize() 1048s handler, event_response = self.meta.events.emit_until_response( 1048s f'before-call.{service_id}.{operation_name}', 1048s model=operation_model, 1048s params=request_dict, 1048s request_signer=self._request_signer, 1048s context=request_context, 1048s ) 1048s  1048s if event_response is not None: 1048s http, parsed_response = event_response 1048s else: 1048s maybe_compress_request( 1048s self.meta.config, request_dict, operation_model 1048s ) 1048s apply_request_checksum(request_dict) 1048s http, parsed_response = self._make_request( 1048s operation_model, request_dict, request_context 1048s ) 1048s  1048s self.meta.events.emit( 1048s f'after-call.{service_id}.{operation_name}', 1048s http_response=http, 1048s parsed=parsed_response, 1048s model=operation_model, 1048s context=request_context, 1048s ) 1048s  1048s if http.status_code >= 300: 1048s error_info = parsed_response.get("Error", {}) 1048s error_code = request_context.get( 1048s 'error_code_override' 1048s ) or error_info.get("Code") 1048s error_class = self.exceptions.from_code(error_code) 1048s > raise error_class(parsed_response, operation_name) 1048s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1048s 1048s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1048s ____________________________ test_create_workspaces ____________________________ 1048s 1048s @mock_aws 1048s def test_create_workspaces(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:31: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-18bd05c208', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s __________ test_create_workspaces_with_auto_stop_timeout_and_alwayson __________ 1048s 1048s @mock_aws 1048s def test_create_workspaces_with_auto_stop_timeout_and_alwayson(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:111: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-b2f3e2dda5', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ___________ test_create_workspaces_with_auto_stop_timeout_and_manual ___________ 1048s 1048s @mock_aws 1048s def test_create_workspaces_with_auto_stop_timeout_and_manual(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:137: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-1df0352fd2', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ___________________________ test_describe_workspaces ___________________________ 1048s 1048s @mock_aws 1048s def test_describe_workspaces(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:163: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-a8773162c2', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________ test_describe_workspaces_with_directory_and_username _____________ 1048s 1048s @mock_aws 1048s def test_describe_workspaces_with_directory_and_username(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:188: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-718605123d', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _________________ test_describe_workspaces_invalid_parameters __________________ 1048s 1048s @mock_aws 1048s def test_describe_workspaces_invalid_parameters(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:211: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-fb079ecc35', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _________________ test_describe_workspaces_only_user_name_used _________________ 1048s 1048s @mock_aws 1048s def test_describe_workspaces_only_user_name_used(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:246: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-8c9fdba7ea', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ______________________ test_register_workspace_directory _______________________ 1048s 1048s @mock_aws 1048s def test_register_workspace_directory(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:268: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-11402c4bc2', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ____________ test_register_workspace_directory_enable_self_service _____________ 1048s 1048s @mock_aws 1048s def test_register_workspace_directory_enable_self_service(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s EnableSelfService=True, 1048s Tenancy="DEDICATED", 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:281: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-3141e3150d', 'EnableSelfService': True, 'EnableWorkDocs': True, 'Tenancy': 'DEDICATED'} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ________________ test_register_workspace_directory_with_subnets ________________ 1048s 1048s @mock_aws 1048s def test_register_workspace_directory_with_subnets(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:304: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-3db7343730', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________________ test_describe_workspace_directories ______________________ 1048s 1048s @mock_aws 1048s def test_describe_workspace_directories(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s for _ in range(2): 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:318: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-816f40c7f9', 'EnableWorkDocs': True} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ____________ test_describe_workspace_directories_with_directory_id _____________ 1048s 1048s @mock_aws 1048s def test_describe_workspace_directories_with_directory_id(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:347: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-3acb2fb2b4', 'EnableWorkDocs': True} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s __________________ test_modify_workspace_creation_properties ___________________ 1048s 1048s @mock_aws 1048s def test_modify_workspace_creation_properties(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s ec2_client = boto3.client("ec2", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s sg = create_security_group(client=ec2_client) 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:372: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-81a09fd34b', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s __________ test_modify_workspace_creation_properties_invalid_request ___________ 1048s 1048s @mock_aws 1048s def test_modify_workspace_creation_properties_invalid_request(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s ec2_client = boto3.client("ec2", region_name="eu-west-1") 1048s sg = create_security_group(client=ec2_client) 1048s with pytest.raises(ClientError) as exc: 1048s > client.modify_workspace_creation_properties( 1048s ResourceId="d-9067f6c44b", # Invalid DirectoryID 1048s WorkspaceCreationProperties={ 1048s "EnableWorkDocs": False, 1048s "CustomSecurityGroupId": sg["GroupId"], 1048s }, 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:394: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'ResourceId': 'd-9067f6c44b', 'WorkspaceCreationProperties': {'CustomSecurityGroupId': 'sg-04ac59e038f531334', 'EnableWorkDocs': False}} 1048s operation_model = OperationModel(name=ModifyWorkspaceCreationProperties) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in WorkspaceCreationProperties: "EnableWorkDocs", must be one of: EnableInternetAccess, DefaultOu, CustomSecurityGroupId, UserEnabledAsLocalAdministrator, EnableMaintenanceMode, InstanceIamRoleArn 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _______________________________ test_create_tags _______________________________ 1048s 1048s @mock_aws 1048s def test_create_tags(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s Tags=[ 1048s {"Key": "foo1", "Value": "bar1"}, 1048s ], 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:409: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-e1ee0edb62', 'EnableWorkDocs': True, 'Tags': [{'Key': 'foo1', 'Value': 'bar1'}]} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ______________________________ test_describe_tags ______________________________ 1048s 1048s @mock_aws 1048s def test_describe_tags(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s Tags=[ 1048s {"Key": "foo", "Value": "bar"}, 1048s ], 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:430: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-fa73b1b62e', 'EnableWorkDocs': True, 'Tags': [{'Key': 'foo', 'Value': 'bar'}]} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _______________________ test_describe_client_properties ________________________ 1048s 1048s @mock_aws 1048s def test_describe_client_properties(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:445: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-40d9d5f2e0', 'EnableWorkDocs': True} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ________________________ test_modify_client_properties _________________________ 1048s 1048s @mock_aws 1048s def test_modify_client_properties(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:457: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-90fbf43def', 'EnableWorkDocs': True} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _________________________ test_create_workspace_image __________________________ 1048s 1048s @mock_aws 1048s def test_create_workspace_image(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:478: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-3425b9126d', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s __________________ test_create_workspace_image_already_exists __________________ 1048s 1048s @mock_aws 1048s def test_create_workspace_image_already_exists(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:520: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-f8b7cde199', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ________________________ test_describe_workspace_images ________________________ 1048s 1048s @mock_aws 1048s def test_describe_workspace_images(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:550: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-192067a9d5', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s ____________________ test_update_workspace_image_permission ____________________ 1048s 1048s @mock_aws 1048s def test_update_workspace_image_permission(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:581: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-4d9717b5d4', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s __________________ test_describe_workspace_image_permissions ___________________ 1048s 1048s @mock_aws 1048s def test_describe_workspace_image_permissions(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:614: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-21a6b58dfd', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________________ test_deregister_workspace_directory ______________________ 1048s 1048s @mock_aws 1048s def test_deregister_workspace_directory(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s directory_id = create_directory() 1048s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1048s 1048s tests/test_workspaces/test_workspaces.py:651: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-1ce8bfe409', 'EnableWorkDocs': False} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s _____________________ test_modify_selfservice_permissions ______________________ 1048s 1048s @mock_aws 1048s def test_modify_selfservice_permissions(): 1048s client = boto3.client("workspaces", region_name="eu-west-1") 1048s  1048s directory_id = create_directory() 1048s > client.register_workspace_directory( 1048s DirectoryId=directory_id, 1048s EnableWorkDocs=True, 1048s ) 1048s 1048s tests/test_workspaces/test_workspaces.py:664: 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1048s return self._make_api_call(operation_name, kwargs) 1048s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1048s return func(*args, **kwargs) 1048s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1048s request_dict = self._convert_to_request_dict( 1048s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1048s request_dict = self._serializer.serialize_to_request( 1048s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1048s 1048s self = 1048s parameters = {'DirectoryId': 'd-099bb63c4c', 'EnableWorkDocs': True} 1048s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1048s 1048s def serialize_to_request(self, parameters, operation_model): 1048s input_shape = operation_model.input_shape 1048s if input_shape is not None: 1048s report = self._param_validator.validate( 1048s parameters, operation_model.input_shape 1048s ) 1048s if report.has_errors(): 1048s > raise ParamValidationError(report=report.generate_report()) 1048s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1048s 1048s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1048s =============================== warnings summary =============================== 1048s tests/test_core/test_docker.py:11 1048s /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build/tests/test_core/test_docker.py:11: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 1048s @pytest.mark.order(0) 1048s 1048s tests/test_core/test_docker.py:24 1048s /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build/tests/test_core/test_docker.py:24: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 1048s @pytest.mark.order(0) 1048s 1048s ../../../../usr/lib/python3/dist-packages/aws_xray_sdk/core/sampling/default_sampler.py:5 1048s /usr/lib/python3/dist-packages/aws_xray_sdk/core/sampling/default_sampler.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 1048s from pkg_resources import resource_filename 1048s 1048s tests/test_cognitoidp/test_cognitoidp.py: 36 warnings 1048s /usr/lib/python3/dist-packages/pycognito/aws_srp.py:310: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 1048s timestamp = self.get_cognito_formatted_timestamp(datetime.datetime.utcnow()) 1048s 1048s tests/test_ec2/test_key_pairs.py::test_key_pairs_invalid_boto3 1048s /usr/lib/python3/dist-packages/moto/ec2/utils.py:759: CryptographyDeprecationWarning: SSH DSA keys are deprecated and will be removed in a future release. 1048s public_key = serialization.load_ssh_public_key(key_material) 1048s 1048s tests/test_glue/test_datacatalog.py::test_create_database 1048s /usr/lib/python3/dist-packages/pyparsing/core.py:5637: SyntaxWarning: 'return' in a 'finally' block 1048s return f"{type(self).__name__}: {retString}" 1048s 1048s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 1048s =========================== short test summary info ============================ 1048s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_create_from_cloudformation_json - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1048s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_delete_stack - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1048s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_update_from_cloudformation_json - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1048s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_delete_from_cloudformation_json - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1048s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_create_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1048s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_list_event_source_mappings - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1048s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_get_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1048s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_update_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1048s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_delete_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_describe_flow_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_delete_flow_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_start_stop_flow_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_unknown_flow - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_tag_resource_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_vpc_interfaces_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_vpc_interfaces_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_vpc_interface_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_vpc_interface_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_outputs_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_outputs_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_output_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_output_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_output_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_output_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_sources_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_sources_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_source_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_source_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_grant_flow_entitlements_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_grant_flow_entitlements_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_revoke_flow_entitlement_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_revoke_flow_entitlement_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_entitlement_fails - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_entitlement_succeeds - TypeError: argument of type 'NoneType' is not a container or iterable 1048s FAILED tests/test_opsworks/test_apps.py::test_create_app_response - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_apps.py::test_describe_apps - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_instances.py::test_create_instance - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_instances.py::test_describe_instances - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_instances.py::test_ec2_integration - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_layers.py::test_create_layer_response - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_layers.py::test_describe_layers - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_stack.py::test_create_stack_response - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_opsworks/test_stack.py::test_describe_stacks - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1048s FAILED tests/test_rds/test_rds_proxy.py::test_create_db_proxy - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_rds/test_rds_proxy.py::test_describe_db_proxies - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_rds/test_rds_proxy.py::test_list_tags_db_proxy - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_rds/test_rds_proxy.py::test_create_db_proxy_invalid_subnet - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_rds/test_rds_proxy.py::test_create_db_proxy_duplicate_name - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py::test_get_resources_workspaces - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py::test_get_resources_workspace_directories - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py::test_get_resources_workspace_images - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_robomaker/test_robomaker.py::test_robot_application - botocore.exceptions.UnknownServiceError: Unknown service: 'robomaker'. Vali... 1048s FAILED tests/test_s3/test_s3_lock.py::test_locked_object_governance_mode[bypass] - AssertionError: assert 'Deleted' in {'Errors': [{'Code': 'AccessDenied', 'K... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_get_table - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_delete_table_deletes_underlying_table_storage - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_update_table_metadata_location - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_write_metadata_to_table - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_underlying_table_storage_does_not_support_list_objects - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_underlying_table_storage_does_not_support_delete_object - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_s3tables.py::test_rename_table - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1048s FAILED tests/test_s3tables/test_server.py::test_s3tables_get_table - assert 404 == 200 1048s FAILED tests/test_sqs/test_sqs_integration.py::test_invoke_fake_function_from_sqs_queue - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1048s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspaces - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspaces_with_auto_stop_timeout_and_alwayson - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspaces_with_auto_stop_timeout_and_manual - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces_with_directory_and_username - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces_invalid_parameters - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces_only_user_name_used - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_register_workspace_directory - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_register_workspace_directory_enable_self_service - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_register_workspace_directory_with_subnets - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_directories - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_directories_with_directory_id - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_modify_workspace_creation_properties - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_modify_workspace_creation_properties_invalid_request - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_create_tags - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_tags - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_client_properties - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_modify_client_properties - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspace_image - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspace_image_already_exists - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_images - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_update_workspace_image_permission - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_image_permissions - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_deregister_workspace_directory - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s FAILED tests/test_workspaces/test_workspaces.py::test_modify_selfservice_permissions - botocore.exceptions.ParamValidationError: Parameter validation failed: 1048s ERROR tests/test_qldb/test_qldb.py::test_create_describe_update_and_delete_ledger - botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid ser... 1048s ERROR tests/test_qldb/test_qldb.py::test_tag_resource_and_list_tags_for_resource - botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid ser... 1048s = 87 failed, 9715 passed, 16 skipped, 140 deselected, 41 warnings, 2 errors in 800.53s (0:13:20) = 1055s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build; python3.14 -m pytest -m 'not network and not requires_docker' tests --deselect tests/test_cloudformation/test_validate.py --deselect tests/test_dynamodb/test_dynamodb_import_table.py --deselect tests/test_dynamodb/test_dynamodb_statements.py --deselect tests/test_s3/test_s3_select.py --deselect tests/test_stepfunctions/parser/ --deselect 'tests/test_stepfunctions/test_stepfunctions_versions.py::test_describe_state_machine_using_version_arn[use_parser]' --deselect tests/test_dynamodb/test_dynamodb_account_mode.py::test_dynamodb_with_account_id_routing --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls --deselect tests/test_firehose/test_firehose_put.py::test_put_record_http_destination --deselect tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination --deselect tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header --deselect tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins 1055s I: pybuild base:311: cd /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build; python3.13 -m pytest -m 'not network and not requires_docker' tests --deselect tests/test_cloudformation/test_validate.py --deselect tests/test_dynamodb/test_dynamodb_import_table.py --deselect tests/test_dynamodb/test_dynamodb_statements.py --deselect tests/test_s3/test_s3_select.py --deselect tests/test_stepfunctions/parser/ --deselect 'tests/test_stepfunctions/test_stepfunctions_versions.py::test_describe_state_machine_using_version_arn[use_parser]' --deselect tests/test_dynamodb/test_dynamodb_account_mode.py::test_dynamodb_with_account_id_routing --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls --deselect tests/test_firehose/test_firehose_put.py::test_put_record_http_destination --deselect tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination --deselect tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header --deselect tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins 1083s ============================= test session starts ============================== 1083s platform linux -- Python 3.13.9, pytest-8.3.5, pluggy-1.6.0 1083s rootdir: /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build 1083s configfile: pyproject.toml 1083s plugins: typeguard-4.4.2 1083s collected 9960 items / 140 deselected / 9820 selected 1083s 1094s tests/test_acm/test_acm.py ................................ [ 0%] 1103s tests/test_acmpca/test_acmpca.py ................... [ 0%] 1103s tests/test_amp/test_amp_logging_config.py .... [ 0%] 1103s tests/test_amp/test_amp_rulegroupnamespaces.py ....... [ 0%] 1104s tests/test_amp/test_amp_workspaces.py ........ [ 0%] 1105s tests/test_apigateway/test_apigateway.py ............................... [ 1%] 1106s .......................................... [ 1%] 1107s tests/test_apigateway/test_apigateway_cloudformation.py .. [ 1%] 1107s tests/test_apigateway/test_apigateway_custom_ids.py ... [ 1%] 1107s tests/test_apigateway/test_apigateway_deployments.py .......... [ 1%] 1107s tests/test_apigateway/test_apigateway_export.py ... [ 1%] 1107s tests/test_apigateway/test_apigateway_gatewayresponses.py ........ [ 1%] 1107s tests/test_apigateway/test_apigateway_importrestapi.py .... [ 1%] 1108s tests/test_apigateway/test_apigateway_integration.py ..... [ 1%] 1108s tests/test_apigateway/test_apigateway_putrestapi.py ........ [ 1%] 1109s tests/test_apigateway/test_apigateway_stage.py ................ [ 2%] 1109s tests/test_apigateway/test_apigateway_validators.py ..... [ 2%] 1109s tests/test_apigateway/test_apigateway_vpclink.py ...... [ 2%] 1109s tests/test_apigateway/test_server.py ..... [ 2%] 1109s tests/test_apigatewaymanagementapi/test_apigatewaymanagementapi.py .... [ 2%] 1109s tests/test_apigatewayv2/test_apigatewayv2.py ............ [ 2%] 1109s tests/test_apigatewayv2/test_apigatewayv2_authorizers.py ........ [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_domains.py ..... [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_integrationresponses.py ...... [ 2%] 1110s . [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_integrations.py ........... [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_mappings.py ....... [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_models.py ...... [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_reimport.py .... [ 2%] 1110s tests/test_apigatewayv2/test_apigatewayv2_routes.py ............... [ 3%] 1111s tests/test_apigatewayv2/test_apigatewayv2_stages.py ... [ 3%] 1111s tests/test_apigatewayv2/test_apigatewayv2_tags.py .... [ 3%] 1111s tests/test_apigatewayv2/test_apigatewayv2_vpclinks.py ........ [ 3%] 1111s tests/test_apigatewayv2/test_server.py . [ 3%] 1111s tests/test_appconfig/test_appconfig_applications.py .. [ 3%] 1111s tests/test_appconfig/test_appconfig_config_profiles.py .. [ 3%] 1111s tests/test_appconfig/test_appconfig_hosted_config_versions.py ... [ 3%] 1112s tests/test_applicationautoscaling/test_applicationautoscaling.py ....... [ 3%] 1112s ...... [ 3%] 1112s tests/test_applicationautoscaling/test_applicationautoscaling_policies.py . [ 3%] 1112s ... [ 3%] 1112s tests/test_applicationautoscaling/test_validation.py ....... [ 3%] 1113s tests/test_appmesh/test_appmesh.py ......... [ 3%] 1113s tests/test_appsync/test_appsync.py ................. [ 3%] 1113s tests/test_appsync/test_appsync_apikeys.py ....... [ 3%] 1113s tests/test_appsync/test_appsync_schema.py ........... [ 3%] 1113s tests/test_appsync/test_appsync_tags.py ...... [ 4%] 1113s tests/test_appsync/test_server.py . [ 4%] 1114s tests/test_athena/test_athena.py ....................... [ 4%] 1114s tests/test_athena/test_athena_integration.py . [ 4%] 1114s tests/test_athena/test_athena_server_api.py .s.. [ 4%] 1117s tests/test_autoscaling/test_autoscaling.py ............................. [ 4%] 1119s ........... [ 4%] 1119s tests/test_autoscaling/test_autoscaling_cloudformation.py ..... [ 4%] 1119s tests/test_autoscaling/test_autoscaling_group_filters.py .... [ 4%] 1121s tests/test_autoscaling/test_autoscaling_groups.py ............ [ 4%] 1121s tests/test_autoscaling/test_autoscaling_metrics.py . [ 4%] 1122s tests/test_autoscaling/test_autoscaling_scheduledactions.py .......... [ 5%] 1122s tests/test_autoscaling/test_autoscaling_tags.py ........ [ 5%] 1123s tests/test_autoscaling/test_autoscaling_warm_pools.py .... [ 5%] 1125s tests/test_autoscaling/test_elb.py .................. [ 5%] 1126s tests/test_autoscaling/test_elbv2.py .. [ 5%] 1127s tests/test_autoscaling/test_launch_configurations.py ............. [ 5%] 1128s tests/test_autoscaling/test_policies.py .......... [ 5%] 1128s tests/test_autoscaling/test_server.py . [ 5%] 1129s tests/test_awslambda/test_awslambda_cloudformation.py ...FFFF [ 5%] 1131s tests/test_awslambda/test_lambda.py .................................... [ 6%] 1133s ................................ [ 6%] 1134s tests/test_awslambda/test_lambda_alias.py ............... [ 6%] 1134s tests/test_awslambda/test_lambda_concurrency.py ...... [ 6%] 1134s tests/test_awslambda/test_lambda_eventsourcemapping.py FFFFF [ 6%] 1135s tests/test_awslambda/test_lambda_function_urls.py ...... [ 6%] 1135s tests/test_awslambda/test_lambda_invoke.py s. [ 6%] 1135s tests/test_awslambda/test_lambda_layers.py ........ [ 6%] 1136s tests/test_awslambda/test_lambda_policy.py ............. [ 6%] 1136s tests/test_awslambda/test_lambda_tags.py ... [ 6%] 1136s tests/test_awslambda/test_policy.py . [ 6%] 1136s tests/test_awslambda_simple/test_lambda_simple.py ... [ 7%] 1137s tests/test_backup/test_backup.py .................. [ 7%] 1137s tests/test_batch/test_batch.py .. [ 7%] 1137s tests/test_batch/test_batch_cloudformation.py ... [ 7%] 1138s tests/test_batch/test_batch_compute_envs.py ............ [ 7%] 1139s tests/test_batch/test_batch_job_queue.py ........ [ 7%] 1140s tests/test_batch/test_batch_jobs.py ......... [ 7%] 1140s tests/test_batch/test_batch_scheduling_policy.py ..... [ 7%] 1140s tests/test_batch/test_batch_tags_job_definition.py ... [ 7%] 1141s tests/test_batch/test_batch_tags_job_queue.py .... [ 7%] 1141s tests/test_batch/test_batch_tags_scheduling_policy.py . [ 7%] 1142s tests/test_batch/test_batch_task_definition.py .................. [ 7%] 1142s tests/test_batch/test_server.py . [ 7%] 1142s tests/test_batch/test_utils.py .................. [ 8%] 1142s tests/test_batch_simple/test_batch_cloudformation.py ... [ 8%] 1143s tests/test_batch_simple/test_batch_compute_envs.py .. [ 8%] 1144s tests/test_batch_simple/test_batch_jobs.py ...... [ 8%] 1146s tests/test_bedrock/test_bedrock.py ..................................... [ 8%] 1146s ........... [ 8%] 1147s tests/test_bedrockagent/test_bedrockagent.py ........................... [ 8%] 1147s  [ 8%] 1147s tests/test_budgets/test_budgets.py ........ [ 9%] 1147s tests/test_budgets/test_notifications.py ..... [ 9%] 1147s tests/test_budgets/test_server.py . [ 9%] 1147s tests/test_ce/test_ce.py ....... [ 9%] 1147s tests/test_ce/test_ce_cost_and_usage.py .. [ 9%] 1147s tests/test_ce/test_ce_tags.py .. [ 9%] 1152s tests/test_cloudformation/test_cloudformation_custom_resources.py s.. [ 9%] 1152s tests/test_cloudformation/test_cloudformation_depends_on.py ... [ 9%] 1152s tests/test_cloudformation/test_cloudformation_multi_accounts.py ........ [ 9%] 1153s . [ 9%] 1153s tests/test_cloudformation/test_cloudformation_nested_stacks.py .... [ 9%] 1153s tests/test_cloudformation/test_cloudformation_stack_crud_boto3.py ...... [ 9%] 1156s ........................................................................ [ 10%] 1158s ................................ [ 10%] 1158s tests/test_cloudformation/test_cloudformation_stack_integration.py ..... [ 10%] 1159s ............................. [ 10%] 1160s tests/test_cloudformation/test_cloudformation_stack_policies.py ........ [ 10%] 1160s  [ 10%] 1160s tests/test_cloudformation/test_conditions.py ... [ 10%] 1160s tests/test_cloudformation/test_import_value.py .. [ 10%] 1160s tests/test_cloudformation/test_server.py . [ 10%] 1160s tests/test_cloudformation/test_stack_parsing.py ........................ [ 11%] 1160s . [ 11%] 1161s tests/test_cloudformation/test_utilities.py .... [ 11%] 1161s tests/test_cloudfront/test_cloudfront.py ..... [ 11%] 1161s tests/test_cloudfront/test_cloudfront_dist_tags.py .. [ 11%] 1162s tests/test_cloudfront/test_cloudfront_distributions.py ................. [ 11%] 1163s .......................................... [ 11%] 1163s tests/test_cloudfront/test_cloudfront_invalidation.py ....... [ 12%] 1163s tests/test_cloudfront/test_cloudfront_keys.py .... [ 12%] 1163s tests/test_cloudfront/test_cloudfront_oac.py .. [ 12%] 1163s tests/test_cloudfront/test_server.py . [ 12%] 1164s tests/test_cloudhsmv2/test_cloudhsmv2.py ............. [ 12%] 1164s tests/test_cloudtrail/test_cloudtrail.py ............................. [ 12%] 1165s tests/test_cloudtrail/test_cloudtrail_eventselectors.py ........ [ 12%] 1165s tests/test_cloudtrail/test_cloudtrail_tags.py .... [ 12%] 1165s tests/test_cloudtrail/test_server.py . [ 12%] 1165s tests/test_cloudwatch/test_cloudwatch_alarms.py ....... [ 12%] 1167s tests/test_cloudwatch/test_cloudwatch_boto3.py ......................... [ 12%] 1168s ................ [ 13%] 1168s tests/test_cloudwatch/test_cloudwatch_dashboards.py ....... [ 13%] 1168s tests/test_cloudwatch/test_cloudwatch_expression_parser.py ... [ 13%] 1168s tests/test_cloudwatch/test_cloudwatch_expressions.py ... [ 13%] 1168s tests/test_cloudwatch/test_cloudwatch_tags.py ....... [ 13%] 1168s tests/test_codebuild/test_codebuild.py ................... [ 13%] 1168s tests/test_codecommit/test_codecommit.py ........ [ 13%] 1169s tests/test_codepipeline/test_codepipeline.py ................ [ 13%] 1170s tests/test_cognitoidentity/test_cognitoidentity.py ..................... [ 13%] 1170s .. [ 14%] 1170s tests/test_cognitoidentity/test_server.py ... [ 14%] 1180s tests/test_cognitoidp/test_cognitoidp.py ............................... [ 14%] 1201s ........................................................................ [ 15%] 1222s ........................................................................ [ 15%] 1233s ................................... [ 16%] 1234s tests/test_cognitoidp/test_cognitoidp_exceptions.py ... [ 16%] 1235s tests/test_cognitoidp/test_cognitoidp_replay.py .. [ 16%] 1236s tests/test_cognitoidp/test_server.py ... [ 16%] 1236s tests/test_comprehend/test_comprehend.py .................. [ 16%] 1240s tests/test_config/test_config.py .................................. [ 16%] 1240s tests/test_config/test_config_rules.py ........ [ 16%] 1240s tests/test_config/test_config_rules_integration.py ... [ 16%] 1240s tests/test_config/test_config_tags.py ... [ 16%] 1241s tests/test_core/test_account_id_resolution.py . [ 16%] 1243s tests/test_core/test_auth.py .......................... [ 17%] 1243s tests/test_core/test_backenddict.py ............. [ 17%] 1243s tests/test_core/test_backends.py . [ 17%] 1243s tests/test_core/test_botocore_stubber.py . [ 17%] 1243s tests/test_core/test_config.py .. [ 17%] 1244s tests/test_core/test_decorator_calls.py ............................ [ 17%] 1244s tests/test_core/test_ec2_vpc_endpoint_services.py ... [ 17%] 1244s tests/test_core/test_environ_patching.py ... [ 17%] 1244s tests/test_core/test_importorder.py ....... [ 17%] 1244s tests/test_core/test_instance_metadata.py .... [ 17%] 1245s tests/test_core/test_mock_regions.py ..... [ 17%] 1245s tests/test_core/test_moto_api.py ...... [ 17%] 1245s tests/test_core/test_mypy.py ... [ 17%] 1245s tests/test_core/test_nested.py .. [ 18%] 1245s tests/test_core/test_proxy.py sssss [ 18%] 1245s tests/test_core/test_request_mocking.py ... [ 18%] 1245s tests/test_core/test_request_passthrough.py . [ 18%] 1245s tests/test_core/test_responses.py ......... [ 18%] 1246s tests/test_core/test_responses_module.py ..... [ 18%] 1247s tests/test_core/test_server.py .... [ 18%] 1247s tests/test_core/test_settings.py ......... [ 18%] 1247s tests/test_core/test_url_base_regex.py ................................. [ 18%] 1248s ........................................................................ [ 19%] 1249s ..................................................... [ 19%] 1249s tests/test_core/test_url_mapping.py .. [ 20%] 1249s tests/test_core/test_utils.py ............ [ 20%] 1250s tests/test_databrew/test_databrew_datasets.py ............ [ 20%] 1250s tests/test_databrew/test_databrew_jobs.py .......................... [ 20%] 1251s tests/test_databrew/test_databrew_recipes.py ........................... [ 20%] 1251s ......... [ 20%] 1251s tests/test_databrew/test_databrew_rulesets.py .......... [ 20%] 1251s tests/test_datapipeline/test_datapipeline.py ........ [ 21%] 1251s tests/test_datapipeline/test_datapipeline_cloudformation.py . [ 21%] 1251s tests/test_datapipeline/test_server.py . [ 21%] 1251s tests/test_datasync/test_datasync.py ................... [ 21%] 1252s tests/test_dax/test_dax.py ............................... [ 21%] 1252s tests/test_dax/test_server.py . [ 21%] 1253s tests/test_directconnect/test_directconnect.py .......... [ 21%] 1253s tests/test_dms/test_dms.py ......... [ 21%] 1254s tests/test_ds/test_ds.py ........... [ 21%] 1255s tests/test_ds/test_ds_ad_connect.py ........ [ 21%] 1255s tests/test_ds/test_ds_microsoft_ad.py ......... [ 22%] 1255s tests/test_ds/test_ds_simple_ad_directory.py .... [ 22%] 1256s tests/test_ds/test_ds_tags.py ... [ 22%] 1256s tests/test_dsql/test_dsql.py .... [ 22%] 1257s tests/test_dynamodb/exceptions/test_dynamodb_exceptions.py ............. [ 22%] 1258s .............................................. [ 22%] 1258s tests/test_dynamodb/exceptions/test_dynamodb_transactions.py ........ [ 22%] 1258s tests/test_dynamodb/exceptions/test_key_length_exceptions.py ........ [ 22%] 1258s tests/test_dynamodb/models/test_item.py ............. [ 23%] 1258s tests/test_dynamodb/models/test_key_condition_expression_parser.py ..... [ 23%] 1258s .......................... [ 23%] 1258s tests/test_dynamodb/models/test_utilities.py ............ [ 23%] 1259s tests/test_dynamodb/test_dynamodb.py ................................... [ 23%] 1265s ........................................................................ [ 24%] 1266s .................................. [ 24%] 1267s tests/test_dynamodb/test_dynamodb_batch_get_item.py ....... [ 25%] 1267s tests/test_dynamodb/test_dynamodb_batch_write.py ... [ 25%] 1267s tests/test_dynamodb/test_dynamodb_cloudformation.py ... [ 25%] 1267s tests/test_dynamodb/test_dynamodb_condition_expressions.py .......... [ 25%] 1267s tests/test_dynamodb/test_dynamodb_consumedcapacity.py ...... [ 25%] 1268s tests/test_dynamodb/test_dynamodb_create_table.py .............. [ 25%] 1268s tests/test_dynamodb/test_dynamodb_executor.py ....................... [ 25%] 1269s tests/test_dynamodb/test_dynamodb_export_table.py ....... [ 25%] 1269s tests/test_dynamodb/test_dynamodb_expression_tokenizer.py .............. [ 25%] 1269s ....... [ 25%] 1269s tests/test_dynamodb/test_dynamodb_expressions.py ....................... [ 26%] 1269s ................. [ 26%] 1270s tests/test_dynamodb/test_dynamodb_query.py ................... [ 26%] 1271s tests/test_dynamodb/test_dynamodb_resource_policy.py .............. [ 26%] 1272s tests/test_dynamodb/test_dynamodb_scan.py .......................... [ 26%] 1272s tests/test_dynamodb/test_dynamodb_table_with_range_key.py .............. [ 27%] 1273s ........... [ 27%] 1273s tests/test_dynamodb/test_dynamodb_table_without_range_key.py ........... [ 27%] 1273s ............... [ 27%] 1274s tests/test_dynamodb/test_dynamodb_transact.py .................. [ 27%] 1274s tests/test_dynamodb/test_dynamodb_update_expressions.py ........ [ 27%] 1274s tests/test_dynamodb/test_dynamodb_update_table.py ..... [ 27%] 1274s tests/test_dynamodb/test_dynamodb_validation.py ..................... [ 27%] 1274s tests/test_dynamodb/test_server.py . [ 27%] 1274s tests/test_dynamodb_v20111205/test_server.py ........................... [ 28%] 1274s .............. [ 28%] 1274s tests/test_dynamodb_v20111205/test_servermode.py ss [ 28%] 1275s tests/test_dynamodbstreams/test_dynamodbstreams.py .......... [ 28%] 1275s tests/test_ebs/test_ebs.py ........ [ 28%] 1275s tests/test_ec2/test_account_attributes.py . [ 28%] 1281s tests/test_ec2/test_amis.py ............................................ [ 29%] 1281s . [ 29%] 1282s tests/test_ec2/test_availability_zones_and_regions.py .............. [ 29%] 1283s tests/test_ec2/test_carrier_gateways.py ...... [ 29%] 1283s tests/test_ec2/test_customer_gateways.py ...... [ 29%] 1284s tests/test_ec2/test_dhcp_options.py .................. [ 29%] 1286s tests/test_ec2/test_ec2_cloudformation.py ...................... [ 29%] 1286s tests/test_ec2/test_ec2_integration.py . [ 29%] 1287s tests/test_ec2/test_egress_only_igw.py ..... [ 29%] 1291s tests/test_ec2/test_elastic_block_store.py ............................. [ 30%] 1292s ............ [ 30%] 1294s tests/test_ec2/test_elastic_ip_addresses.py ...................... [ 30%] 1296s tests/test_ec2/test_elastic_network_interfaces.py ...................... [ 30%] 1297s ......... [ 30%] 1299s tests/test_ec2/test_fleets.py .................... [ 30%] 1300s tests/test_ec2/test_flow_logs.py .............. [ 31%] 1300s tests/test_ec2/test_flow_logs_cloudformation.py .. [ 31%] 1300s tests/test_ec2/test_general.py .. [ 31%] 1300s tests/test_ec2/test_hosts.py ........ [ 31%] 1301s tests/test_ec2/test_iam_integration.py ....... [ 31%] 1301s tests/test_ec2/test_instance_type_offerings.py .... [ 31%] 1303s tests/test_ec2/test_instance_types.py ........... [ 31%] 1306s tests/test_ec2/test_instances.py ....................................... [ 31%] 1311s .......................................................... [ 32%] 1313s tests/test_ec2/test_internet_gateways.py ................. [ 32%] 1316s tests/test_ec2/test_key_pairs.py ................... [ 32%] 1317s tests/test_ec2/test_launch_templates.py ...................... [ 33%] 1317s tests/test_ec2/test_launch_templates_cloudformation.py .... [ 33%] 1318s tests/test_ec2/test_nat_gateway.py ........ [ 33%] 1319s tests/test_ec2/test_network_acls.py ............... [ 33%] 1320s tests/test_ec2/test_prefix_lists.py ............. [ 33%] 1321s tests/test_ec2/test_regions.py ........ [ 33%] 1324s tests/test_ec2/test_route_tables.py ............................. [ 33%] 1327s tests/test_ec2/test_security_groups.py ................................. [ 34%] 1329s ................... [ 34%] 1330s tests/test_ec2/test_security_groups_cloudformation.py .... [ 34%] 1330s tests/test_ec2/test_server.py ... [ 34%] 1330s tests/test_ec2/test_settings.py .... [ 34%] 1332s tests/test_ec2/test_spot_fleet.py ................. [ 34%] 1333s tests/test_ec2/test_spot_instances.py ............ [ 34%] 1336s tests/test_ec2/test_subnets.py ............................. [ 35%] 1338s tests/test_ec2/test_tags.py ................... [ 35%] 1341s tests/test_ec2/test_transit_gateway.py ............................... [ 35%] 1341s tests/test_ec2/test_transit_gateway_cloudformation.py .. [ 35%] 1341s tests/test_ec2/test_transit_gateway_peering_attachments.py ........ [ 35%] 1342s tests/test_ec2/test_utils.py ....... [ 35%] 1343s tests/test_ec2/test_virtual_private_gateways.py ................ [ 35%] 1343s tests/test_ec2/test_vpc_endpoint_services_integration.py . [ 35%] 1347s tests/test_ec2/test_vpc_peering.py ........................... [ 36%] 1348s tests/test_ec2/test_vpc_service_configuration_integration.py ........... [ 36%] 1349s .... [ 36%] 1352s tests/test_ec2/test_vpcs.py ............................................ [ 36%] 1353s ........ [ 36%] 1353s tests/test_ec2/test_vpn_connections.py ...... [ 36%] 1353s tests/test_ec2/test_windows.py . [ 36%] 1353s tests/test_ec2instanceconnect/test_ec2instanceconnect_boto3.py . [ 36%] 1353s tests/test_ecr/test_ecr_boto3.py ....................................... [ 37%] 1354s ............................................................ [ 37%] 1354s tests/test_ecr/test_ecr_cloudformation.py ... [ 37%] 1354s tests/test_ecr/test_ecr_policy_validation.py ...................... [ 38%] 1354s tests/test_ecr/test_ecr_scanning_config.py ... [ 38%] 1355s tests/test_ecs/test_ecs_account_settings.py ............. [ 38%] 1356s tests/test_ecs/test_ecs_boto3.py ....................................... [ 38%] 1360s ............................................................ [ 39%] 1360s tests/test_ecs/test_ecs_capacity_provider.py ....... [ 39%] 1360s tests/test_ecs/test_ecs_cloudformation.py .......... [ 39%] 1360s tests/test_ecs/test_ecs_efs.py . [ 39%] 1360s tests/test_ecs/test_ecs_task_def_tags.py . [ 39%] 1360s tests/test_ecs/test_ecs_task_tags.py .. [ 39%] 1361s tests/test_ecs/test_ecs_tasksets.py ......... [ 39%] 1361s tests/test_efs/test_access_point_tagging.py .... [ 39%] 1361s tests/test_efs/test_access_points.py ....... [ 39%] 1361s tests/test_efs/test_efs_cloudformation.py .. [ 39%] 1361s tests/test_efs/test_file_system.py ................. [ 39%] 1361s tests/test_efs/test_filesystem_policy.py .. [ 40%] 1361s tests/test_efs/test_filesystem_tagging.py .... [ 40%] 1361s tests/test_efs/test_lifecycle_config.py ... [ 40%] 1363s tests/test_efs/test_mount_target.py ................... [ 40%] 1363s tests/test_efs/test_mount_target_security_groups.py .... [ 40%] 1363s tests/test_efs/test_server.py ....... [ 40%] 1420s tests/test_eks/test_eks.py ............................................. [ 40%] 1425s ............................................ [ 41%] 1426s tests/test_eks/test_eks_ec2.py ... [ 41%] 1428s tests/test_eks/test_server.py .................. [ 41%] 1429s tests/test_elasticache/test_elasticache.py ............................. [ 41%] 1429s .... [ 41%] 1429s tests/test_elasticache/test_server.py . [ 41%] 1429s tests/test_elasticbeanstalk/test_elasticbeanstalk.py .......... [ 41%] 1429s tests/test_elasticbeanstalk/test_server.py . [ 41%] 1429s tests/test_elastictranscoder/test_elastictranscoder.py ................ [ 42%] 1429s tests/test_elastictranscoder/test_server.py . [ 42%] 1432s tests/test_elb/test_elb.py ......................................... [ 42%] 1432s tests/test_elb/test_elb_availabilityzones.py . [ 42%] 1432s tests/test_elb/test_elb_cloudformation.py ... [ 42%] 1432s tests/test_elb/test_elb_policies.py .......... [ 42%] 1432s tests/test_elb/test_elb_subnets.py .. [ 42%] 1432s tests/test_elb/test_server.py . [ 42%] 1437s tests/test_elbv2/test_elbv2.py ......................................... [ 43%] 1441s ................ [ 43%] 1442s tests/test_elbv2/test_elbv2_cloudformation.py ..... [ 43%] 1442s tests/test_elbv2/test_elbv2_integration.py . [ 43%] 1442s tests/test_elbv2/test_elbv2_listener_attributes.py . [ 43%] 1443s tests/test_elbv2/test_elbv2_listener_rule_tags.py ... [ 43%] 1447s tests/test_elbv2/test_elbv2_listener_rules.py .......................... [ 43%] 1448s ............ [ 43%] 1449s tests/test_elbv2/test_elbv2_listener_tags.py ... [ 43%] 1450s tests/test_elbv2/test_elbv2_set_subnets.py .. [ 43%] 1451s tests/test_elbv2/test_elbv2_target_groups.py ........................... [ 44%] 1456s ............................................. [ 44%] 1456s tests/test_elbv2/test_elbv2_target_health.py .. [ 44%] 1456s tests/test_elbv2/test_server.py . [ 44%] 1456s tests/test_emr/test_emr.py . [ 44%] 1462s tests/test_emr/test_emr_boto3.py ............................ [ 44%] 1462s tests/test_emr/test_emr_cloudformation.py ....... [ 44%] 1463s tests/test_emr/test_emr_integration.py ...... [ 45%] 1463s tests/test_emr/test_server.py . [ 45%] 1463s tests/test_emr/test_utils.py .. [ 45%] 1464s tests/test_emrcontainers/test_emrcontainers.py ......................... [ 45%] 1465s ................................ [ 45%] 1465s tests/test_emrcontainers/test_server.py . [ 45%] 1466s tests/test_emrserverless/test_emrserverless.py ......................... [ 45%] 1468s .................................... [ 46%] 1468s tests/test_emrserverless/test_server.py . [ 46%] 1468s tests/test_es/test_domain_tags.py ..... [ 46%] 1469s tests/test_es/test_es.py ................... [ 46%] 1469s tests/test_es/test_server.py . [ 46%] 1469s tests/test_events/test_event_pattern.py ............ [ 46%] 1470s tests/test_events/test_events.py ....................................... [ 47%] 1472s ........................................................................ [ 47%] 1472s ... [ 47%] 1472s tests/test_events/test_events_cloudformation.py ...... [ 47%] 1472s tests/test_events/test_events_http_integration.py . [ 47%] 1474s tests/test_events/test_events_integration.py ...... [ 47%] 1490s tests/test_events/test_events_lambdatriggers_integration.py .... [ 48%] 1490s tests/test_events/test_events_partners_integration.py ... [ 48%] 1490s tests/test_firehose/test_firehose.py ....... [ 48%] 1490s tests/test_firehose/test_firehose_destination_types.py ..... [ 48%] 1490s tests/test_firehose/test_firehose_encryption.py .... [ 48%] 1490s tests/test_firehose/test_firehose_put.py ..... [ 48%] 1490s tests/test_firehose/test_firehose_tags.py ... [ 48%] 1490s tests/test_firehose/test_http_destinations.py .. [ 48%] 1491s tests/test_forecast/test_forecast.py ..................... [ 48%] 1493s tests/test_fsx/test_fsx.py ...... [ 48%] 1493s tests/test_glacier/test_glacier_archives.py ... [ 48%] 1498s tests/test_glacier/test_glacier_jobs.py .... [ 48%] 1498s tests/test_glacier/test_glacier_vaults.py .... [ 48%] 1498s tests/test_glacier/test_server.py . [ 48%] 1499s tests/test_glue/test_datacatalog.py .................................... [ 49%] 1499s ................. [ 49%] 1501s tests/test_glue/test_glue.py ........................................... [ 49%] 1501s ............... [ 49%] 1501s tests/test_glue/test_glue_job_runs.py ...... [ 49%] 1501s tests/test_glue/test_partition_filter.py ....... [ 49%] 1502s tests/test_glue/test_schema_registry.py ................................ [ 50%] 1503s ..................................... [ 50%] 1504s tests/test_greengrass/test_greengrass_core.py ............. [ 50%] 1504s tests/test_greengrass/test_greengrass_deployment.py ............... [ 50%] 1504s tests/test_greengrass/test_greengrass_device.py ............... [ 51%] 1505s tests/test_greengrass/test_greengrass_functions.py ................ [ 51%] 1505s tests/test_greengrass/test_greengrass_groups.py ........................ [ 51%] 1505s ....... [ 51%] 1506s tests/test_greengrass/test_greengrass_resource.py .................... [ 51%] 1506s tests/test_greengrass/test_greengrass_subscriptions.py ................. [ 51%] 1506s ...... [ 52%] 1506s tests/test_guardduty/test_guardduty.py ........... [ 52%] 1506s tests/test_guardduty/test_guardduty_filters.py ..... [ 52%] 1506s tests/test_guardduty/test_guardduty_organization.py .. [ 52%] 1506s tests/test_guardduty/test_server.py . [ 52%] 1509s tests/test_iam/test_iam.py ............................................. [ 52%] 1514s ........................................................................ [ 53%] 1516s ...................................... [ 53%] 1516s tests/test_iam/test_iam_access_integration.py ... [ 53%] 1516s tests/test_iam/test_iam_account_aliases.py . [ 53%] 1517s tests/test_iam/test_iam_cloudformation.py .............................. [ 54%] 1517s  [ 54%] 1519s tests/test_iam/test_iam_groups.py ....................... [ 54%] 1519s tests/test_iam/test_iam_oidc.py .................. [ 54%] 1519s tests/test_iam/test_iam_password_last_used.py . [ 54%] 1519s tests/test_iam/test_iam_policies.py .................................... [ 54%] 1520s ........................................................................ [ 55%] 1521s ..................... [ 55%] 1523s tests/test_iam/test_iam_resets.py .. [ 55%] 1523s tests/test_iam/test_iam_server_certificates.py ..... [ 55%] 1525s tests/test_iam/test_iam_signing_certificates.py ...... [ 56%] 1525s tests/test_iam/test_server.py . [ 56%] 1526s tests/test_identitystore/test_identitystore.py ......................... [ 56%] 1526s .. [ 56%] 1526s tests/test_inspector2/test_inspector2.py .. [ 56%] 1526s tests/test_inspector2/test_inspector2_admin_accounts.py . [ 56%] 1526s tests/test_inspector2/test_inspector2_enable.py . [ 56%] 1526s tests/test_inspector2/test_inspector2_findings.py . [ 56%] 1526s tests/test_inspector2/test_inspector2_members.py . [ 56%] 1526s tests/test_inspector2/test_inspector2_organization.py . [ 56%] 1526s tests/test_inspector2/test_inspector2_tags.py .. [ 56%] 1526s tests/test_iot/test_iot.py .... [ 56%] 1527s tests/test_iot/test_iot_ca_certificates.py .......... [ 56%] 1532s tests/test_iot/test_iot_certificates.py .............. [ 56%] 1532s tests/test_iot/test_iot_cloudformation.py ................. [ 56%] 1532s tests/test_iot/test_iot_deprecate_thing_type.py .... [ 56%] 1532s tests/test_iot/test_iot_domain_configuration.py ............ [ 57%] 1532s tests/test_iot/test_iot_indexing_configuration.py .. [ 57%] 1532s tests/test_iot/test_iot_integration.py . [ 57%] 1533s tests/test_iot/test_iot_job_executions.py ...... [ 57%] 1533s tests/test_iot/test_iot_job_templates.py ......... [ 57%] 1534s tests/test_iot/test_iot_jobs.py ........ [ 57%] 1535s tests/test_iot/test_iot_policies.py ................. [ 57%] 1535s tests/test_iot/test_iot_rolealias.py ....... [ 57%] 1535s tests/test_iot/test_iot_search.py ............. [ 57%] 1536s tests/test_iot/test_iot_thing_groups.py ................. [ 57%] 1536s tests/test_iot/test_iot_thing_types.py ..... [ 57%] 1537s tests/test_iot/test_iot_things.py ....... [ 57%] 1537s tests/test_iot/test_iot_topic_rules.py .......... [ 58%] 1537s tests/test_iot/test_server.py ... [ 58%] 1538s tests/test_iotdata/test_iotdata.py ................... [ 58%] 1538s tests/test_iotdata/test_server.py ... [ 58%] 1539s tests/test_ivs/test_ivs.py ................. [ 58%] 1539s tests/test_kafka/test_kafka.py ..... [ 58%] 1542s tests/test_kinesis/test_kinesis.py .................................. [ 58%] 1543s tests/test_kinesis/test_kinesis_boto3.py ................ [ 59%] 1543s tests/test_kinesis/test_kinesis_cloudformation.py .... [ 59%] 1543s tests/test_kinesis/test_kinesis_encryption.py ... [ 59%] 1543s tests/test_kinesis/test_kinesis_monitoring.py ..... [ 59%] 1543s tests/test_kinesis/test_kinesis_resource_policy.py ..... [ 59%] 1543s tests/test_kinesis/test_kinesis_stream_consumers.py ....... [ 59%] 1544s tests/test_kinesis/test_kinesis_stream_limits.py ....... [ 59%] 1544s tests/test_kinesis/test_server.py . [ 59%] 1544s tests/test_kinesisvideo/test_kinesisvideo.py ........ [ 59%] 1544s tests/test_kinesisvideo/test_server.py . [ 59%] 1544s tests/test_kinesisvideoarchivedmedia/test_kinesisvideoarchivedmedia.py . [ 59%] 1544s .. [ 59%] 1544s tests/test_kinesisvideoarchivedmedia/test_server.py . [ 59%] 1547s tests/test_kms/test_kms_boto3.py ....................................... [ 59%] 1555s ........................................................................ [ 60%] 1578s .......................................... [ 61%] 1583s tests/test_kms/test_kms_encrypt.py ................... [ 61%] 1584s tests/test_kms/test_kms_grants.py ....... [ 61%] 1585s tests/test_kms/test_kms_key_rotation.py ....... [ 61%] 1586s tests/test_kms/test_kms_mac.py ...... [ 61%] 1587s tests/test_kms/test_kms_policy_enforcement.py ........................ [ 61%] 1587s tests/test_kms/test_model.py .... [ 61%] 1587s tests/test_kms/test_server.py . [ 61%] 1588s tests/test_kms/test_utils.py ..................... [ 61%] 1588s tests/test_lakeformation/test_lakeformation.py ................... [ 62%] 1588s tests/test_lakeformation/test_permission.py .. [ 62%] 1589s tests/test_lakeformation/test_resource_tags_integration.py ..... [ 62%] 1589s tests/test_lexv2models/test_lexv2models.py ....... [ 62%] 1589s tests/test_logs/test_export_tasks.py ......... [ 62%] 1589s tests/test_logs/test_integration.py ..... [ 62%] 1590s tests/test_logs/test_logs.py ........................................... [ 62%] 1591s .................. [ 63%] 1591s tests/test_logs/test_logs_cloudformation.py . [ 63%] 1591s tests/test_logs/test_logs_filter_log_events.py ........ [ 63%] 1592s tests/test_logs/test_logs_metric_filters.py ............ [ 63%] 1592s tests/test_logs/test_logs_query/test_boto3.py .... [ 63%] 1592s tests/test_logs/test_logs_query/test_query.py .. [ 63%] 1592s tests/test_logs/test_logs_query/test_query_parser.py ........... [ 63%] 1592s tests/test_logs/test_logs_tags.py .. [ 63%] 1592s tests/test_logs/test_models.py . [ 63%] 1592s tests/test_managedblockchain/test_managedblockchain_invitations.py ... [ 63%] 1592s tests/test_managedblockchain/test_managedblockchain_members.py ......... [ 63%] 1592s ...... [ 63%] 1592s tests/test_managedblockchain/test_managedblockchain_networks.py ...... [ 63%] 1592s tests/test_managedblockchain/test_managedblockchain_nodes.py ........... [ 63%] 1593s ...... [ 63%] 1593s tests/test_managedblockchain/test_managedblockchain_proposals.py ....... [ 63%] 1593s .. [ 63%] 1593s tests/test_managedblockchain/test_managedblockchain_proposalvotes.py ... [ 64%] 1593s .......... [ 64%] 1598s tests/test_mediaconnect/test_mediaconnect.py ...FFFFFFFFFFFFFFFFFFFFFFFF [ 64%] 1598s F [ 64%] 1598s tests/test_mediaconnect/test_server.py . [ 64%] 1599s tests/test_medialive/test_medialive.py ............ [ 64%] 1599s tests/test_medialive/test_server.py .. [ 64%] 1599s tests/test_mediapackage/test_mediapackage.py .............. [ 64%] 1599s tests/test_mediapackage/test_server.py .. [ 64%] 1599s tests/test_mediastore/test_mediastore.py ..................... [ 64%] 1599s tests/test_mediastore/test_server.py . [ 64%] 1600s tests/test_mediastoredata/test_mediastoredata.py ...... [ 65%] 1600s tests/test_mediastoredata/test_server.py . [ 65%] 1601s tests/test_memorydb/test_memorydb.py ................................... [ 65%] 1601s .............. [ 65%] 1601s tests/test_meteringmarketplace/test_meteringmarketplace.py . [ 65%] 1601s tests/test_moto_api/mock_random/test_mock_random.py ... [ 65%] 1602s tests/test_moto_api/recorder/test_recorder.py ........ [ 65%] 1602s tests/test_moto_api/seeder/test_seeder.py ... [ 65%] 1602s tests/test_moto_api/state_manager/servermode/test_inmemory_server.py ... [ 65%] 1602s  [ 65%] 1603s tests/test_moto_api/state_manager/servermode/test_state_manager.py sss [ 65%] 1603s tests/test_moto_api/state_manager/test_batch_integration.py . [ 65%] 1605s tests/test_moto_api/state_manager/test_managed_state_model.py ....... [ 65%] 1605s tests/test_moto_api/state_manager/test_state_manager.py ....... [ 65%] 1605s tests/test_mq/test_mq.py ................ [ 66%] 1605s tests/test_mq/test_mq_configuration.py ......... [ 66%] 1605s tests/test_mq/test_mq_tags.py ..... [ 66%] 1606s tests/test_mq/test_mq_users.py ....... [ 66%] 1606s tests/test_mq/test_server.py . [ 66%] 1606s tests/test_neptune/test_cluster_options.py . [ 66%] 1606s tests/test_neptune/test_cluster_tags.py . [ 66%] 1606s tests/test_neptune/test_clusters.py ....... [ 66%] 1606s tests/test_neptune/test_global_clusters.py .... [ 66%] 1607s tests/test_networkmanager/test_networkmanager.py ..................... [ 66%] 1607s tests/test_networkmanager/test_server.py ... [ 66%] 1607s tests/test_opensearch/test_domain_tags.py .. [ 66%] 1607s tests/test_opensearch/test_opensearch.py .............. [ 66%] 1607s tests/test_opensearchserverless/test_opensearchserverless.py ........... [ 66%] 1607s ............ [ 67%] 1607s tests/test_opsworks/test_apps.py FF [ 67%] 1608s tests/test_opsworks/test_instances.py FFF [ 67%] 1608s tests/test_opsworks/test_layers.py FF [ 67%] 1608s tests/test_opsworks/test_stack.py FF [ 67%] 1608s tests/test_organizations/test_organizations_boto3.py ................... [ 67%] 1610s ........................................................................ [ 68%] 1610s ................. [ 68%] 1610s tests/test_osis/test_osis.py ................ [ 68%] 1610s tests/test_osis/test_server.py . [ 68%] 1610s tests/test_panorama/test_application_instance.py ...... [ 68%] 1610s tests/test_panorama/test_nodes.py ... [ 68%] 1611s tests/test_panorama/test_panorama_device.py ............... [ 68%] 1611s tests/test_panorama/test_server.py . [ 68%] 1612s tests/test_personalize/test_personalize_schema.py ........ [ 68%] 1612s tests/test_pinpoint/test_pinpoint.py ....... [ 68%] 1612s tests/test_pinpoint/test_pinpoint_application_tags.py .... [ 68%] 1612s tests/test_pinpoint/test_pinpoint_event_stream.py ... [ 68%] 1612s tests/test_polly/test_polly.py .............. [ 69%] 1612s tests/test_polly/test_server.py . [ 69%] 1612s tests/test_qldb/test_qldb.py EE [ 69%] 1613s tests/test_quicksight/test_quicksight_datasets.py .. [ 69%] 1613s tests/test_quicksight/test_quicksight_groups.py ............... [ 69%] 1614s tests/test_quicksight/test_quicksight_users.py ....................... [ 69%] 1615s tests/test_ram/test_ram.py ............ [ 69%] 1615s tests/test_rds/test_db_cluster_param_group.py . [ 69%] 1615s tests/test_rds/test_db_cluster_params.py . [ 69%] 1615s tests/test_rds/test_filters.py .............................. [ 69%] 1615s tests/test_rds/test_global_clusters.py ........ [ 69%] 1618s tests/test_rds/test_rds.py ............................................. [ 70%] 1622s ........................................................................ [ 71%] 1624s ........................................................................ [ 71%] 1624s .......... [ 72%] 1625s tests/test_rds/test_rds_cloudformation.py ....... [ 72%] 1627s tests/test_rds/test_rds_clusters.py .................................... [ 72%] 1628s ........................................ [ 72%] 1629s tests/test_rds/test_rds_clusters_with_instances.py ..... [ 72%] 1629s tests/test_rds/test_rds_event_subscriptions.py ...... [ 72%] 1629s tests/test_rds/test_rds_export_tasks.py ........ [ 73%] 1629s tests/test_rds/test_rds_proxy.py FFFFF. [ 73%] 1630s tests/test_rds/test_rds_proxy_target_groups.py ... [ 73%] 1630s tests/test_rds/test_server.py .. [ 73%] 1630s tests/test_rds/test_utils.py ................ [ 73%] 1630s tests/test_rdsdata/test_rdsdata.py .. [ 73%] 1631s tests/test_redshift/test_redshift.py ................................... [ 73%] 1632s ............................... [ 74%] 1632s tests/test_redshift/test_redshift_cloudformation.py . [ 74%] 1632s tests/test_redshift/test_server.py .............. [ 74%] 1633s tests/test_redshiftdata/test_redshiftdata.py ......... [ 74%] 1633s tests/test_redshiftdata/test_server.py ........ [ 74%] 1633s tests/test_rekognition/test_rekognition.py ........ [ 74%] 1633s tests/test_resiliencehub/test_resiliencehub.py ........... [ 74%] 1633s tests/test_resiliencehub/test_resiliencyhub_resources.py ..... [ 74%] 1633s tests/test_resiliencehub/test_resiliencyhub_tagging.py .. [ 74%] 1633s tests/test_resourcegroups/test_resourcegroups.py ............ [ 74%] 1633s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_dynamodb.py . [ 74%] 1633s . [ 74%] 1633s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_glue.py . [ 74%] 1633s  [ 74%] 1633s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_logs.py . [ 74%] 1633s . [ 74%] 1633s tests/test_resourcegroupstaggingapi/test_resourcegroupstagging_rds.py .. [ 74%] 1633s  [ 74%] 1635s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py ... [ 74%] 1637s .............FFF............ [ 75%] 1637s tests/test_resourcegroupstaggingapi/test_server.py . [ 75%] 1637s tests/test_robomaker/test_robomaker.py F [ 75%] 1637s tests/test_route53/test_change_set_model.py ... [ 75%] 1639s tests/test_route53/test_route53.py ..................................... [ 75%] 1640s .............. [ 75%] 1640s tests/test_route53/test_route53_cloudformation.py ...... [ 75%] 1640s tests/test_route53/test_route53_delegationsets.py ........ [ 75%] 1641s tests/test_route53/test_route53_healthchecks.py .......... [ 75%] 1641s tests/test_route53/test_route53_query_logging_config.py ...... [ 75%] 1641s tests/test_route53/test_route53_vpcs.py ....... [ 76%] 1641s tests/test_route53/test_server.py . [ 76%] 1641s tests/test_route53domains/test_route53domains_domain.py ................ [ 76%] 1642s ................ [ 76%] 1643s tests/test_route53resolver/test_route53resolver_endpoint.py ............ [ 76%] 1644s .......... [ 76%] 1645s tests/test_route53resolver/test_route53resolver_rule.py ........... [ 76%] 1645s tests/test_route53resolver/test_route53resolver_rule_associations.py ... [ 76%] 1646s ........ [ 76%] 1646s tests/test_route53resolver/test_route53resolver_tags.py .... [ 76%] 1647s tests/test_s3/test_s3.py ............................................... [ 77%] 1651s ........................................................................ [ 78%] 1652s ....................................... [ 78%] 1653s tests/test_s3/test_s3_acl.py .......................... [ 78%] 1654s tests/test_s3/test_s3_auth.py .... [ 78%] 1656s tests/test_s3/test_s3_bucket_policy.py ........... [ 78%] 1656s tests/test_s3/test_s3_classdecorator.py . [ 78%] 1656s tests/test_s3/test_s3_cloudformation.py ..... [ 78%] 1656s tests/test_s3/test_s3_config.py ...... [ 79%] 1658s tests/test_s3/test_s3_copyobject.py .................................... [ 79%] 1658s  [ 79%] 1658s tests/test_s3/test_s3_cross_account.py . [ 79%] 1658s tests/test_s3/test_s3_custom_endpoint.py .......... [ 79%] 1658s tests/test_s3/test_s3_encryption.py ...... [ 79%] 1659s tests/test_s3/test_s3_eventbridge_integration.py .......... [ 79%] 1681s tests/test_s3/test_s3_file_handles.py ........................ [ 79%] 1682s tests/test_s3/test_s3_lambda_integration.py ...... [ 79%] 1682s tests/test_s3/test_s3_lifecycle.py .......... [ 80%] 1684s tests/test_s3/test_s3_list_object_versions.py ............ [ 80%] 1684s tests/test_s3/test_s3_list_objects.py .. [ 80%] 1685s tests/test_s3/test_s3_locales.py . [ 80%] 1696s tests/test_s3/test_s3_lock.py ..F........... [ 80%] 1697s tests/test_s3/test_s3_logging.py ........... [ 80%] 1697s tests/test_s3/test_s3_metadata.py . [ 80%] 1698s tests/test_s3/test_s3_multipart.py ..................................... [ 80%] 1698s  [ 80%] 1698s tests/test_s3/test_s3_notifications.py ............ [ 81%] 1698s tests/test_s3/test_s3_object_attributes.py ........ [ 81%] 1699s tests/test_s3/test_s3_ownership.py ... [ 81%] 1699s tests/test_s3/test_s3_replication.py ....... [ 81%] 1699s tests/test_s3/test_s3_storageclass.py ............ [ 81%] 1699s tests/test_s3/test_s3_tagging.py ............ [ 81%] 1699s tests/test_s3/test_s3_utils.py ........... [ 81%] 1700s tests/test_s3/test_server.py ............. [ 81%] 1700s tests/test_s3bucket_path/test_s3bucket_path_utils.py ... [ 81%] 1700s tests/test_s3bucket_path/test_server.py ..... [ 81%] 1700s tests/test_s3control/test_s3control.py . [ 81%] 1700s tests/test_s3control/test_s3control_access_points.py .... [ 81%] 1700s tests/test_s3control/test_s3control_accesspoint_policy.py ..... [ 81%] 1705s tests/test_s3control/test_s3control_config_integration.py .. [ 81%] 1705s tests/test_s3control/test_s3control_s3.py ... [ 81%] 1705s tests/test_s3tables/test_s3tables.py ............F...F..F.FFFF.. [ 82%] 1706s tests/test_s3tables/test_server.py .......F. [ 82%] 1706s tests/test_sagemaker/test_sagemaker_automljobs.py ....... [ 82%] 1706s tests/test_sagemaker/test_sagemaker_cloudformation.py .................. [ 82%] 1706s .. [ 82%] 1707s tests/test_sagemaker/test_sagemaker_cluster.py .......... [ 82%] 1707s tests/test_sagemaker/test_sagemaker_compilation_jobs.py ........ [ 82%] 1708s tests/test_sagemaker/test_sagemaker_data_quality_jobs_definitions.py ... [ 82%] 1708s . [ 82%] 1708s tests/test_sagemaker/test_sagemaker_domains.py ...... [ 82%] 1709s tests/test_sagemaker/test_sagemaker_endpoint.py ................... [ 83%] 1709s tests/test_sagemaker/test_sagemaker_experiment.py ..... [ 83%] 1709s tests/test_sagemaker/test_sagemaker_feature_groups.py .. [ 83%] 1709s tests/test_sagemaker/test_sagemaker_hyper_parameter_tuning_job.py ...... [ 83%] 1709s . [ 83%] 1709s tests/test_sagemaker/test_sagemaker_model_bias_job_definitions.py .... [ 83%] 1712s tests/test_sagemaker/test_sagemaker_model_cards.py ......... [ 83%] 1712s tests/test_sagemaker/test_sagemaker_model_expainability.py ....... [ 83%] 1712s tests/test_sagemaker/test_sagemaker_model_package_groups.py ............ [ 83%] 1712s  [ 83%] 1713s tests/test_sagemaker/test_sagemaker_model_packages.py .................. [ 83%] 1713s ....... [ 83%] 1713s tests/test_sagemaker/test_sagemaker_model_quality.py ....... [ 83%] 1713s tests/test_sagemaker/test_sagemaker_models.py .......... [ 83%] 1713s tests/test_sagemaker/test_sagemaker_notebooks.py ......... [ 84%] 1717s tests/test_sagemaker/test_sagemaker_pipeline.py ........................ [ 84%] 1717s .................. [ 84%] 1717s tests/test_sagemaker/test_sagemaker_processing.py .......... [ 84%] 1718s tests/test_sagemaker/test_sagemaker_search.py ..... [ 84%] 1719s tests/test_sagemaker/test_sagemaker_training.py ............ [ 84%] 1720s tests/test_sagemaker/test_sagemaker_transform.py ............ [ 84%] 1720s tests/test_sagemaker/test_sagemaker_trial.py ....... [ 84%] 1721s tests/test_sagemaker/test_sagemaker_trial_component.py ........... [ 85%] 1721s tests/test_sagemakermetrics/test_sagemakermetrics.py .. [ 85%] 1721s tests/test_sagemakermetrics/test_server.py . [ 85%] 1721s tests/test_sagemakerruntime/test_sagemakerruntime.py .... [ 85%] 1721s tests/test_scheduler/test_schedule_groups.py ... [ 85%] 1721s tests/test_scheduler/test_scheduler.py .................. [ 85%] 1721s tests/test_scheduler/test_scheduler_tags.py .. [ 85%] 1721s tests/test_scheduler/test_server.py . [ 85%] 1721s tests/test_sdb/test_sdb_attributes.py ......... [ 85%] 1722s tests/test_sdb/test_sdb_domains.py ................. [ 85%] 1722s tests/test_sdb/test_server.py . [ 85%] 1722s tests/test_secretsmanager/test_list_secrets.py ......................... [ 85%] 1722s . [ 85%] 1722s tests/test_secretsmanager/test_policy.py .... [ 85%] 1722s tests/test_secretsmanager/test_rotate_simple_lambda.py .. [ 85%] 1722s tests/test_secretsmanager/test_secrets_duplication.py .......... [ 86%] 1723s tests/test_secretsmanager/test_secretsmanager.py ....................... [ 86%] 1724s ......................................s............ss................... [ 87%] 1725s .............. [ 87%] 1725s tests/test_secretsmanager/test_server.py ............................. [ 87%] 1726s tests/test_securityhub/test_securityhub.py ..... [ 87%] 1726s tests/test_servicediscovery/test_server.py . [ 87%] 1726s tests/test_servicediscovery/test_servicediscovery_httpnamespaces.py .... [ 87%] 1726s .......... [ 87%] 1726s tests/test_servicediscovery/test_servicediscovery_instance.py .......... [ 87%] 1726s ... [ 87%] 1726s tests/test_servicediscovery/test_servicediscovery_operations.py ....... [ 87%] 1726s tests/test_servicediscovery/test_servicediscovery_service.py ....... [ 87%] 1726s tests/test_servicediscovery/test_servicediscovery_tags.py ...... [ 87%] 1726s tests/test_servicequotas/test_servicequotas.py .... [ 88%] 1727s tests/test_ses/test_server.py .. [ 88%] 1728s tests/test_ses/test_ses_boto3.py ....................................... [ 88%] 1728s  [ 88%] 1728s tests/test_ses/test_ses_sns_boto3.py ........ [ 88%] 1728s tests/test_ses/test_ses_utils.py . [ 88%] 1729s tests/test_ses/test_templating.py ......... [ 88%] 1729s tests/test_sesv2/test_server.py . [ 88%] 1729s tests/test_sesv2/test_sesv2.py .......................... [ 88%] 1729s tests/test_shield/test_shield.py ...................... [ 89%] 1729s tests/test_signer/test_signing_platforms.py . [ 89%] 1729s tests/test_signer/test_signing_profiles.py .... [ 89%] 1730s tests/test_sns/test_application_boto3.py ..................... [ 89%] 1731s tests/test_sns/test_http_message_verification.py . [ 89%] 1731s tests/test_sns/test_publish_batch.py ........ [ 89%] 1737s tests/test_sns/test_publishing_boto3.py ................................ [ 89%] 1749s ........................................................................ [ 90%] 1749s ... [ 90%] 1749s tests/test_sns/test_server.py . [ 90%] 1749s tests/test_sns/test_sns_cloudformation.py ...... [ 90%] 1758s tests/test_sns/test_subscriptions_boto3.py ................... [ 90%] 1759s tests/test_sns/test_topics_boto3.py ......................... [ 91%] 1759s tests/test_sns/test_utils.py ... [ 91%] 1759s tests/test_special_cases/test_custom_amis.py . [ 91%] 1766s tests/test_sqs/test_server.py ... [ 91%] 1777s tests/test_sqs/test_sqs.py ............................................. [ 91%] 1800s ........................................................................ [ 92%] 1818s ........................ [ 92%] 1818s tests/test_sqs/test_sqs_cloudformation.py ....... [ 92%] 1818s tests/test_sqs/test_sqs_integration.py F [ 92%] 1818s tests/test_sqs/test_sqs_multiaccount.py . [ 92%] 1819s tests/test_ssm/test_ssm_boto3.py ....................................... [ 93%] 1820s ................................................. [ 93%] 1820s tests/test_ssm/test_ssm_cloudformation.py . [ 93%] 1821s tests/test_ssm/test_ssm_default_amis.py .. [ 93%] 1822s tests/test_ssm/test_ssm_defaults.py ... [ 93%] 1823s tests/test_ssm/test_ssm_doc_permissions.py ...................... [ 93%] 1823s tests/test_ssm/test_ssm_docs.py ........ [ 93%] 1823s tests/test_ssm/test_ssm_ec2_integration.py . [ 93%] 1823s tests/test_ssm/test_ssm_ecs_images.py . [ 93%] 1823s tests/test_ssm/test_ssm_maintenance_windows.py ............ [ 94%] 1824s tests/test_ssm/test_ssm_parameterstore.py ......... [ 94%] 1824s tests/test_ssm/test_ssm_patch_baseline.py .. [ 94%] 1824s tests/test_ssm/test_ssm_secretsmanager.py ...... [ 94%] 1824s tests/test_ssm/test_ssm_utils.py ... [ 94%] 1824s tests/test_ssoadmin/test_server.py . [ 94%] 1825s tests/test_ssoadmin/test_ssoadmin.py .................. [ 94%] 1825s tests/test_ssoadmin/test_ssoadmin_instances.py .. [ 94%] 1825s tests/test_ssoadmin/test_ssoadmin_permission_sets.py .. [ 94%] 1826s tests/test_ssoadmin/test_ssoadmin_policies.py ........... [ 94%] 1827s tests/test_stepfunctions/test_stepfunctions.py ......................... [ 94%] 1827s ....................... [ 95%] 1827s tests/test_stepfunctions/test_stepfunctions_cloudformation.py ... [ 95%] 1827s tests/test_stepfunctions/test_stepfunctions_versions.py ... [ 95%] 1827s tests/test_sts/test_server.py .... [ 95%] 1828s tests/test_sts/test_sts.py ...................... [ 95%] 1828s tests/test_sts/test_sts_integration.py ... [ 95%] 1828s tests/test_support/test_server.py .... [ 95%] 1828s tests/test_support/test_support.py ..................................... [ 95%] 1828s .... [ 95%] 1829s tests/test_swf/models/test_activity_task.py ....... [ 96%] 1829s tests/test_swf/models/test_decision_task.py ..... [ 96%] 1829s tests/test_swf/models/test_domain.py ........ [ 96%] 1829s tests/test_swf/models/test_generic_type.py .... [ 96%] 1829s tests/test_swf/models/test_history_event.py ... [ 96%] 1829s tests/test_swf/models/test_timeout.py . [ 96%] 1829s tests/test_swf/models/test_timer.py .... [ 96%] 1829s tests/test_swf/models/test_workflow_execution.py ....................... [ 96%] 1830s ............ [ 96%] 1832s tests/test_swf/responses/test_activity_tasks.py ............. [ 96%] 1832s tests/test_swf/responses/test_activity_types.py ............. [ 96%] 1838s tests/test_swf/responses/test_decision_tasks.py ....................... [ 97%] 1838s tests/test_swf/responses/test_domains.py ............. [ 97%] 1838s tests/test_swf/responses/test_timeouts.py ... [ 97%] 1838s tests/test_swf/responses/test_workflow_executions.py .............. [ 97%] 1839s tests/test_swf/responses/test_workflow_types.py ............. [ 97%] 1839s tests/test_swf/test_exceptions.py ............ [ 97%] 1839s tests/test_swf/test_utils.py . [ 97%] 1839s tests/test_textract/test_server.py ..... [ 97%] 1839s tests/test_textract/test_textract.py .... [ 97%] 1839s tests/test_timestreaminfluxdb/test_timestreaminfluxdb.py ........... [ 97%] 1839s tests/test_timestreaminfluxdb/test_timestreaminfluxdb_tagging.py ... [ 97%] 1839s tests/test_timestreamquery/test_timestreamquery.py ..... [ 97%] 1839s tests/test_timestreamwrite/test_server.py . [ 98%] 1840s tests/test_timestreamwrite/test_timestreamwrite_database.py ....... [ 98%] 1840s tests/test_timestreamwrite/test_timestreamwrite_table.py .......... [ 98%] 1840s tests/test_timestreamwrite/test_timestreamwrite_tagging.py ..... [ 98%] 1841s tests/test_transcribe/test_transcribe_boto3.py ....................... [ 98%] 1841s tests/test_transfer/test_transfer.py ... [ 98%] 1841s tests/test_utilities/test_docker_utilities.py ....... [ 98%] 1841s tests/test_utilities/test_id_generator.py .......... [ 98%] 1841s tests/test_utilities/test_paginator.py .................... [ 98%] 1841s tests/test_utilities/test_tagging_service.py ........... [ 98%] 1843s tests/test_utilities/test_threaded_server.py ..... [ 99%] 1843s tests/test_utilities/test_utils.py .. [ 99%] 1843s tests/test_wafv2/test_server.py .. [ 99%] 1843s tests/test_wafv2/test_utils.py . [ 99%] 1843s tests/test_wafv2/test_wafv2.py .......... [ 99%] 1844s tests/test_wafv2/test_wafv2_integration.py .... [ 99%] 1844s tests/test_wafv2/test_wafv2_logging_configuration.py .. [ 99%] 1844s tests/test_wafv2/test_wafv2_rules.py ..... [ 99%] 1844s tests/test_wafv2/test_wafv2_tags.py .... [ 99%] 1847s tests/test_workspaces/test_workspaces.py F..FFFFFFFFFFF.FFFFFFF.FFFF.FF [ 99%] 1847s tests/test_workspacesweb/test_workspacesweb.py ......................... [ 99%] 1847s  [ 99%] 1847s tests/test_xray/test_xray_boto3.py ...... [ 99%] 1848s tests/test_xray/test_xray_client.py .... [100%] 1848s 1848s ==================================== ERRORS ==================================== 1848s _______ ERROR at setup of test_create_describe_update_and_delete_ledger ________ 1848s 1848s @pytest.fixture(name="client") 1848s def fixture_qldb_client(): 1848s with mock_aws(): 1848s > yield boto3.client("qldb", region_name="us-east-1") 1848s 1848s tests/test_qldb/test_qldb.py:18: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = , service_name = 'qldb' 1848s type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s ________ ERROR at setup of test_tag_resource_and_list_tags_for_resource ________ 1848s 1848s @pytest.fixture(name="client") 1848s def fixture_qldb_client(): 1848s with mock_aws(): 1848s > yield boto3.client("qldb", region_name="us-east-1") 1848s 1848s tests/test_qldb/test_qldb.py:18: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = , service_name = 'qldb' 1848s type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s =================================== FAILURES =================================== 1848s __________ test_event_source_mapping_create_from_cloudformation_json ___________ 1848s 1848s @mock_aws 1848s def test_event_source_mapping_create_from_cloudformation_json(): 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s s3 = boto3.client("s3", "us-east-1") 1848s cf = boto3.client("cloudformation", region_name="us-east-1") 1848s lmbda = boto3.client("lambda", region_name="us-east-1") 1848s  1848s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1848s  1848s # Creates lambda 1848s _, lambda_stack = create_stack(cf, s3) 1848s created_fn_name = get_created_function_name(cf, lambda_stack) 1848s created_fn_arn = lmbda.get_function(FunctionName=created_fn_name)["Configuration"][ 1848s "FunctionArn" 1848s ] 1848s  1848s esm_template = event_source_mapping_template.substitute( 1848s { 1848s "resource_name": "Foo", 1848s "batch_size": 1, 1848s "event_source_arn": queue.attributes["QueueArn"], 1848s "function_name": created_fn_name, 1848s "enabled": True, 1848s } 1848s ) 1848s  1848s cf.create_stack(StackName=random_stack_name(), TemplateBody=esm_template) 1848s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1848s 1848s tests/test_awslambda/test_awslambda_cloudformation.py:184: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'ListEventSourceMappings' 1848s api_params = {'FunctionName': '6e9746-LF3ABOV-NYLFV0AFQZPQ'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s ____________________ test_event_source_mapping_delete_stack ____________________ 1848s 1848s @mock_aws 1848s def test_event_source_mapping_delete_stack(): 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s s3 = boto3.client("s3", "us-east-1") 1848s cf = boto3.client("cloudformation", region_name="us-east-1") 1848s lmbda = boto3.client("lambda", region_name="us-east-1") 1848s  1848s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1848s  1848s # Creates lambda 1848s _, lambda_stack = create_stack(cf, s3) 1848s created_fn_name = get_created_function_name(cf, lambda_stack) 1848s  1848s esm_template = event_source_mapping_template.substitute( 1848s { 1848s "resource_name": "Foo", 1848s "batch_size": 1, 1848s "event_source_arn": queue.attributes["QueueArn"], 1848s "function_name": created_fn_name, 1848s "enabled": True, 1848s } 1848s ) 1848s  1848s esm_stack = cf.create_stack( 1848s StackName=random_stack_name(), TemplateBody=esm_template 1848s ) 1848s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1848s 1848s tests/test_awslambda/test_awslambda_cloudformation.py:218: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'ListEventSourceMappings' 1848s api_params = {'FunctionName': 'ac8a7d-LF3ABOV-TMFI0H796T9U'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s __________ test_event_source_mapping_update_from_cloudformation_json ___________ 1848s 1848s @mock_aws 1848s def test_event_source_mapping_update_from_cloudformation_json(): 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s s3 = boto3.client("s3", "us-east-1") 1848s cf = boto3.client("cloudformation", region_name="us-east-1") 1848s lmbda = boto3.client("lambda", region_name="us-east-1") 1848s  1848s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1848s  1848s # Creates lambda 1848s _, lambda_stack = create_stack(cf, s3) 1848s created_fn_name = get_created_function_name(cf, lambda_stack) 1848s  1848s original_template = event_source_mapping_template.substitute( 1848s { 1848s "resource_name": "Foo", 1848s "batch_size": 1, 1848s "event_source_arn": queue.attributes["QueueArn"], 1848s "function_name": created_fn_name, 1848s "enabled": True, 1848s } 1848s ) 1848s  1848s stack_name = random_stack_name() 1848s cf.create_stack(StackName=stack_name, TemplateBody=original_template) 1848s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1848s 1848s tests/test_awslambda/test_awslambda_cloudformation.py:253: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'ListEventSourceMappings' 1848s api_params = {'FunctionName': '5db981-LF3ABOV-U3WSFZ7C49Q9'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params):[39;49;00m 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s __________ test_event_source_mapping_delete_from_cloudformation_json ___________ 1848s 1848s @mock_aws 1848s def test_event_source_mapping_delete_from_cloudformation_json(): 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s s3 = boto3.client("s3", "us-east-1") 1848s cf = boto3.client("cloudformation", region_name="us-east-1") 1848s lmbda = boto3.client("lambda", region_name="us-east-1") 1848s  1848s queue = sqs.create_queue(QueueName=str(uuid4())[0:6]) 1848s  1848s # Creates lambda 1848s _, lambda_stack = create_stack(cf, s3) 1848s created_fn_name = get_created_function_name(cf, lambda_stack) 1848s  1848s original_template = event_source_mapping_template.substitute( 1848s { 1848s "resource_name": "Foo", 1848s "batch_size": 1, 1848s "event_source_arn": queue.attributes["QueueArn"], 1848s "function_name": created_fn_name, 1848s "enabled": True, 1848s } 1848s ) 1848s  1848s stack_name = random_stack_name() 1848s cf.create_stack(StackName=stack_name, TemplateBody=original_template) 1848s > event_sources = lmbda.list_event_source_mappings(FunctionName=created_fn_name) 1848s 1848s tests/test_awslambda/test_awslambda_cloudformation.py:303: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'ListEventSourceMappings' 1848s api_params = {'FunctionName': '65debd-LF3ABOV-M2GGSW03D58L'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the ListEventSourceMappings operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _______________________ test_create_event_source_mapping _______________________ 1848s 1848s @mock_aws 1848s def test_create_event_source_mapping(): 1848s function_name = str(uuid.uuid4())[0:6] 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1848s  1848s conn = boto3.client("lambda", region_name="us-east-1") 1848s func = conn.create_function( 1848s FunctionName=function_name, 1848s Runtime=PYTHON_VERSION, 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": get_test_zip_file3()}, 1848s Description="test lambda function", 1848s Timeout=3, 1848s MemorySize=128, 1848s Publish=True, 1848s ) 1848s  1848s destination_config = { 1848s "OnSuccess": {"Destination": "s3"}, 1848s "OnFailure": {"Destination": "s4"}, 1848s } 1848s doc_db_config = { 1848s "DatabaseName": "db", 1848s "CollectionName": "cn", 1848s "FullDocument": "UpdateLookup", 1848s } 1848s > response = conn.create_event_source_mapping( 1848s EventSourceArn=queue.attributes["QueueArn"], 1848s FunctionName=func["FunctionArn"], 1848s BatchSize=1, 1848s FilterCriteria={ 1848s "Filters": [{"Pattern": r"asdf"}], 1848s }, 1848s MaximumBatchingWindowInSeconds=5, 1848s ParallelizationFactor=4, 1848s StartingPosition="AT_TIMESTAMP", 1848s DestinationConfig=destination_config, 1848s MaximumRecordAgeInSeconds=59, 1848s BisectBatchOnFunctionError=True, 1848s MaximumRetryAttempts=9000, 1848s Tags={"k1": "v1"}, 1848s TumblingWindowInSeconds=100, 1848s Topics=["t1", "T2"], 1848s Queues=["q1", "q2"], 1848s SourceAccessConfigurations=[ 1848s {"Type": "BASIC_AUTH", "URI": "http://auth.endpoint"}, 1848s ], 1848s SelfManagedEventSource={ 1848s "Endpoints": { 1848s "key": ["v1"], 1848s }, 1848s }, 1848s FunctionResponseTypes=["ReportBatchItemFailures"], 1848s AmazonManagedKafkaEventSourceConfig={"ConsumerGroupId": "cgid"}, 1848s SelfManagedKafkaEventSourceConfig={"ConsumerGroupId": "cgid2"}, 1848s ScalingConfig={"MaximumConcurrency": 100}, 1848s DocumentDBEventSourceConfig=doc_db_config, 1848s KMSKeyArn="arn:kms:key", 1848s MetricsConfig={"Metrics": ["EventCount"]}, 1848s ProvisionedPollerConfig={"MinimumPollers": 12, "MaximumPollers": 13}, 1848s ) 1848s 1848s tests/test_awslambda/test_lambda_eventsourcemapping.py:51: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'CreateEventSourceMapping' 1848s api_params = {'AmazonManagedKafkaEventSourceConfig': {'ConsumerGroupId': 'cgid'}, 'BatchSize': 1, 'BisectBatchOnFunctionError': True, 'DestinationConfig': {'OnFailure': {'Destination': 's4'}, 'OnSuccess': {'Destination': 's3'}}, ...} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _______________________ test_list_event_source_mappings ________________________ 1848s 1848s @mock_aws 1848s def test_list_event_source_mappings(): 1848s function_name = str(uuid.uuid4())[0:6] 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1848s  1848s conn = boto3.client("lambda", region_name="us-east-1") 1848s func = conn.create_function( 1848s FunctionName=function_name, 1848s Runtime=PYTHON_VERSION, 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": get_test_zip_file3()}, 1848s Description="test lambda function", 1848s Timeout=3, 1848s MemorySize=128, 1848s Publish=True, 1848s ) 1848s > response = conn.create_event_source_mapping( 1848s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"] 1848s ) 1848s 1848s tests/test_awslambda/test_lambda_eventsourcemapping.py:473: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'CreateEventSourceMapping' 1848s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:b1098a_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:b1098a'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s ________________________ test_get_event_source_mapping _________________________ 1848s 1848s @mock_aws 1848s def test_get_event_source_mapping(): 1848s function_name = str(uuid.uuid4())[0:6] 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1848s  1848s conn = boto3.client("lambda", region_name="us-east-1") 1848s func = conn.create_function( 1848s FunctionName=function_name, 1848s Runtime=PYTHON_VERSION, 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": get_test_zip_file3()}, 1848s Description="test lambda function", 1848s Timeout=3, 1848s MemorySize=128, 1848s Publish=True, 1848s ) 1848s > response = conn.create_event_source_mapping( 1848s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"] 1848s ) 1848s 1848s tests/test_awslambda/test_lambda_eventsourcemapping.py:505: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'CreateEventSourceMapping' 1848s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:c3ff8b_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:c3ff8b'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _______________________ test_update_event_source_mapping _______________________ 1848s 1848s @mock_aws 1848s def test_update_event_source_mapping(): 1848s function_name = str(uuid.uuid4())[0:6] 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1848s  1848s conn = boto3.client("lambda", region_name="us-east-1") 1848s func1 = conn.create_function( 1848s FunctionName=function_name, 1848s Runtime=PYTHON_VERSION, 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": get_test_zip_file3()}, 1848s Description="test lambda function", 1848s Timeout=3, 1848s MemorySize=128, 1848s Publish=True, 1848s ) 1848s func2 = conn.create_function( 1848s FunctionName="testFunction2", 1848s Runtime=PYTHON_VERSION, 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": get_test_zip_file3()}, 1848s Description="test lambda function", 1848s Timeout=3, 1848s MemorySize=128, 1848s Publish=True, 1848s ) 1848s > response = conn.create_event_source_mapping( 1848s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func1["FunctionArn"] 1848s ) 1848s 1848s tests/test_awslambda/test_lambda_eventsourcemapping.py:548: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'CreateEventSourceMapping' 1848s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:969038_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:969038'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _______________________ test_delete_event_source_mapping _______________________ 1848s 1848s @mock_aws 1848s def test_delete_event_source_mapping(): 1848s function_name = str(uuid.uuid4())[0:6] 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s queue = sqs.create_queue(QueueName=f"{function_name}_queue") 1848s  1848s conn = boto3.client("lambda", region_name="us-east-1") 1848s func1 = conn.create_function( 1848s FunctionName=function_name, 1848s Runtime=PYTHON_VERSION, 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": get_test_zip_file3()}, 1848s Description="test lambda function", 1848s Timeout=3, 1848s MemorySize=128, 1848s Publish=True, 1848s ) 1848s > response = conn.create_event_source_mapping( 1848s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func1["FunctionArn"] 1848s ) 1848s 1848s tests/test_awslambda/test_lambda_eventsourcemapping.py:635: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'CreateEventSourceMapping' 1848s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:3635fb_queue', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:3635fb'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _________________________ test_describe_flow_succeeds __________________________ 1848s 1848s @mock_aws 1848s def test_describe_flow_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s > describe_response = client.describe_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:157: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s __________________________ test_delete_flow_succeeds ___________________________ 1848s 1848s @mock_aws 1848s def test_delete_flow_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s > delete_response = client.delete_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:170: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:49: in delete_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ________________________ test_start_stop_flow_succeeds _________________________ 1848s 1848s @mock_aws 1848s def test_start_stop_flow_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > start_response = client.start_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:186: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:54: in start_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ______________________________ test_unknown_flow _______________________________ 1848s 1848s @mock_aws 1848s def test_unknown_flow(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s  1848s with pytest.raises(ClientError) as exc: 1848s > client.describe_flow(FlowArn="unknown") 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:210: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s __________________________ test_tag_resource_succeeds __________________________ 1848s 1848s @mock_aws 1848s def test_tag_resource_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s  1848s > tag_response = client.tag_resource(ResourceArn="some-arn", Tags={"Tag1": "Value1"}) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:234: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:64: in tag_resource 1848s resource_arn = unquote(self._get_param("resourceArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ____________________ test_add_flow_vpc_interfaces_succeeds _____________________ 1848s 1848s @mock_aws 1848s def test_add_flow_vpc_interfaces_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > client.add_flow_vpc_interfaces( 1848s FlowArn=flow_arn, 1848s VpcInterfaces=[ 1848s { 1848s "Name": "VPCInterface", 1848s "SubnetId": "", 1848s "SecurityGroupIds": [], 1848s "RoleArn": "", 1848s } 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:252: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:75: in add_flow_vpc_interfaces 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ______________________ test_add_flow_vpc_interfaces_fails ______________________ 1848s 1848s @mock_aws 1848s def test_add_flow_vpc_interfaces_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s with pytest.raises(ClientError) as err: 1848s > client.add_flow_vpc_interfaces(FlowArn=flow_arn, VpcInterfaces=[]) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:281: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:75: in add_flow_vpc_interfaces 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ___________________ test_remove_flow_vpc_interface_succeeds ____________________ 1848s 1848s @mock_aws 1848s def test_remove_flow_vpc_interface_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > client.add_flow_vpc_interfaces( 1848s FlowArn=flow_arn, 1848s VpcInterfaces=[ 1848s { 1848s "Name": "VPCInterface", 1848s "SubnetId": "", 1848s "SecurityGroupIds": [], 1848s "RoleArn": "", 1848s } 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:297: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:75: in add_flow_vpc_interfaces 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s _____________________ test_remove_flow_vpc_interface_fails _____________________ 1848s 1848s @mock_aws 1848s def test_remove_flow_vpc_interface_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s with pytest.raises(ClientError) as err: 1848s > client.remove_flow_vpc_interface( 1848s FlowArn=flow_arn, VpcInterfaceName="VPCInterface" 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:324: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:85: in remove_flow_vpc_interface 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ________________________ test_add_flow_outputs_succeeds ________________________ 1848s 1848s @mock_aws 1848s def test_add_flow_outputs_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > client.add_flow_outputs( 1848s FlowArn=flow_arn, 1848s Outputs=[ 1848s {"Description": "string", "Name": "string", "Port": 123, "Protocol": "rist"} 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:342: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:95: in add_flow_outputs 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s _________________________ test_add_flow_outputs_fails __________________________ 1848s 1848s @mock_aws 1848s def test_add_flow_outputs_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s with pytest.raises(ClientError) as err: 1848s > client.add_flow_outputs(FlowArn=flow_arn, Outputs=[]) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:360: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:95: in add_flow_outputs 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s _______________________ test_update_flow_output_succeeds _______________________ 1848s 1848s @mock_aws 1848s def test_update_flow_output_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s output_arn = create_response["Flow"]["Outputs"][0]["OutputArn"] 1848s  1848s > update_response = client.update_flow_output( 1848s FlowArn=flow_arn, OutputArn=output_arn, Description="new description" 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:377: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:111: in update_flow_output 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ________________________ test_update_flow_output_fails _________________________ 1848s 1848s @mock_aws 1848s def test_update_flow_output_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s with pytest.raises(ClientError) as err: 1848s > client.update_flow_output( 1848s FlowArn=flow_arn, 1848s OutputArn="some-arn", 1848s Description="new description", 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:388: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:111: in update_flow_output 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ________________________ test_remove_flow_output_fails _________________________ 1848s 1848s @mock_aws 1848s def test_remove_flow_output_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s output_arn = "unknown-arn" 1848s with pytest.raises(ClientError) as err: 1848s > client.remove_flow_output(FlowArn=flow_arn, OutputArn=output_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:404: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:103: in remove_flow_output 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s _______________________ test_remove_flow_output_succeeds _______________________ 1848s 1848s @mock_aws 1848s def test_remove_flow_output_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > client.add_flow_outputs( 1848s FlowArn=flow_arn, 1848s Outputs=[ 1848s {"Description": "string", "Name": "string", "Port": 123, "Protocol": "rist"} 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:420: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:95: in add_flow_outputs 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s _________________________ test_add_flow_sources_fails __________________________ 1848s 1848s @mock_aws 1848s def test_add_flow_sources_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s with pytest.raises(ClientError) as err: 1848s > client.add_flow_sources(FlowArn=flow_arn, Sources=[]) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:442: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:152: in add_flow_sources 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ________________________ test_add_flow_sources_succeeds ________________________ 1848s 1848s @mock_aws 1848s def test_add_flow_sources_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > client.add_flow_sources( 1848s FlowArn=flow_arn, 1848s Sources=[ 1848s { 1848s "Description": "string", 1848s "Name": "string", 1848s "Protocol": "rist", 1848s "SenderControlPort": 123, 1848s } 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:458: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:152: in add_flow_sources 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ________________________ test_update_flow_source_fails _________________________ 1848s 1848s @mock_aws 1848s def test_update_flow_source_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s source_arn = "unknown-source" 1848s  1848s channel_config = _create_flow_config("test-Flow-1") 1848s client.create_flow(**channel_config) 1848s  1848s with pytest.raises(ClientError) as err: 1848s > client.update_flow_source( 1848s FlowArn=flow_arn, SourceArn=source_arn, Description="new description" 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:485: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:160: in update_flow_source 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s _______________________ test_update_flow_source_succeeds _______________________ 1848s 1848s @mock_aws 1848s def test_update_flow_source_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > add_response = client.add_flow_sources( 1848s FlowArn=flow_arn, 1848s Sources=[ 1848s { 1848s "Description": "string", 1848s "Name": "string", 1848s "Protocol": "rist", 1848s "SenderControlPort": 123, 1848s } 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:503: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:152: in add_flow_sources 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ______________________ test_grant_flow_entitlements_fails ______________________ 1848s 1848s @mock_aws 1848s def test_grant_flow_entitlements_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s flow_arn = "unknown-flow" 1848s  1848s channel_config = _create_flow_config("test-Flow-1") 1848s client.create_flow(**channel_config) 1848s  1848s with pytest.raises(ClientError) as err: 1848s > client.grant_flow_entitlements( 1848s FlowArn=flow_arn, 1848s Entitlements=[ 1848s { 1848s "DataTransferSubscriberFeePercent": 12, 1848s "Description": "A new entitlement", 1848s "Encryption": {"Algorithm": "aes256", "RoleArn": "some:role"}, 1848s "EntitlementStatus": "ENABLED", 1848s "Name": "Entitlement-B", 1848s "Subscribers": [], 1848s } 1848s ], 1848s ) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:536: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:201: in grant_flow_entitlements 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ____________________ test_grant_flow_entitlements_succeeds _____________________ 1848s 1848s @mock_aws 1848s def test_grant_flow_entitlements_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > describe_response = client.describe_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:564: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ______________________ test_revoke_flow_entitlement_fails ______________________ 1848s 1848s @mock_aws 1848s def test_revoke_flow_entitlement_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > describe_response = client.describe_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:607: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ____________________ test_revoke_flow_entitlement_succeeds _____________________ 1848s 1848s @mock_aws 1848s def test_revoke_flow_entitlement_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > describe_response = client.describe_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:630: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ______________________ test_update_flow_entitlement_fails ______________________ 1848s 1848s @mock_aws 1848s def test_update_flow_entitlement_fails(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > describe_response = client.describe_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:655: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ____________________ test_update_flow_entitlement_succeeds _____________________ 1848s 1848s @mock_aws 1848s def test_update_flow_entitlement_succeeds(): 1848s client = boto3.client("mediaconnect", region_name=region) 1848s channel_config = _create_flow_config("test-Flow-1") 1848s  1848s create_response = client.create_flow(**channel_config) 1848s assert create_response["ResponseMetadata"]["HTTPStatusCode"] == 200 1848s assert create_response["Flow"]["Status"] == "STANDBY" 1848s flow_arn = create_response["Flow"]["FlowArn"] 1848s  1848s > describe_response = client.describe_flow(FlowArn=flow_arn) 1848s 1848s tests/test_mediaconnect/test_mediaconnect.py:680: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1060: in _make_api_call 1848s http, parsed_response = self._make_request( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1084: in _make_request 1848s return self._endpoint.make_request(operation_model, request_dict) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:119: in make_request 1848s return self._send_request(request_dict, operation_model) 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:200: in _send_request 1848s while self._needs_retry( 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:360: in _needs_retry 1848s responses = self._event_emitter.emit( 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:207: in __call__ 1848s if self._checker(**checker_kwargs): 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:284: in __call__ 1848s should_retry = self._should_retry( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:307: in _should_retry 1848s return self._checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:363: in __call__ 1848s checker_response = checker( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:247: in __call__ 1848s return self._check_caught_exception( 1848s /usr/lib/python3/dist-packages/botocore/retryhandler.py:416: in _check_caught_exception 1848s raise caught_exception 1848s /usr/lib/python3/dist-packages/botocore/endpoint.py:276: in _do_get_response 1848s responses = self._event_emitter.emit(event_name, request=request) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:412: in emit 1848s return self._emitter.emit(aliased_event_name, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:256: in emit 1848s return self._emit(event_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/hooks.py:239: in _emit 1848s response = handler(**kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:38: in __call__ 1848s response = self.process_request(request) 1848s /usr/lib/python3/dist-packages/moto/core/botocore_stubber.py:88: in process_request 1848s status, headers, body = method_to_execute( 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:296: in dispatch 1848s return cls()._dispatch(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:508: in _dispatch 1848s return self.call_action() 1848s /usr/lib/python3/dist-packages/moto/core/responses.py:596: in call_action 1848s response = method() 1848s /usr/lib/python3/dist-packages/moto/mediaconnect/responses.py:44: in describe_flow 1848s flow_arn = unquote(self._get_param("flowArn")) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s string = None, encoding = 'utf-8', errors = 'replace' 1848s 1848s def unquote(string, encoding='utf-8', errors='replace'): 1848s  """Replace %xx escapes by their single-character equivalent. The optional 1848s  encoding and errors parameters specify how to decode percent-encoded 1848s  sequences into Unicode characters, as accepted by the bytes.decode() 1848s  method. 1848s  By default, percent-encoded sequences are decoded with UTF-8, and invalid 1848s  sequences are replaced by a placeholder character. 1848s  1848s  unquote('abc%20def') -> 'abc def'. 1848s  """ 1848s if isinstance(string, bytes): 1848s return _unquote_impl(string).decode(encoding, errors) 1848s > if '%' not in string: 1848s E TypeError: argument of type 'NoneType' is not iterable 1848s 1848s /usr/lib/python3.13/urllib/parse.py:704: TypeError 1848s ___________________________ test_create_app_response ___________________________ 1848s 1848s @freeze_time("2015-01-01") 1848s @mock_aws 1848s def test_create_app_response(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_apps.py:12: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s ______________________________ test_describe_apps ______________________________ 1848s 1848s @freeze_time("2015-01-01") 1848s @mock_aws 1848s def test_describe_apps(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_apps.py:49: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s _____________________________ test_create_instance _____________________________ 1848s 1848s @mock_aws 1848s def test_create_instance(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_instances.py:11: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s ___________________________ test_describe_instances ____________________________ 1848s 1848s @mock_aws 1848s def test_describe_instances(): 1848s  """ 1848s  create two stacks, with 1 layer and 2 layers (S1L1, S2L1, S2L2) 1848s  1848s  populate S1L1 with 2 instances (S1L1_i1, S1L1_i2) 1848s  populate S2L1 with 1 instance (S2L1_i1) 1848s  populate S2L2 with 3 instances (S2L2_i1..2) 1848s  """ 1848s  1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_instances.py:87: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s _____________________________ test_ec2_integration _____________________________ 1848s 1848s @mock_aws 1848s def test_ec2_integration(): 1848s  """Verify instances created via OpsWorks are discoverable via ec2.""" 1848s > opsworks = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_instances.py:186: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s __________________________ test_create_layer_response __________________________ 1848s 1848s @freeze_time("2015-01-01") 1848s @mock_aws 1848s def test_create_layer_response(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_layers.py:12: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s _____________________________ test_describe_layers _____________________________ 1848s 1848s @freeze_time("2015-01-01") 1848s @mock_aws 1848s def test_describe_layers(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_layers.py:74: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s __________________________ test_create_stack_response __________________________ 1848s 1848s @mock_aws 1848s def test_create_stack_response(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_stack.py:9: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s _____________________________ test_describe_stacks _____________________________ 1848s 1848s @mock_aws 1848s def test_describe_stacks(): 1848s > client = boto3.client("opsworks", region_name="us-east-1") 1848s 1848s tests/test_opsworks/test_stack.py:21: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'opsworks', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s _____________________________ test_create_db_proxy _____________________________ 1848s 1848s @mock_aws 1848s def test_create_db_proxy(): 1848s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1848s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1848s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1848s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s > resp = rds_client.create_db_proxy( 1848s DBProxyName="testrdsproxy", 1848s EngineFamily="MYSQL", 1848s Auth=[ 1848s { 1848s "Description": "Test Description", 1848s "UserName": "Test Username", 1848s "AuthScheme": "SECRETS", 1848s "SecretArn": "TestSecretARN", 1848s "IAMAuth": "ENABLED", 1848s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1848s }, 1848s ], 1848s RoleArn="TestArn", 1848s VpcSubnetIds=[subnet_id, subnet_id_2], 1848s RequireTLS=True, 1848s Tags=[{"Key": "TestKey", "Value": "TestValue"}], 1848s ) 1848s 1848s tests/test_rds/test_rds_proxy.py:22: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxy', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1848s operation_model = OperationModel(name=CreateDBProxy) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1848s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ___________________________ test_describe_db_proxies ___________________________ 1848s 1848s @mock_aws 1848s def test_describe_db_proxies(): 1848s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1848s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1848s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1848s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s > rds_client.create_db_proxy( 1848s DBProxyName="testrdsproxydescribe", 1848s EngineFamily="MYSQL", 1848s Auth=[ 1848s { 1848s "Description": "Test Description", 1848s "UserName": "Test Username", 1848s "AuthScheme": "SECRETS", 1848s "SecretArn": "TestSecretARN", 1848s "IAMAuth": "ENABLED", 1848s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1848s }, 1848s ], 1848s RoleArn="TestArn", 1848s VpcSubnetIds=[subnet_id, subnet_id_2], 1848s RequireTLS=True, 1848s Tags=[ 1848s {"Key": "TestKey", "Value": "TestValue"}, 1848s {"Key": "aaa", "Value": "bbb"}, 1848s ], 1848s ) 1848s 1848s tests/test_rds/test_rds_proxy.py:76: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxydescribe', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1848s operation_model = OperationModel(name=CreateDBProxy) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1848s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ___________________________ test_list_tags_db_proxy ____________________________ 1848s 1848s @mock_aws 1848s def test_list_tags_db_proxy(): 1848s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1848s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1848s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1848s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s > resp = rds_client.create_db_proxy( 1848s DBProxyName="testrdsproxydescribe", 1848s EngineFamily="MYSQL", 1848s Auth=[ 1848s { 1848s "Description": "Test Description", 1848s "UserName": "Test Username", 1848s "AuthScheme": "SECRETS", 1848s "SecretArn": "TestSecretARN", 1848s "IAMAuth": "ENABLED", 1848s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1848s }, 1848s ], 1848s RoleArn="TestArn", 1848s VpcSubnetIds=[subnet_id, subnet_id_2], 1848s RequireTLS=True, 1848s Tags=[ 1848s {"Key": "TestKey", "Value": "TestValue"}, 1848s {"Key": "aaa", "Value": "bbb"}, 1848s ], 1848s ) 1848s 1848s tests/test_rds/test_rds_proxy.py:134: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxydescribe', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1848s operation_model = OperationModel(name=CreateDBProxy) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1848s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________________ test_create_db_proxy_invalid_subnet ______________________ 1848s 1848s @mock_aws 1848s def test_create_db_proxy_invalid_subnet(): 1848s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1848s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1848s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1848s vpc_id_2 = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1848s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id_2)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s with pytest.raises(ClientError) as ex: 1848s > rds_client.create_db_proxy( 1848s DBProxyName="testrdsproxy", 1848s EngineFamily="MYSQL", 1848s Auth=[ 1848s { 1848s "Description": "Test Description", 1848s "UserName": "Test Username", 1848s "AuthScheme": "SECRETS", 1848s "SecretArn": "TestSecretARN", 1848s "IAMAuth": "ENABLED", 1848s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1848s }, 1848s ], 1848s RoleArn="TestArn", 1848s VpcSubnetIds=[subnet_id, subnet_id_2], 1848s RequireTLS=True, 1848s Tags=[{"Key": "TestKey", "Value": "TestValue"}], 1848s ) 1848s 1848s tests/test_rds/test_rds_proxy.py:176: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxy', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1848s operation_model = OperationModel(name=CreateDBProxy) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1848s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________________ test_create_db_proxy_duplicate_name ______________________ 1848s 1848s @mock_aws 1848s def test_create_db_proxy_duplicate_name(): 1848s rds_client = boto3.client("rds", region_name=DEFAULT_REGION) 1848s ec2_client = boto3.client("ec2", region_name=DEFAULT_REGION) 1848s vpc_id = ec2_client.create_vpc(CidrBlock="10.0.0.0/16")["Vpc"]["VpcId"] 1848s subnet_id = ec2_client.create_subnet(CidrBlock="10.0.1.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s subnet_id_2 = ec2_client.create_subnet(CidrBlock="10.0.2.0/24", VpcId=vpc_id)[ 1848s "Subnet" 1848s ]["SubnetId"] 1848s > rds_client.create_db_proxy( 1848s DBProxyName="testrdsproxy", 1848s EngineFamily="MYSQL", 1848s Auth=[ 1848s { 1848s "Description": "Test Description", 1848s "UserName": "Test Username", 1848s "AuthScheme": "SECRETS", 1848s "SecretArn": "TestSecretARN", 1848s "IAMAuth": "ENABLED", 1848s "ClientPasswordAuthType": "MYSQL_NATIVE_PASSWORD", 1848s }, 1848s ], 1848s RoleArn="TestArn", 1848s VpcSubnetIds=[subnet_id, subnet_id_2], 1848s RequireTLS=True, 1848s Tags=[{"Key": "TestKey", "Value": "TestValue"}], 1848s ) 1848s 1848s tests/test_rds/test_rds_proxy.py:209: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'Auth': [{'AuthScheme': 'SECRETS', 'ClientPasswordAuthType': 'MYSQL_NATIVE_PASSWORD', 'Description': 'Test Description', 'IAMAuth': 'ENABLED', ...}], 'DBProxyName': 'testrdsproxy', 'EngineFamily': 'MYSQL', 'RequireTLS': True, ...} 1848s operation_model = OperationModel(name=CreateDBProxy) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Invalid length for parameter Auth[0].SecretArn, value: 13, valid min length: 20 1848s E Invalid length for parameter RoleArn, value: 7, valid min length: 20 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ________________________ test_get_resources_workspaces _________________________ 1848s 1848s @mock_aws 1848s def test_get_resources_workspaces(): 1848s workspaces = boto3.client("workspaces", region_name="eu-central-1") 1848s  1848s # Create two tagged Workspaces 1848s directory_id = create_directory() 1848s > workspaces.register_workspace_directory( 1848s DirectoryId=directory_id, EnableWorkDocs=False 1848s ) 1848s 1848s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py:804: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-1603818045', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ___________________ test_get_resources_workspace_directories ___________________ 1848s 1848s @mock_aws 1848s def test_get_resources_workspace_directories(): 1848s workspaces = boto3.client("workspaces", region_name="eu-central-1") 1848s  1848s # Create two tagged Workspaces Directories 1848s for i in range(1, 3): 1848s i_str = str(i) 1848s directory_id = create_directory() 1848s > workspaces.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=False, 1848s Tags=[ 1848s {"Key": "Test", "Value": i_str}, 1848s ], 1848s ) 1848s 1848s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py:851: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-216d1a6362', 'EnableWorkDocs': False, 'Tags': [{'Key': 'Test', 'Value': '1'}]} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________________ test_get_resources_workspace_images ______________________ 1848s 1848s @mock_aws 1848s def test_get_resources_workspace_images(): 1848s workspaces = boto3.client("workspaces", region_name="eu-central-1") 1848s  1848s # Create two tagged Workspace Images 1848s directory_id = create_directory() 1848s > workspaces.register_workspace_directory( 1848s DirectoryId=directory_id, EnableWorkDocs=False 1848s ) 1848s 1848s tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py:880: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-c43c266519', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ____________________________ test_robot_application ____________________________ 1848s 1848s @mock_aws 1848s def test_robot_application(): 1848s > client = boto3.client("robomaker", region_name="eu-west-1") 1848s 1848s tests/test_robomaker/test_robomaker.py:11: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/boto3/__init__.py:92: in client 1848s return _get_default_session().client(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/boto3/session.py:322: in client 1848s return self._session.create_client( 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/session.py:1031: in create_client 1848s client = client_creator.create_client( 1848s /usr/lib/python3/dist-packages/botocore/client.py:120: in create_client 1848s service_model = self._load_service_model(service_name, api_version) 1848s /usr/lib/python3/dist-packages/botocore/client.py:233: in _load_service_model 1848s json_model = self._loader.load_service_model( 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:143: in _wrapper 1848s data = func(self, *args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s service_name = 'robomaker', type_name = 'service-2', api_version = None 1848s 1848s @instance_cache 1848s def load_service_model(self, service_name, type_name, api_version=None): 1848s  """Load a botocore service model 1848s  1848s  This is the main method for loading botocore models (e.g. a service 1848s  model, pagination configs, waiter configs, etc.). 1848s  1848s  :type service_name: str 1848s  :param service_name: The name of the service (e.g ``ec2``, ``s3``). 1848s  1848s  :type type_name: str 1848s  :param type_name: The model type. Valid types include, but are not 1848s  limited to: ``service-2``, ``paginators-1``, ``waiters-2``. 1848s  1848s  :type api_version: str 1848s  :param api_version: The API version to load. If this is not 1848s  provided, then the latest API version will be used. 1848s  1848s  :type load_extras: bool 1848s  :param load_extras: Whether or not to load the tool extras which 1848s  contain additional data to be added to the model. 1848s  1848s  :raises: UnknownServiceError if there is no known service with 1848s  the provided service_name. 1848s  1848s  :raises: DataNotFoundError if no data could be found for the 1848s  service_name/type_name/api_version. 1848s  1848s  :return: The loaded data, as a python type (e.g. dict, list, etc). 1848s  """ 1848s # Wrapper around the load_data. This will calculate the path 1848s # to call load_data with. 1848s known_services = self.list_available_services(type_name) 1848s if service_name not in known_services: 1848s > raise UnknownServiceError( 1848s service_name=service_name, 1848s known_service_names=', '.join(sorted(known_services)), 1848s ) 1848s E botocore.exceptions.UnknownServiceError: Unknown service: 'robomaker'. Valid service names are: accessanalyzer, account, acm, acm-pca, aiops, amp, amplify, amplifybackend, amplifyuibuilder, apigateway, apigatewaymanagementapi, apigatewayv2, appconfig, appconfigdata, appfabric, appflow, appintegrations, application-autoscaling, application-insights, application-signals, applicationcostprofiler, appmesh, apprunner, appstream, appsync, arc-region-switch, arc-zonal-shift, artifact, athena, auditmanager, autoscaling, autoscaling-plans, b2bi, backup, backup-gateway, backupsearch, batch, bcm-dashboards, bcm-data-exports, bcm-pricing-calculator, bcm-recommended-actions, bedrock, bedrock-agent, bedrock-agent-runtime, bedrock-agentcore, bedrock-agentcore-control, bedrock-data-automation, bedrock-data-automation-runtime, bedrock-runtime, billing, billingconductor, braket, budgets, ce, chatbot, chime, chime-sdk-identity, chime-sdk-media-pipelines, chime-sdk-meetings, chime-sdk-messaging, chime-sdk-voice, cleanrooms, cleanroomsml, cloud9, cloudcontrol, clouddirectory, cloudformation, cloudfront, cloudfront-keyvaluestore, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudtrail-data, cloudwatch, codeartifact, codebuild, codecatalyst, codecommit, codeconnections, codedeploy, codeguru-reviewer, codeguru-security, codeguruprofiler, codepipeline, codestar-connections, codestar-notifications, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, compute-optimizer, config, connect, connect-contact-lens, connectcampaigns, connectcampaignsv2, connectcases, connectparticipant, controlcatalog, controltower, cost-optimization-hub, cur, customer-profiles, databrew, dataexchange, datapipeline, datasync, datazone, dax, deadline, detective, devicefarm, devops-guru, directconnect, discovery, dlm, dms, docdb, docdb-elastic, drs, ds, ds-data, dsql, dynamodb, dynamodbstreams, ebs, ec2, ec2-instance-connect, ecr, ecr-public, ecs, efs, eks, eks-auth, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, emr-containers, emr-serverless, entityresolution, es, events, evidently, evs, finspace, finspace-data, firehose, fis, fms, forecast, forecastquery, frauddetector, freetier, fsx, gamelift, gameliftstreams, geo-maps, geo-places, geo-routes, glacier, globalaccelerator, glue, grafana, greengrass, greengrassv2, groundstation, guardduty, health, healthlake, iam, identitystore, imagebuilder, importexport, inspector, inspector-scan, inspector2, internetmonitor, invoicing, iot, iot-data, iot-jobs-data, iot-managed-integrations, iotanalytics, iotdeviceadvisor, iotevents, iotevents-data, iotfleetwise, iotsecuretunneling, iotsitewise, iotthingsgraph, iottwinmaker, iotwireless, ivs, ivs-realtime, ivschat, kafka, kafkaconnect, kendra, kendra-ranking, keyspaces, keyspacesstreams, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesis-video-signaling, kinesis-video-webrtc-storage, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, launch-wizard, lex-models, lex-runtime, lexv2-models, lexv2-runtime, license-manager, license-manager-linux-subscriptions, license-manager-user-subscriptions, lightsail, location, logs, lookoutequipment, m2, machinelearning, macie2, mailmanager, managedblockchain, managedblockchain-query, marketplace-agreement, marketplace-catalog, marketplace-deployment, marketplace-entitlement, marketplace-reporting, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediapackagev2, mediastore, mediastore-data, mediatailor, medical-imaging, memorydb, meteringmarketplace, mgh, mgn, migration-hub-refactor-spaces, migrationhub-config, migrationhuborchestrator, migrationhubstrategy, mpa, mq, mturk, mwaa, neptune, neptune-graph, neptunedata, network-firewall, networkflowmonitor, networkmanager, networkmonitor, notifications, notificationscontacts, oam, observabilityadmin, odb, omics, opensearch, opensearchserverless, organizations, osis, outposts, panorama, partnercentral-selling, payment-cryptography, payment-cryptography-data, pca-connector-ad, pca-connector-scep, pcs, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, pinpoint-sms-voice-v2, pipes, polly, pricing, proton, qapps, qbusiness, qconnect, quicksight, ram, rbin, rds, rds-data, redshift, redshift-data, redshift-serverless, rekognition, repostspace, resiliencehub, resource-explorer-2, resource-groups, resourcegroupstaggingapi, rolesanywhere, route53, route53-recovery-cluster, route53-recovery-control-config, route53-recovery-readiness, route53domains, route53profiles, route53resolver, rtbfabric, rum, s3, s3control, s3outposts, s3tables, s3vectors, sagemaker, sagemaker-a2i-runtime, sagemaker-edge, sagemaker-featurestore-runtime, sagemaker-geospatial, sagemaker-metrics, sagemaker-runtime, savingsplans, scheduler, schemas, sdb, secretsmanager, security-ir, securityhub, securitylake, serverlessrepo, service-quotas, servicecatalog, servicecatalog-appregistry, servicediscovery, ses, sesv2, shield, signer, simspaceweaver, sms-voice, snow-device-management, snowball, sns, socialmessaging, sqs, ssm, ssm-contacts, ssm-guiconnect, ssm-incidents, ssm-quicksetup, ssm-sap, sso, sso-admin, sso-oidc, stepfunctions, storagegateway, sts, supplychain, support, support-app, swf, synthetics, taxsettings, textract, timestream-influxdb, timestream-query, timestream-write, tnb, transcribe, transfer, translate, trustedadvisor, verifiedpermissions, voice-id, vpc-lattice, waf, waf-regional, wafv2, wellarchitected, wisdom, workdocs, workmail, workmailmessageflow, workspaces, workspaces-instances, workspaces-thin-client, workspaces-web, xray 1848s 1848s /usr/lib/python3/dist-packages/botocore/loaders.py:409: UnknownServiceError 1848s __________________ test_locked_object_governance_mode[bypass] __________________ 1848s 1848s bypass_governance_retention = True 1848s bucket_name = '5e28a4b2-9f7c-4293-82d1-4ff67f0e51ba' 1848s 1848s @s3_aws_verified 1848s @pytest.mark.aws_verified 1848s @pytest.mark.parametrize( 1848s "bypass_governance_retention", 1848s [True, False, None], 1848s ids=["bypass", "no_bypass", "unspecified"], 1848s ) 1848s def test_locked_object_governance_mode(bypass_governance_retention, bucket_name=None): 1848s s3_client = boto3.client("s3", DEFAULT_REGION_NAME) 1848s  1848s key_name = "file.txt" 1848s seconds_lock = 10 1848s  1848s enable_versioning(bucket_name, s3_client) 1848s  1848s s3_client.put_object_lock_configuration( 1848s Bucket=bucket_name, 1848s ObjectLockConfiguration={ 1848s "ObjectLockEnabled": "Enabled", 1848s "Rule": {"DefaultRetention": {"Mode": "GOVERNANCE", "Days": 1}}, 1848s }, 1848s ) 1848s  1848s until = utcnow() + datetime.timedelta(seconds=seconds_lock) 1848s s3_client.put_object( 1848s Bucket=bucket_name, 1848s Body=b"test", 1848s Key=key_name, 1848s ObjectLockMode="GOVERNANCE", 1848s ObjectLockRetainUntilDate=until, 1848s ContentMD5=generate_content_md5(b"test"), 1848s ) 1848s  1848s versions_response = s3_client.list_object_versions(Bucket=bucket_name) 1848s initial_version_id = versions_response["Versions"][0]["VersionId"] 1848s  1848s with pytest.raises(ClientError) as exc: 1848s s3_client.delete_object( 1848s Bucket=bucket_name, Key=key_name, VersionId=initial_version_id 1848s ) 1848s err = exc.value.response["Error"] 1848s assert err["Code"] == "AccessDenied" 1848s  1848s kwargs = {} 1848s if bypass_governance_retention in [True, False]: 1848s kwargs["BypassGovernanceRetention"] = bypass_governance_retention 1848s  1848s # Delete the object without VersionId always succeeds 1848s response = s3_client.delete_objects( 1848s Bucket=bucket_name, 1848s Delete={ 1848s "Objects": [ 1848s {"Key": key_name}, 1848s ], 1848s }, 1848s **kwargs, 1848s ) 1848s assert response["Deleted"][0]["Key"] == key_name 1848s deleted_version_id = response["Deleted"][0]["DeleteMarkerVersionId"] 1848s  1848s # Delete any version id only succeeds if BypassGovernanceRetention=true 1848s response = s3_client.delete_objects( 1848s Bucket=bucket_name, 1848s Delete={ 1848s "Objects": [ 1848s {"Key": key_name, "VersionId": initial_version_id}, 1848s ], 1848s }, 1848s **kwargs, 1848s ) 1848s if bypass_governance_retention: 1848s > assert "Deleted" in response 1848s E AssertionError: assert 'Deleted' in {'Errors': [{'Code': 'AccessDenied', 'Key': 'file.txt', 'Message': 'Access Denied because object protected by object l...KIZ'}, 'HTTPStatusCode': 200, 'RequestId': 'LIrAhzinWsP7FznljrljgvJTDvLfWrlt7rtZ7WxO7IoN8Kcu8KIZ', 'RetryAttempts': 0}} 1848s 1848s tests/test_s3/test_s3_lock.py:130: AssertionError 1848s ________________________________ test_get_table ________________________________ 1848s 1848s @mock_aws 1848s def test_get_table(): 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s table_arn = client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s )["tableARN"] 1848s  1848s assert ( 1848s > client.get_table(tableBucketARN=arn, namespace="bar", name="baz")["tableARN"] 1848s == table_arn 1848s ) 1848s 1848s tests/test_s3tables/test_s3tables.py:156: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s ______________ test_delete_table_deletes_underlying_table_storage ______________ 1848s 1848s @mock_aws 1848s def test_delete_table_deletes_underlying_table_storage(): 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s s3 = boto3.client("s3", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s ) 1848s > warehouse = client.get_table(tableBucketARN=arn, namespace="bar", name="baz")[ 1848s "warehouseLocation" 1848s ] 1848s 1848s tests/test_s3tables/test_s3tables.py:227: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _____________________ test_update_table_metadata_location ______________________ 1848s 1848s @mock_aws 1848s def test_update_table_metadata_location(): 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s resp = client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s ) 1848s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1848s 1848s tests/test_s3tables/test_s3tables.py:280: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _________________________ test_write_metadata_to_table _________________________ 1848s 1848s @mock_aws 1848s def test_write_metadata_to_table() -> None: 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s resp = client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s ) 1848s  1848s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1848s 1848s tests/test_s3tables/test_s3tables.py:324: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _________ test_underlying_table_storage_does_not_support_list_objects __________ 1848s 1848s @mock_aws 1848s def test_underlying_table_storage_does_not_support_list_objects() -> None: 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s resp = client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s ) 1848s  1848s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1848s 1848s tests/test_s3tables/test_s3tables.py:356: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s _________ test_underlying_table_storage_does_not_support_delete_object _________ 1848s 1848s @mock_aws 1848s def test_underlying_table_storage_does_not_support_delete_object() -> None: 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s resp = client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s ) 1848s  1848s > resp = client.get_table(tableBucketARN=arn, namespace="bar", name="baz") 1848s 1848s tests/test_s3tables/test_s3tables.py:374: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz', 'namespace': 'bar', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s ______________________________ test_rename_table _______________________________ 1848s 1848s @mock_aws 1848s def test_rename_table() -> None: 1848s client = boto3.client("s3tables", region_name="us-east-2") 1848s arn = client.create_table_bucket(name="foo")["arn"] 1848s client.create_namespace(tableBucketARN=arn, namespace=["bar"]) 1848s resp = client.create_table( 1848s tableBucketARN=arn, namespace="bar", name="baz", format="ICEBERG" 1848s ) 1848s  1848s client.create_namespace(tableBucketARN=arn, namespace=["bar-two"]) 1848s client.rename_table( 1848s tableBucketARN=arn, 1848s namespace="bar", 1848s name="baz", 1848s newNamespaceName="bar-two", 1848s newName="baz-two", 1848s versionToken=resp["versionToken"], 1848s ) 1848s assert ( 1848s > client.get_table(tableBucketARN=arn, namespace="bar-two", name="baz-two")[ 1848s "name" 1848s ] 1848s == "baz-two" 1848s ) 1848s 1848s tests/test_s3tables/test_s3tables.py:403: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'GetTable' 1848s api_params = {'name': 'baz-two', 'namespace': 'bar-two', 'tableBucketARN': 'arn:aws:s3tables:us-east-2:123456789012:bucket/foo'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the GetTable operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s ___________________________ test_s3tables_get_table ____________________________ 1848s 1848s bucket_name = 'table-bucketnspmjnkliv' 1848s 1848s def test_s3tables_get_table(bucket_name: str): 1848s backend = server.create_backend_app("s3tables") 1848s test_client = backend.test_client() 1848s  1848s resp = test_client.put("/buckets", json={"name": bucket_name}) 1848s arn = resp.get_json()["arn"] 1848s  1848s quoted_arn = quote(arn, safe="") 1848s resp = test_client.put(f"/namespaces/{quoted_arn}", json={"namespace": ["bar"]}) 1848s  1848s resp = test_client.put( 1848s f"/tables/{quoted_arn}/bar", json={"name": "baz", "format": "ICEBERG"} 1848s ) 1848s  1848s resp = test_client.get(f"/tables/{quoted_arn}/bar/baz") 1848s > assert resp.status_code == 200 1848s E assert 404 == 200 1848s E + where 404 = .status_code 1848s 1848s tests/test_s3tables/test_server.py:126: AssertionError 1848s ___________________ test_invoke_fake_function_from_sqs_queue ___________________ 1848s 1848s @mock_aws(config={"lambda": {"use_docker": False}}) 1848s def test_invoke_fake_function_from_sqs_queue(): 1848s if not settings.TEST_DECORATOR_MODE: 1848s raise SkipTest("Can only set Config in DecoratorMode") 1848s logs_conn = boto3.client("logs", region_name="us-east-1") 1848s sqs = boto3.resource("sqs", region_name="us-east-1") 1848s queue_name = str(uuid.uuid4())[0:6] 1848s queue = sqs.create_queue(QueueName=queue_name) 1848s  1848s fn_name = str(uuid.uuid4())[0:6] 1848s conn = boto3.client("lambda", region_name="us-east-1") 1848s func = conn.create_function( 1848s FunctionName=fn_name, 1848s Runtime="python3.11", 1848s Role=get_role_name(), 1848s Handler="lambda_function.lambda_handler", 1848s Code={"ZipFile": b"n/a"}, 1848s ) 1848s  1848s > conn.create_event_source_mapping( 1848s EventSourceArn=queue.attributes["QueueArn"], FunctionName=func["FunctionArn"] 1848s ) 1848s 1848s tests/test_sqs/test_sqs_integration.py:94: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s operation_name = 'CreateEventSourceMapping' 1848s api_params = {'EventSourceArn': 'arn:aws:sqs:us-east-1:123456789012:f2d63f', 'FunctionName': 'arn:aws:lambda:us-east-1:123456789012:function:e6ff29'} 1848s 1848s @with_current_context() 1848s def _make_api_call(self, operation_name, api_params): 1848s operation_model = self._service_model.operation_model(operation_name) 1848s service_name = self._service_model.service_name 1848s history_recorder.record( 1848s 'API_CALL', 1848s { 1848s 'service': service_name, 1848s 'operation': operation_name, 1848s 'params': api_params, 1848s }, 1848s ) 1848s if operation_model.deprecated: 1848s logger.debug( 1848s 'Warning: %s.%s() is deprecated', service_name, operation_name 1848s ) 1848s request_context = { 1848s 'client_region': self.meta.region_name, 1848s 'client_config': self.meta.config, 1848s 'has_streaming_input': operation_model.has_streaming_input, 1848s 'auth_type': operation_model.resolved_auth_type, 1848s 'unsigned_payload': operation_model.unsigned_payload, 1848s 'auth_options': self._service_model.metadata.get('auth'), 1848s } 1848s  1848s api_params = self._emit_api_params( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s context=request_context, 1848s ) 1848s ( 1848s endpoint_url, 1848s additional_headers, 1848s properties, 1848s ) = self._resolve_endpoint_ruleset( 1848s operation_model, api_params, request_context 1848s ) 1848s if properties: 1848s # Pass arbitrary endpoint info with the Request 1848s # for use during construction. 1848s request_context['endpoint_properties'] = properties 1848s request_dict = self._convert_to_request_dict( 1848s api_params=api_params, 1848s operation_model=operation_model, 1848s endpoint_url=endpoint_url, 1848s context=request_context, 1848s headers=additional_headers, 1848s ) 1848s resolve_checksum_context(request_dict, operation_model, api_params) 1848s  1848s service_id = self._service_model.service_id.hyphenize() 1848s handler, event_response = self.meta.events.emit_until_response( 1848s f'before-call.{service_id}.{operation_name}', 1848s model=operation_model, 1848s params=request_dict, 1848s request_signer=self._request_signer, 1848s context=request_context, 1848s ) 1848s  1848s if event_response is not None: 1848s http, parsed_response = event_response 1848s else: 1848s maybe_compress_request( 1848s self.meta.config, request_dict, operation_model 1848s ) 1848s apply_request_checksum(request_dict) 1848s http, parsed_response = self._make_request( 1848s operation_model, request_dict, request_context 1848s ) 1848s  1848s self.meta.events.emit( 1848s f'after-call.{service_id}.{operation_name}', 1848s http_response=http, 1848s parsed=parsed_response, 1848s model=operation_model, 1848s context=request_context, 1848s ) 1848s  1848s if http.status_code >= 300: 1848s error_info = parsed_response.get("Error", {}) 1848s error_code = request_context.get( 1848s 'error_code_override' 1848s ) or error_info.get("Code") 1848s error_class = self.exceptions.from_code(error_code) 1848s > raise error_class(parsed_response, operation_name) 1848s E botocore.exceptions.ClientError: An error occurred (404) when calling the CreateEventSourceMapping operation: Not yet implemented 1848s 1848s /usr/lib/python3/dist-packages/botocore/client.py:1078: ClientError 1848s ____________________________ test_create_workspaces ____________________________ 1848s 1848s @mock_aws 1848s def test_create_workspaces(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:31: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-18bd05c208', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s __________ test_create_workspaces_with_auto_stop_timeout_and_alwayson __________ 1848s 1848s @mock_aws 1848s def test_create_workspaces_with_auto_stop_timeout_and_alwayson(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:111: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-b2f3e2dda5', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ___________ test_create_workspaces_with_auto_stop_timeout_and_manual ___________ 1848s 1848s @mock_aws 1848s def test_create_workspaces_with_auto_stop_timeout_and_manual(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:137: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-1df0352fd2', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ___________________________ test_describe_workspaces ___________________________ 1848s 1848s @mock_aws 1848s def test_describe_workspaces(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:163: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-a8773162c2', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________ test_describe_workspaces_with_directory_and_username _____________ 1848s 1848s @mock_aws 1848s def test_describe_workspaces_with_directory_and_username(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:188: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-718605123d', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _________________ test_describe_workspaces_invalid_parameters __________________ 1848s 1848s @mock_aws 1848s def test_describe_workspaces_invalid_parameters(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:211: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-fb079ecc35', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _________________ test_describe_workspaces_only_user_name_used _________________ 1848s 1848s @mock_aws 1848s def test_describe_workspaces_only_user_name_used(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:246: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-8c9fdba7ea', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ______________________ test_register_workspace_directory _______________________ 1848s 1848s @mock_aws 1848s def test_register_workspace_directory(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:268: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-11402c4bc2', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ____________ test_register_workspace_directory_enable_self_service _____________ 1848s 1848s @mock_aws 1848s def test_register_workspace_directory_enable_self_service(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s EnableSelfService=True, 1848s Tenancy="DEDICATED", 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:281: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-3141e3150d', 'EnableSelfService': True, 'EnableWorkDocs': True, 'Tenancy': 'DEDICATED'} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ________________ test_register_workspace_directory_with_subnets ________________ 1848s 1848s @mock_aws 1848s def test_register_workspace_directory_with_subnets(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:304: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-3db7343730', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________________ test_describe_workspace_directories ______________________ 1848s 1848s @mock_aws 1848s def test_describe_workspace_directories(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s for _ in range(2): 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:318: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-816f40c7f9', 'EnableWorkDocs': True} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ____________ test_describe_workspace_directories_with_directory_id _____________ 1848s 1848s @mock_aws 1848s def test_describe_workspace_directories_with_directory_id(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:347: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-3acb2fb2b4', 'EnableWorkDocs': True} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s __________________ test_modify_workspace_creation_properties ___________________ 1848s 1848s @mock_aws 1848s def test_modify_workspace_creation_properties(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s ec2_client = boto3.client("ec2", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s sg = create_security_group(client=ec2_client) 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:372: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-81a09fd34b', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s __________ test_modify_workspace_creation_properties_invalid_request ___________ 1848s 1848s @mock_aws 1848s def test_modify_workspace_creation_properties_invalid_request(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s ec2_client = boto3.client("ec2", region_name="eu-west-1") 1848s sg = create_security_group(client=ec2_client) 1848s with pytest.raises(ClientError) as exc: 1848s > client.modify_workspace_creation_properties( 1848s ResourceId="d-9067f6c44b", # Invalid DirectoryID 1848s WorkspaceCreationProperties={ 1848s "EnableWorkDocs": False, 1848s "CustomSecurityGroupId": sg["GroupId"], 1848s }, 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:394: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'ResourceId': 'd-9067f6c44b', 'WorkspaceCreationProperties': {'CustomSecurityGroupId': 'sg-04ac59e038f531334', 'EnableWorkDocs': False}} 1848s operation_model = OperationModel(name=ModifyWorkspaceCreationProperties) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in WorkspaceCreationProperties: "EnableWorkDocs", must be one of: EnableInternetAccess, DefaultOu, CustomSecurityGroupId, UserEnabledAsLocalAdministrator, EnableMaintenanceMode, InstanceIamRoleArn 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _______________________________ test_create_tags _______________________________ 1848s 1848s @mock_aws 1848s def test_create_tags(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s Tags=[ 1848s {"Key": "foo1", "Value": "bar1"}, 1848s ], 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:409: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-e1ee0edb62', 'EnableWorkDocs': True, 'Tags': [{'Key': 'foo1', 'Value': 'bar1'}]} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ______________________________ test_describe_tags ______________________________ 1848s 1848s @mock_aws 1848s def test_describe_tags(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s Tags=[ 1848s {"Key": "foo", "Value": "bar"}, 1848s ], 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:430: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-fa73b1b62e', 'EnableWorkDocs': True, 'Tags': [{'Key': 'foo', 'Value': 'bar'}]} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _______________________ test_describe_client_properties ________________________ 1848s 1848s @mock_aws 1848s def test_describe_client_properties(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:445: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-40d9d5f2e0', 'EnableWorkDocs': True} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ________________________ test_modify_client_properties _________________________ 1848s 1848s @mock_aws 1848s def test_modify_client_properties(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:457: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-90fbf43def', 'EnableWorkDocs': True} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _________________________ test_create_workspace_image __________________________ 1848s 1848s @mock_aws 1848s def test_create_workspace_image(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:478: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-3425b9126d', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s __________________ test_create_workspace_image_already_exists __________________ 1848s 1848s @mock_aws 1848s def test_create_workspace_image_already_exists(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:520: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-f8b7cde199', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ________________________ test_describe_workspace_images ________________________ 1848s 1848s @mock_aws 1848s def test_describe_workspace_images(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:550: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-192067a9d5', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s ____________________ test_update_workspace_image_permission ____________________ 1848s 1848s @mock_aws 1848s def test_update_workspace_image_permission(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:581: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-4d9717b5d4', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s __________________ test_describe_workspace_image_permissions ___________________ 1848s 1848s @mock_aws 1848s def test_describe_workspace_image_permissions(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:614: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-21a6b58dfd', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________________ test_deregister_workspace_directory ______________________ 1848s 1848s @mock_aws 1848s def test_deregister_workspace_directory(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s directory_id = create_directory() 1848s > client.register_workspace_directory(DirectoryId=directory_id, EnableWorkDocs=False) 1848s 1848s tests/test_workspaces/test_workspaces.py:651: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-1ce8bfe409', 'EnableWorkDocs': False} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s _____________________ test_modify_selfservice_permissions ______________________ 1848s 1848s @mock_aws 1848s def test_modify_selfservice_permissions(): 1848s client = boto3.client("workspaces", region_name="eu-west-1") 1848s  1848s directory_id = create_directory() 1848s > client.register_workspace_directory( 1848s DirectoryId=directory_id, 1848s EnableWorkDocs=True, 1848s ) 1848s 1848s tests/test_workspaces/test_workspaces.py:664: 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s /usr/lib/python3/dist-packages/botocore/client.py:602: in _api_call 1848s return self._make_api_call(operation_name, kwargs) 1848s /usr/lib/python3/dist-packages/botocore/context.py:123: in wrapper 1848s return func(*args, **kwargs) 1848s /usr/lib/python3/dist-packages/botocore/client.py:1035: in _make_api_call 1848s request_dict = self._convert_to_request_dict( 1848s /usr/lib/python3/dist-packages/botocore/client.py:1102: in _convert_to_request_dict 1848s request_dict = self._serializer.serialize_to_request( 1848s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1848s 1848s self = 1848s parameters = {'DirectoryId': 'd-099bb63c4c', 'EnableWorkDocs': True} 1848s operation_model = OperationModel(name=RegisterWorkspaceDirectory) 1848s 1848s def serialize_to_request(self, parameters, operation_model): 1848s input_shape = operation_model.input_shape 1848s if input_shape is not None: 1848s report = self._param_validator.validate( 1848s parameters, operation_model.input_shape 1848s ) 1848s if report.has_errors(): 1848s > raise ParamValidationError(report=report.generate_report()) 1848s E botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s E Unknown parameter in input: "EnableWorkDocs", must be one of: DirectoryId, SubnetIds, EnableSelfService, Tenancy, Tags, WorkspaceDirectoryName, WorkspaceDirectoryDescription, UserIdentityType, IdcInstanceArn, MicrosoftEntraConfig, WorkspaceType, ActiveDirectoryConfig 1848s 1848s /usr/lib/python3/dist-packages/botocore/validate.py:381: ParamValidationError 1848s =============================== warnings summary =============================== 1848s tests/test_core/test_docker.py:11 1848s /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build/tests/test_core/test_docker.py:11: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 1848s @pytest.mark.order(0) 1848s 1848s tests/test_core/test_docker.py:24 1848s /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build/tests/test_core/test_docker.py:24: PytestUnknownMarkWarning: Unknown pytest.mark.order - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html 1848s @pytest.mark.order(0) 1848s 1848s ../../../../usr/lib/python3/dist-packages/aws_xray_sdk/core/sampling/default_sampler.py:5 1848s /usr/lib/python3/dist-packages/aws_xray_sdk/core/sampling/default_sampler.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html 1848s from pkg_resources import resource_filename 1848s 1848s tests/test_cognitoidp/test_cognitoidp.py: 36 warnings 1848s /usr/lib/python3/dist-packages/pycognito/aws_srp.py:310: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). 1848s timestamp = self.get_cognito_formatted_timestamp(datetime.datetime.utcnow()) 1848s 1848s tests/test_ec2/test_key_pairs.py::test_key_pairs_invalid_boto3 1848s /usr/lib/python3/dist-packages/moto/ec2/utils.py:759: CryptographyDeprecationWarning: SSH DSA keys are deprecated and will be removed in a future release. 1848s public_key = serialization.load_ssh_public_key(key_material) 1848s 1848s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 1848s =========================== short test summary info ============================ 1848s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_create_from_cloudformation_json - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1848s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_delete_stack - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1848s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_update_from_cloudformation_json - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1848s FAILED tests/test_awslambda/test_awslambda_cloudformation.py::test_event_source_mapping_delete_from_cloudformation_json - botocore.exceptions.ClientError: An error occurred (404) when calling the L... 1848s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_create_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1848s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_list_event_source_mappings - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1848s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_get_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1848s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_update_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1848s FAILED tests/test_awslambda/test_lambda_eventsourcemapping.py::test_delete_event_source_mapping - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_describe_flow_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_delete_flow_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_start_stop_flow_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_unknown_flow - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_tag_resource_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_vpc_interfaces_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_vpc_interfaces_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_vpc_interface_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_vpc_interface_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_outputs_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_outputs_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_output_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_output_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_output_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_remove_flow_output_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_sources_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_add_flow_sources_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_source_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_source_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_grant_flow_entitlements_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_grant_flow_entitlements_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_revoke_flow_entitlement_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_revoke_flow_entitlement_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_entitlement_fails - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_mediaconnect/test_mediaconnect.py::test_update_flow_entitlement_succeeds - TypeError: argument of type 'NoneType' is not iterable 1848s FAILED tests/test_opsworks/test_apps.py::test_create_app_response - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_apps.py::test_describe_apps - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_instances.py::test_create_instance - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_instances.py::test_describe_instances - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_instances.py::test_ec2_integration - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_layers.py::test_create_layer_response - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_layers.py::test_describe_layers - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_stack.py::test_create_stack_response - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_opsworks/test_stack.py::test_describe_stacks - botocore.exceptions.UnknownServiceError: Unknown service: 'opsworks'. Valid... 1848s FAILED tests/test_rds/test_rds_proxy.py::test_create_db_proxy - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_rds/test_rds_proxy.py::test_describe_db_proxies - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_rds/test_rds_proxy.py::test_list_tags_db_proxy - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_rds/test_rds_proxy.py::test_create_db_proxy_invalid_subnet - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_rds/test_rds_proxy.py::test_create_db_proxy_duplicate_name - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py::test_get_resources_workspaces - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py::test_get_resources_workspace_directories - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_resourcegroupstaggingapi/test_resourcegroupstaggingapi.py::test_get_resources_workspace_images - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_robomaker/test_robomaker.py::test_robot_application - botocore.exceptions.UnknownServiceError: Unknown service: 'robomaker'. Vali... 1848s FAILED tests/test_s3/test_s3_lock.py::test_locked_object_governance_mode[bypass] - AssertionError: assert 'Deleted' in {'Errors': [{'Code': 'AccessDenied', 'K... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_get_table - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_delete_table_deletes_underlying_table_storage - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_update_table_metadata_location - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_write_metadata_to_table - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_underlying_table_storage_does_not_support_list_objects - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_underlying_table_storage_does_not_support_delete_object - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_s3tables.py::test_rename_table - botocore.exceptions.ClientError: An error occurred (404) when calling the G... 1848s FAILED tests/test_s3tables/test_server.py::test_s3tables_get_table - assert 404 == 200 1848s FAILED tests/test_sqs/test_sqs_integration.py::test_invoke_fake_function_from_sqs_queue - botocore.exceptions.ClientError: An error occurred (404) when calling the C... 1848s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspaces - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspaces_with_auto_stop_timeout_and_alwayson - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspaces_with_auto_stop_timeout_and_manual - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces_with_directory_and_username - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces_invalid_parameters - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspaces_only_user_name_used - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_register_workspace_directory - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_register_workspace_directory_enable_self_service - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_register_workspace_directory_with_subnets - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_directories - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_directories_with_directory_id - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_modify_workspace_creation_properties - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_modify_workspace_creation_properties_invalid_request - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_create_tags - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_tags - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_client_properties - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_modify_client_properties - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspace_image - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_create_workspace_image_already_exists - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_images - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_update_workspace_image_permission - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_describe_workspace_image_permissions - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_deregister_workspace_directory - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s FAILED tests/test_workspaces/test_workspaces.py::test_modify_selfservice_permissions - botocore.exceptions.ParamValidationError: Parameter validation failed: 1848s ERROR tests/test_qldb/test_qldb.py::test_create_describe_update_and_delete_ledger - botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid ser... 1848s ERROR tests/test_qldb/test_qldb.py::test_tag_resource_and_list_tags_for_resource - botocore.exceptions.UnknownServiceError: Unknown service: 'qldb'. Valid ser... 1848s = 87 failed, 9715 passed, 16 skipped, 140 deselected, 40 warnings, 2 errors in 792.98s (0:13:12) = 1854s E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /tmp/autopkgtest.rOQvuT/autopkgtest_tmp/build; python3.13 -m pytest -m 'not network and not requires_docker' tests --deselect tests/test_cloudformation/test_validate.py --deselect tests/test_dynamodb/test_dynamodb_import_table.py --deselect tests/test_dynamodb/test_dynamodb_statements.py --deselect tests/test_s3/test_s3_select.py --deselect tests/test_stepfunctions/parser/ --deselect 'tests/test_stepfunctions/test_stepfunctions_versions.py::test_describe_state_machine_using_version_arn[use_parser]' --deselect tests/test_dynamodb/test_dynamodb_account_mode.py::test_dynamodb_with_account_id_routing --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_entire_service --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_specific_url --deselect tests/test_core/test_request_passthrough.py::test_passthrough_calls_for_wildcard_urls --deselect tests/test_firehose/test_firehose_put.py::test_put_record_http_destination --deselect tests/test_firehose/test_firehose_put.py::test_put_record_batch_http_destination --deselect tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header --deselect tests/test_s3/test_server.py::test_s3_server_post_cors_multiple_origins 1854s pybuild-autopkgtest: error: pybuild --autopkgtest --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 1854s make: *** [/tmp/XG2VRyaYih/run:4: pybuild-autopkgtest] Error 25 1854s pybuild-autopkgtest: error: /tmp/XG2VRyaYih/run pybuild-autopkgtest returned exit code 2 1854s autopkgtest [12:37:03]: test pybuild-autopkgtest: -----------------------] 1857s pybuild-autopkgtest FAIL non-zero exit status 25 1857s autopkgtest [12:37:06]: test pybuild-autopkgtest: - - - - - - - - - - results - - - - - - - - - - 1857s autopkgtest [12:37:06]: @@@@@@@@@@@@@@@@@@@@ summary 1857s pybuild-autopkgtest FAIL non-zero exit status 25