From 1ca9bc2ebe1650b75f32569e1671df6c82327b9d Mon Sep 17 00:00:00 2001 From: Ben Hearsum Date: Mon, 2 Dec 2024 19:38:15 -0500 Subject: [PATCH 1/2] add gpg signing configuration for tests --- signingscript/tests/conftest.py | 2 ++ signingscript/tests/data/gpg_testkey.asc | 33 +++++++++++++++++++ .../tests/example_server_config.json | 4 ++- 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 signingscript/tests/data/gpg_testkey.asc diff --git a/signingscript/tests/conftest.py b/signingscript/tests/conftest.py index df7844961..9ece4a428 100644 --- a/signingscript/tests/conftest.py +++ b/signingscript/tests/conftest.py @@ -19,6 +19,7 @@ def read_file(path): BASE_DIR = os.path.dirname(os.path.dirname(__file__)) SERVER_CONFIG_PATH = os.path.join(os.path.dirname(__file__), "example_server_config.json") APPLE_CONFIG_PATH = os.path.join(os.path.dirname(__file__), "example_apple_notarization_config.json") +GPG_PUBKEY = os.path.join(os.path.dirname(__file__), "data", "gpg_testkey.asc") DEFAULT_SCOPE_PREFIX = "project:releng:signing:" TEST_CERT_TYPE = f"{DEFAULT_SCOPE_PREFIX}cert:dep-signing" TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data") @@ -55,6 +56,7 @@ def context(tmpdir): context.config["artifact_dir"] = os.path.join(tmpdir, "artifact") context.config["taskcluster_scope_prefixes"] = [DEFAULT_SCOPE_PREFIX] context.config["apple_notarization_configs"] = APPLE_CONFIG_PATH + context.config["gpg_pubkey"] = GPG_PUBKEY context.autograph_configs = load_autograph_configs(SERVER_CONFIG_PATH) context.apple_credentials_path = "fakepath" mkdir(context.config["work_dir"]) diff --git a/signingscript/tests/data/gpg_testkey.asc b/signingscript/tests/data/gpg_testkey.asc new file mode 100644 index 000000000..64559ed87 --- /dev/null +++ b/signingscript/tests/data/gpg_testkey.asc @@ -0,0 +1,33 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: Keybase OpenPGP v1.0.0 +Comment: https://keybase.io/crypto + +xo0EZ03+lQEEAJQU+SWd9gUU37KS8j3oP06UnyQzu3/qM+NMmILzz5JPBlZPMUwG +WRcKgDgd5kEKuZengLyx0VWE5DY8FxuZdjhs4x1VuuLomxVQTerUKFn/rRQUpZvS +3H75R+A+7OnVpMaBcxU839gDrSXf49/mQZcuDNoAuYkBT/u2mtzSMed1ABEBAAHN +G3JlbGVuZyA8cmVsZW5nQG1vemlsbGEuY29tPsKtBBMBCgAXBQJnTf6VAhsvAwsJ +BwMVCggCHgECF4AACgkQyfzTcr0lOlGzOQP9GgSI3OKIYVW/A1uF+KMIHg9rvZZq +1n5ttVPSfi5brH14vqCKMbVPe1vgh/v3G9dLxOTE3YugUeRMrDO2l5tWHa9IGZc9 +SvmFgQpjblFcJ2sNsiJ2LhPFaEsW7faTT0Esi9Q9OS7m2Ck5QKH8NwAcsTuKFnVX +t8mEvhy/1Yad7K/OjQRnTf6VAQQAqhsek4ZhLGlDHlgi7oEymw4Vh40PgiRF1Gfr +5X4QhIUrylZpyriViqjHa5CLwCTTsoo29oXC6xnKZWSF4/3gC5s58M7POC/NxXO6 +psTtzX5o53NxwgsBXwRprVhOxthXLqzrWt0cmXsfHCZC5xvRPOWp7SAWGBgEd/5A +nqriRRMAEQEAAcLAgwQYAQoADwUCZ03+lQUJDwmcAAIbLgCoCRDJ/NNyvSU6UZ0g +BBkBCgAGBQJnTf6VAAoJEF/94VPFBxqc6M4D/02fBrz/LWNos/44su04bVD4CNV2 +NGxoIh4gssmxwwbnualg0T3oMg2YMWTOfEhdU+L/Xxr5kh2E880EiK7nm1TIrWzS +OEjX4CR7UF/VU55AqocgtJewhNisrqYTTIjUrwy/kHUNULq7ayIneMAciSt67+Ec +Kay+OAAfaZq1Ir2oFH4D/3kevuqj7djQ5CqWV1qR23xHrcEZgBXTPWypTjJ9AweW +r/L5g/UI1KKShHJKLmc6uXJ1/nlcyjj1qm2nJ6aAIqVZEZjPwrvlyhKVc+gls4SB +ulvvaVKC8iKcPvgq8CrC5B2vePjBpCiMUIVU8MFEHv+4KgvfFtXpR9qwhJiCj0KR +zo0EZ03+lQEEAL13xc8IVtHxTfAxZNzGLObBjSnx4CiXnQ3fN8e7f1mwaaiP39/9 +NulYyMHpRiLd4zLbysTwgB2oTDmEdCHaTIDHQAC2j+sx2GnZ1qpEyKJIExxfhuJj +Sy/T3miD+661ESZgB0fwWvYsmWpgNfKiuWsQ/WuZnFSGYrspbpI3k/ZbABEBAAHC +wIMEGAEKAA8FAmdN/pUFCQ8JnAACGy4AqAkQyfzTcr0lOlGdIAQZAQoABgUCZ03+ +lQAKCRA4Ms86SPZ3/juAA/0TSaDDRC34Ri+hQ84ncYp8rcx399Kqgtrc+XrKn/7k +JMOqbkKbEfh9vIrz55PLRwVqX7Sq5st16ZM4D0rpmtE8CusTz6/ulOv6V5f2OIWC +tsZ6ocE4t+1Z9UeDsaqL1NROP6t21MxEnhDPaHWQpiMlWD7N5MTgLT2XdZVyB8HJ +A4LNBACRgdyFnAjtdmCUtZgSQZq/4WQE+vTibBq1EqOrQLmWSK2n/fHGK0oJNySD +jO5XR/QlFEZ8WeJubp6AnCAiy4H38bJklmq1LOldpKq8LyW2xQnGagZaiUE0K9IM ++T2UoEDdVewwwF7g/Zf+sBxRphS+dYox2ojhKMEP7HZnMo7TRQ== +=tnDO +-----END PGP PUBLIC KEY BLOCK----- diff --git a/signingscript/tests/example_server_config.json b/signingscript/tests/example_server_config.json index 32c3dff13..61aa29669 100644 --- a/signingscript/tests/example_server_config.json +++ b/signingscript/tests/example_server_config.json @@ -7,6 +7,8 @@ ], "project:releng:signing:cert:dep-signing": [ ["https://127.0.0.3", "hawk_user", "hawk_secret", ["autograph_marsha384"]], - ["https://127.0.0.3", "hawk_user", "hawk_secret", ["autograph_authenticode_sha2"], "keyid"] + ["https://127.0.0.3", "hawk_user", "hawk_secret", ["autograph_authenticode_sha2"], "keyid"], + ["https://prod", "hawk_user", "hawk_secret", ["autograph_gpg"], "gpg"], + ["https://stage", "hawk_user", "hawk_secret", ["stage_autograph_gpg"], "gpg"] ] } From cadc641934f6bee44fb909083e6e57fa19bb4f8d Mon Sep 17 00:00:00 2001 From: Ben Hearsum Date: Mon, 2 Dec 2024 19:39:03 -0500 Subject: [PATCH 2/2] WIP: replace almost fully mocked script tests with more thorough ones --- signingscript/requirements/base.txt | 371 ++++++++-------- signingscript/requirements/test.in | 2 + signingscript/requirements/test.txt | 143 +++--- signingscript/tests/conftest.py | 2 + signingscript/tests/data/widevine.tar.gz | Bin 0 -> 187 bytes signingscript/tests/data/widevine.zip | Bin 0 -> 616 bytes .../tests/example_server_config.json | 8 +- signingscript/tests/test_script.py | 409 +++++++++++------- 8 files changed, 517 insertions(+), 418 deletions(-) create mode 100644 signingscript/tests/data/widevine.tar.gz create mode 100644 signingscript/tests/data/widevine.zip diff --git a/signingscript/requirements/base.txt b/signingscript/requirements/base.txt index 50a425691..4ae8c47d9 100644 --- a/signingscript/requirements/base.txt +++ b/signingscript/requirements/base.txt @@ -9,83 +9,83 @@ aiohappyeyeballs==2.4.4 \ --hash=sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745 \ --hash=sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8 # via aiohttp -aiohttp==3.11.10 \ - --hash=sha256:012f176945af138abc10c4a48743327a92b4ca9adc7a0e078077cdb5dbab7be0 \ - --hash=sha256:02c13415b5732fb6ee7ff64583a5e6ed1c57aa68f17d2bda79c04888dfdc2769 \ - --hash=sha256:03b6002e20938fc6ee0918c81d9e776bebccc84690e2b03ed132331cca065ee5 \ - --hash=sha256:04814571cb72d65a6899db6099e377ed00710bf2e3eafd2985166f2918beaf59 \ - --hash=sha256:0580f2e12de2138f34debcd5d88894786453a76e98febaf3e8fe5db62d01c9bf \ - --hash=sha256:06a8e2ee1cbac16fe61e51e0b0c269400e781b13bcfc33f5425912391a542985 \ - --hash=sha256:076bc454a7e6fd646bc82ea7f98296be0b1219b5e3ef8a488afbdd8e81fbac50 \ - --hash=sha256:0c9527819b29cd2b9f52033e7fb9ff08073df49b4799c89cb5754624ecd98299 \ - --hash=sha256:0dc49f42422163efb7e6f1df2636fe3db72713f6cd94688e339dbe33fe06d61d \ - --hash=sha256:14cdb5a9570be5a04eec2ace174a48ae85833c2aadc86de68f55541f66ce42ab \ - --hash=sha256:15fccaf62a4889527539ecb86834084ecf6e9ea70588efde86e8bc775e0e7542 \ - --hash=sha256:24213ba85a419103e641e55c27dc7ff03536c4873470c2478cce3311ba1eee7b \ - --hash=sha256:31d5093d3acd02b31c649d3a69bb072d539d4c7659b87caa4f6d2bcf57c2fa2b \ - --hash=sha256:3691ed7726fef54e928fe26344d930c0c8575bc968c3e239c2e1a04bd8cf7838 \ - --hash=sha256:386fbe79863eb564e9f3615b959e28b222259da0c48fd1be5929ac838bc65683 \ - --hash=sha256:3bbbfff4c679c64e6e23cb213f57cc2c9165c9a65d63717108a644eb5a7398df \ - --hash=sha256:3de34936eb1a647aa919655ff8d38b618e9f6b7f250cc19a57a4bf7fd2062b6d \ - --hash=sha256:40d1c7a7f750b5648642586ba7206999650208dbe5afbcc5284bcec6579c9b91 \ - --hash=sha256:44224d815853962f48fe124748227773acd9686eba6dc102578defd6fc99e8d9 \ - --hash=sha256:47ad15a65fb41c570cd0ad9a9ff8012489e68176e7207ec7b82a0940dddfd8be \ - --hash=sha256:482cafb7dc886bebeb6c9ba7925e03591a62ab34298ee70d3dd47ba966370d2c \ - --hash=sha256:49c7dbbc1a559ae14fc48387a115b7d4bbc84b4a2c3b9299c31696953c2a5219 \ - --hash=sha256:4b2c7ac59c5698a7a8207ba72d9e9c15b0fc484a560be0788b31312c2c5504e4 \ - --hash=sha256:4cca22a61b7fe45da8fc73c3443150c3608750bbe27641fc7558ec5117b27fdf \ - --hash=sha256:4cfce37f31f20800a6a6620ce2cdd6737b82e42e06e6e9bd1b36f546feb3c44f \ - --hash=sha256:502a1464ccbc800b4b1995b302efaf426e8763fadf185e933c2931df7db9a199 \ - --hash=sha256:53bf2097e05c2accc166c142a2090e4c6fd86581bde3fd9b2d3f9e93dda66ac1 \ - --hash=sha256:593c114a2221444f30749cc5e5f4012488f56bd14de2af44fe23e1e9894a9c60 \ - --hash=sha256:5d6958671b296febe7f5f859bea581a21c1d05430d1bbdcf2b393599b1cdce77 \ - --hash=sha256:5ef359ebc6949e3a34c65ce20230fae70920714367c63afd80ea0c2702902ccf \ - --hash=sha256:613e5169f8ae77b1933e42e418a95931fb4867b2991fc311430b15901ed67079 \ - --hash=sha256:61b9bae80ed1f338c42f57c16918853dc51775fb5cb61da70d590de14d8b5fb4 \ - --hash=sha256:6362cc6c23c08d18ddbf0e8c4d5159b5df74fea1a5278ff4f2c79aed3f4e9f46 \ - --hash=sha256:65a96e3e03300b41f261bbfd40dfdbf1c301e87eab7cd61c054b1f2e7c89b9e8 \ - --hash=sha256:65e55ca7debae8faaffee0ebb4b47a51b4075f01e9b641c31e554fd376595c6c \ - --hash=sha256:68386d78743e6570f054fe7949d6cb37ef2b672b4d3405ce91fafa996f7d9b4d \ - --hash=sha256:68ff6f48b51bd78ea92b31079817aff539f6c8fc80b6b8d6ca347d7c02384e33 \ - --hash=sha256:6ab29b8a0beb6f8eaf1e5049252cfe74adbaafd39ba91e10f18caeb0e99ffb34 \ - --hash=sha256:77ae58586930ee6b2b6f696c82cf8e78c8016ec4795c53e36718365f6959dc82 \ - --hash=sha256:77c4aa15a89847b9891abf97f3d4048f3c2d667e00f8a623c89ad2dccee6771b \ - --hash=sha256:78153314f26d5abef3239b4a9af20c229c6f3ecb97d4c1c01b22c4f87669820c \ - --hash=sha256:7852bbcb4d0d2f0c4d583f40c3bc750ee033265d80598d0f9cb6f372baa6b836 \ - --hash=sha256:7e97d622cb083e86f18317282084bc9fbf261801b0192c34fe4b1febd9f7ae69 \ - --hash=sha256:7f3dc0e330575f5b134918976a645e79adf333c0a1439dcf6899a80776c9ab39 \ - --hash=sha256:80886dac673ceaef499de2f393fc80bb4481a129e6cb29e624a12e3296cc088f \ - --hash=sha256:811f23b3351ca532af598405db1093f018edf81368e689d1b508c57dcc6b6a32 \ - --hash=sha256:86a5dfcc39309470bd7b68c591d84056d195428d5d2e0b5ccadfbaf25b026ebc \ - --hash=sha256:8b3cf2dc0f0690a33f2d2b2cb15db87a65f1c609f53c37e226f84edb08d10f52 \ - --hash=sha256:8cc5203b817b748adccb07f36390feb730b1bc5f56683445bfe924fc270b8816 \ - --hash=sha256:909af95a72cedbefe5596f0bdf3055740f96c1a4baa0dd11fd74ca4de0b4e3f1 \ - --hash=sha256:974d3a2cce5fcfa32f06b13ccc8f20c6ad9c51802bb7f829eae8a1845c4019ec \ - --hash=sha256:98283b94cc0e11c73acaf1c9698dea80c830ca476492c0fe2622bd931f34b487 \ - --hash=sha256:98f5635f7b74bcd4f6f72fcd85bea2154b323a9f05226a80bc7398d0c90763b0 \ - --hash=sha256:99b7920e7165be5a9e9a3a7f1b680f06f68ff0d0328ff4079e5163990d046767 \ - --hash=sha256:9bca390cb247dbfaec3c664326e034ef23882c3f3bfa5fbf0b56cad0320aaca5 \ - --hash=sha256:9e2e576caec5c6a6b93f41626c9c02fc87cd91538b81a3670b2e04452a63def6 \ - --hash=sha256:9ef405356ba989fb57f84cac66f7b0260772836191ccefbb987f414bcd2979d9 \ - --hash=sha256:a55d2ad345684e7c3dd2c20d2f9572e9e1d5446d57200ff630e6ede7612e307f \ - --hash=sha256:ab7485222db0959a87fbe8125e233b5a6f01f4400785b36e8a7878170d8c3138 \ - --hash=sha256:b1fc6b45010a8d0ff9e88f9f2418c6fd408c99c211257334aff41597ebece42e \ - --hash=sha256:b78f053a7ecfc35f0451d961dacdc671f4bcbc2f58241a7c820e9d82559844cf \ - --hash=sha256:b99acd4730ad1b196bfb03ee0803e4adac371ae8efa7e1cbc820200fc5ded109 \ - --hash=sha256:be2b516f56ea883a3e14dda17059716593526e10fb6303189aaf5503937db408 \ - --hash=sha256:beb39a6d60a709ae3fb3516a1581777e7e8b76933bb88c8f4420d875bb0267c6 \ - --hash=sha256:bf3d1a519a324af764a46da4115bdbd566b3c73fb793ffb97f9111dbc684fc4d \ - --hash=sha256:c49a76c1038c2dd116fa443eba26bbb8e6c37e924e2513574856de3b6516be99 \ - --hash=sha256:c5532f0441fc09c119e1dca18fbc0687e64fbeb45aa4d6a87211ceaee50a74c4 \ - --hash=sha256:c6b9e6d7e41656d78e37ce754813fa44b455c3d0d0dced2a047def7dc5570b74 \ - --hash=sha256:c87bf31b7fdab94ae3adbe4a48e711bfc5f89d21cf4c197e75561def39e223bc \ - --hash=sha256:cbad88a61fa743c5d283ad501b01c153820734118b65aee2bd7dbb735475ce0d \ - --hash=sha256:cf14627232dfa8730453752e9cdc210966490992234d77ff90bc8dc0dce361d5 \ - --hash=sha256:db1d0b28fcb7f1d35600150c3e4b490775251dea70f894bf15c678fdd84eda6a \ - --hash=sha256:ddf5f7d877615f6a1e75971bfa5ac88609af3b74796ff3e06879e8422729fd01 \ - --hash=sha256:e44a9a3c053b90c6f09b1bb4edd880959f5328cf63052503f892c41ea786d99f \ - --hash=sha256:efb15a17a12497685304b2d976cb4939e55137df7b09fa53f1b6a023f01fcb4e \ - --hash=sha256:fbbaea811a2bba171197b08eea288b9402faa2bab2ba0858eecdd0a4105753a3 +aiohttp==3.11.11 \ + --hash=sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f \ + --hash=sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33 \ + --hash=sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1 \ + --hash=sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665 \ + --hash=sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9 \ + --hash=sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e \ + --hash=sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350 \ + --hash=sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226 \ + --hash=sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d \ + --hash=sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a \ + --hash=sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6 \ + --hash=sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add \ + --hash=sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e \ + --hash=sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8 \ + --hash=sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03 \ + --hash=sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e \ + --hash=sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2 \ + --hash=sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1 \ + --hash=sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c \ + --hash=sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538 \ + --hash=sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5 \ + --hash=sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e \ + --hash=sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9 \ + --hash=sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3 \ + --hash=sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438 \ + --hash=sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12 \ + --hash=sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3 \ + --hash=sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853 \ + --hash=sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287 \ + --hash=sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2 \ + --hash=sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9 \ + --hash=sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c \ + --hash=sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55 \ + --hash=sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c \ + --hash=sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e \ + --hash=sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1 \ + --hash=sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c \ + --hash=sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194 \ + --hash=sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773 \ + --hash=sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e \ + --hash=sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1 \ + --hash=sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d \ + --hash=sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600 \ + --hash=sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34 \ + --hash=sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3 \ + --hash=sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8 \ + --hash=sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8 \ + --hash=sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2 \ + --hash=sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff \ + --hash=sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62 \ + --hash=sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac \ + --hash=sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef \ + --hash=sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28 \ + --hash=sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab \ + --hash=sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104 \ + --hash=sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76 \ + --hash=sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e \ + --hash=sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d \ + --hash=sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a \ + --hash=sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5 \ + --hash=sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745 \ + --hash=sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4 \ + --hash=sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99 \ + --hash=sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43 \ + --hash=sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da \ + --hash=sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231 \ + --hash=sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd \ + --hash=sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d \ + --hash=sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87 \ + --hash=sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886 \ + --hash=sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2 \ + --hash=sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b \ + --hash=sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d \ + --hash=sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f \ + --hash=sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204 \ + --hash=sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e # via # scriptworker # taskcluster @@ -208,116 +208,103 @@ chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ --hash=sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970 # via binaryornot -charset-normalizer==3.4.0 \ - --hash=sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621 \ - --hash=sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6 \ - --hash=sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8 \ - --hash=sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912 \ - --hash=sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c \ - --hash=sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b \ - --hash=sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d \ - --hash=sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d \ - --hash=sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95 \ - --hash=sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e \ - --hash=sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565 \ - --hash=sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64 \ - --hash=sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab \ - --hash=sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be \ - --hash=sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e \ - --hash=sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907 \ - --hash=sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0 \ - --hash=sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2 \ - --hash=sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62 \ - --hash=sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62 \ - --hash=sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23 \ - --hash=sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc \ - --hash=sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284 \ - --hash=sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca \ - --hash=sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455 \ - --hash=sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858 \ - --hash=sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b \ - --hash=sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594 \ - --hash=sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc \ - --hash=sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db \ - --hash=sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b \ - --hash=sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea \ - --hash=sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6 \ - --hash=sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920 \ - --hash=sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749 \ - --hash=sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7 \ - --hash=sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd \ - --hash=sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99 \ - --hash=sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242 \ - --hash=sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee \ - --hash=sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129 \ - --hash=sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2 \ - --hash=sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51 \ - --hash=sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee \ - --hash=sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8 \ - --hash=sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b \ - --hash=sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613 \ - --hash=sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742 \ - --hash=sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe \ - --hash=sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3 \ - --hash=sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5 \ - --hash=sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631 \ - --hash=sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7 \ - --hash=sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15 \ - --hash=sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c \ - --hash=sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea \ - --hash=sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417 \ - --hash=sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250 \ - --hash=sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88 \ - --hash=sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca \ - --hash=sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa \ - --hash=sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99 \ - --hash=sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149 \ - --hash=sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41 \ - --hash=sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574 \ - --hash=sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0 \ - --hash=sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f \ - --hash=sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d \ - --hash=sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654 \ - --hash=sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3 \ - --hash=sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19 \ - --hash=sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90 \ - --hash=sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578 \ - --hash=sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9 \ - --hash=sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1 \ - --hash=sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51 \ - --hash=sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719 \ - --hash=sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236 \ - --hash=sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a \ - --hash=sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c \ - --hash=sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade \ - --hash=sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944 \ - --hash=sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc \ - --hash=sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6 \ - --hash=sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6 \ - --hash=sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27 \ - --hash=sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6 \ - --hash=sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2 \ - --hash=sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12 \ - --hash=sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf \ - --hash=sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114 \ - --hash=sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7 \ - --hash=sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf \ - --hash=sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d \ - --hash=sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b \ - --hash=sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed \ - --hash=sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03 \ - --hash=sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4 \ - --hash=sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67 \ - --hash=sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365 \ - --hash=sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a \ - --hash=sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748 \ - --hash=sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b \ - --hash=sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079 \ - --hash=sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482 +charset-normalizer==3.4.1 \ + --hash=sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537 \ + --hash=sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa \ + --hash=sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a \ + --hash=sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294 \ + --hash=sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b \ + --hash=sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd \ + --hash=sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601 \ + --hash=sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd \ + --hash=sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4 \ + --hash=sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d \ + --hash=sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2 \ + --hash=sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313 \ + --hash=sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd \ + --hash=sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa \ + --hash=sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8 \ + --hash=sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1 \ + --hash=sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2 \ + --hash=sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496 \ + --hash=sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d \ + --hash=sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b \ + --hash=sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e \ + --hash=sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a \ + --hash=sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4 \ + --hash=sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca \ + --hash=sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78 \ + --hash=sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408 \ + --hash=sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5 \ + --hash=sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3 \ + --hash=sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f \ + --hash=sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a \ + --hash=sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765 \ + --hash=sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6 \ + --hash=sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146 \ + --hash=sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6 \ + --hash=sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9 \ + --hash=sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd \ + --hash=sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c \ + --hash=sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f \ + --hash=sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545 \ + --hash=sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176 \ + --hash=sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770 \ + --hash=sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824 \ + --hash=sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f \ + --hash=sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf \ + --hash=sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487 \ + --hash=sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d \ + --hash=sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd \ + --hash=sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b \ + --hash=sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534 \ + --hash=sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f \ + --hash=sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b \ + --hash=sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9 \ + --hash=sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd \ + --hash=sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125 \ + --hash=sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9 \ + --hash=sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de \ + --hash=sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11 \ + --hash=sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d \ + --hash=sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35 \ + --hash=sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f \ + --hash=sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda \ + --hash=sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7 \ + --hash=sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a \ + --hash=sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971 \ + --hash=sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8 \ + --hash=sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41 \ + --hash=sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d \ + --hash=sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f \ + --hash=sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757 \ + --hash=sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a \ + --hash=sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886 \ + --hash=sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77 \ + --hash=sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76 \ + --hash=sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247 \ + --hash=sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85 \ + --hash=sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb \ + --hash=sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7 \ + --hash=sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e \ + --hash=sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6 \ + --hash=sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037 \ + --hash=sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1 \ + --hash=sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e \ + --hash=sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807 \ + --hash=sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407 \ + --hash=sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c \ + --hash=sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12 \ + --hash=sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3 \ + --hash=sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089 \ + --hash=sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd \ + --hash=sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e \ + --hash=sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00 \ + --hash=sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616 # via requests -click==8.1.7 \ - --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ - --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de +click==8.1.8 \ + --hash=sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2 \ + --hash=sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a # via # cookiecutter # mar @@ -482,9 +469,9 @@ immutabledict==4.2.1 \ --hash=sha256:c56a26ced38c236f79e74af3ccce53772827cef5c3bce7cab33ff2060f756373 \ --hash=sha256:d91017248981c72eb66c8ff9834e99c2f53562346f23e7f51e7a5ebcf66a3bcc # via scriptworker -jinja2==3.1.4 \ - --hash=sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369 \ - --hash=sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d +jinja2==3.1.5 \ + --hash=sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb \ + --hash=sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb # via cookiecutter json-e==4.8.0 \ --hash=sha256:51ead93962912d701c6f1a6a0b27cc34bb2cb8397a82affd8adb2401898e27ea \ @@ -1044,9 +1031,9 @@ uritemplate==4.1.1 \ --hash=sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0 \ --hash=sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e # via github3-py -urllib3==2.2.3 \ - --hash=sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac \ - --hash=sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9 +urllib3==2.3.0 \ + --hash=sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df \ + --hash=sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d # via requests voluptuous==0.15.2 \ --hash=sha256:016348bc7788a9af9520b1764ebd4de0df41fe2138ebe9e06fa036bf86a65566 \ diff --git a/signingscript/requirements/test.in b/signingscript/requirements/test.in index 8a223e176..97c534f1d 100644 --- a/signingscript/requirements/test.in +++ b/signingscript/requirements/test.in @@ -1,7 +1,9 @@ -r base.in +aioresponses mock pytest +pytest-aioresponses pytest-asyncio>=0.6.0 pytest-cov pytest-mock diff --git a/signingscript/requirements/test.txt b/signingscript/requirements/test.txt index e24cd7763..2220b9dfc 100644 --- a/signingscript/requirements/test.txt +++ b/signingscript/requirements/test.txt @@ -1,4 +1,4 @@ -# SHA1:6511f5b8fa7f1c14fe6b51745e3bb5aa361d7d38 +# SHA1:1e49568040729c0c3b50aa7de3431c2ce585ad16 # # This file is autogenerated by pip-compile-multi # To update, run: @@ -6,6 +6,12 @@ # pip-compile-multi # -r base.txt +aioresponses==0.7.7 \ + --hash=sha256:66292f1d5c94a3cb984f3336d806446042adb17347d3089f2d3962dd6e5ba55a \ + --hash=sha256:6975f31fe5e7f2113a41bd387221f31854f285ecbc05527272cd8ba4c50764a3 + # via + # -r requirements/test.in + # pytest-aioresponses build==1.2.2.post1 \ --hash=sha256:1d61c0887fa860c01971625baae8bdd338e517b836a2f70dd1f7aa3a6b2fc5b5 \ --hash=sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7 @@ -16,69 +22,69 @@ check-manifest==0.50 \ --hash=sha256:6ab3e3aa72a008da3314b432f4c768c9647b4d6d8032f9e1a4672a572118e48c \ --hash=sha256:d300f9f292986aa1a30424af44eb45c5644e0a810e392e62d553b24bb3393494 # via -r requirements/test.in -coverage[toml]==7.6.9 \ - --hash=sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4 \ - --hash=sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c \ - --hash=sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f \ - --hash=sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b \ - --hash=sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6 \ - --hash=sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae \ - --hash=sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692 \ - --hash=sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4 \ - --hash=sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4 \ - --hash=sha256:35371f8438028fdccfaf3570b31d98e8d9eda8bb1d6ab9473f5a390969e98717 \ - --hash=sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d \ - --hash=sha256:41ff7b0da5af71a51b53f501a3bac65fb0ec311ebed1632e58fc6107f03b9198 \ - --hash=sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1 \ - --hash=sha256:44349150f6811b44b25574839b39ae35291f6496eb795b7366fef3bd3cf112d3 \ - --hash=sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb \ - --hash=sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d \ - --hash=sha256:4e12ae8cc979cf83d258acb5e1f1cf2f3f83524d1564a49d20b8bec14b637f08 \ - --hash=sha256:592ac539812e9b46046620341498caf09ca21023c41c893e1eb9dbda00a70cbf \ - --hash=sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b \ - --hash=sha256:608a7fd78c67bee8936378299a6cb9f5149bb80238c7a566fc3e6717a4e68710 \ - --hash=sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c \ - --hash=sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae \ - --hash=sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077 \ - --hash=sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00 \ - --hash=sha256:85d9636f72e8991a1706b2b55b06c27545448baf9f6dbf51c4004609aacd7dcb \ - --hash=sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664 \ - --hash=sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014 \ - --hash=sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9 \ - --hash=sha256:8e3c3e38930cfb729cb8137d7f055e5a473ddaf1217966aa6238c88bd9fd50e6 \ - --hash=sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e \ - --hash=sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9 \ - --hash=sha256:96d636c77af18b5cb664ddf12dab9b15a0cfe9c0bde715da38698c8cea748bfa \ - --hash=sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611 \ - --hash=sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b \ - --hash=sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a \ - --hash=sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8 \ - --hash=sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030 \ - --hash=sha256:a27801adef24cc30871da98a105f77995e13a25a505a0161911f6aafbd66e678 \ - --hash=sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015 \ - --hash=sha256:adb697c0bd35100dc690de83154627fbab1f4f3c0386df266dded865fc50a902 \ - --hash=sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97 \ - --hash=sha256:b9389a429e0e5142e69d5bf4a435dd688c14478a19bb901735cdf75e57b13845 \ - --hash=sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419 \ - --hash=sha256:bb5555cff66c4d3d6213a296b360f9e1a8e323e74e0426b6c10ed7f4d021e464 \ - --hash=sha256:be57b6d56e49c2739cdf776839a92330e933dd5e5d929966fbbd380c77f060be \ - --hash=sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9 \ - --hash=sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7 \ - --hash=sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be \ - --hash=sha256:d75cded8a3cff93da9edc31446872d2997e327921d8eed86641efafd350e1df1 \ - --hash=sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba \ - --hash=sha256:d891c136b5b310d0e702e186d70cd16d1119ea8927347045124cb286b29297e5 \ - --hash=sha256:db1dab894cc139f67822a92910466531de5ea6034ddfd2b11c0d4c6257168073 \ - --hash=sha256:e28bf44afa2b187cc9f41749138a64435bf340adfcacb5b2290c070ce99839d4 \ - --hash=sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a \ - --hash=sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a \ - --hash=sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3 \ - --hash=sha256:f1592791f8204ae9166de22ba7e6705fa4ebd02936c09436a1bb85aabca3e599 \ - --hash=sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0 \ - --hash=sha256:f3ca78518bc6bc92828cd11867b121891d75cae4ea9e908d72030609b996db1b \ - --hash=sha256:f7b15f589593110ae767ce997775d645b47e5cbbf54fd322f8ebea6277466cec \ - --hash=sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1 \ - --hash=sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3 +coverage[toml]==7.6.10 \ + --hash=sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9 \ + --hash=sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f \ + --hash=sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273 \ + --hash=sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994 \ + --hash=sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e \ + --hash=sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50 \ + --hash=sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e \ + --hash=sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e \ + --hash=sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c \ + --hash=sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853 \ + --hash=sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8 \ + --hash=sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8 \ + --hash=sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe \ + --hash=sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165 \ + --hash=sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb \ + --hash=sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59 \ + --hash=sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609 \ + --hash=sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18 \ + --hash=sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098 \ + --hash=sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd \ + --hash=sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3 \ + --hash=sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43 \ + --hash=sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d \ + --hash=sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359 \ + --hash=sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90 \ + --hash=sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78 \ + --hash=sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a \ + --hash=sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99 \ + --hash=sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988 \ + --hash=sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2 \ + --hash=sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0 \ + --hash=sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694 \ + --hash=sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377 \ + --hash=sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d \ + --hash=sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23 \ + --hash=sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312 \ + --hash=sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf \ + --hash=sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6 \ + --hash=sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b \ + --hash=sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c \ + --hash=sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690 \ + --hash=sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a \ + --hash=sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f \ + --hash=sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4 \ + --hash=sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25 \ + --hash=sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd \ + --hash=sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852 \ + --hash=sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0 \ + --hash=sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244 \ + --hash=sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315 \ + --hash=sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078 \ + --hash=sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0 \ + --hash=sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27 \ + --hash=sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132 \ + --hash=sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5 \ + --hash=sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247 \ + --hash=sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022 \ + --hash=sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b \ + --hash=sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3 \ + --hash=sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18 \ + --hash=sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5 \ + --hash=sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f # via pytest-cov iniconfig==2.0.0 \ --hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \ @@ -111,13 +117,20 @@ pytest==8.3.4 \ --hash=sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761 # via # -r requirements/test.in + # pytest-aioresponses # pytest-asyncio # pytest-cov # pytest-mock +pytest-aioresponses==0.2.0 \ + --hash=sha256:1a78d1eb76e1bffe7adc83a1bad0d48c373b41289367ae1f5e7ec0fceb60a04d \ + --hash=sha256:61cced206857cb4e7aab10b61600527f505c358d046e7d3ad3ae09455d02d937 + # via -r requirements/test.in pytest-asyncio==0.25.0 \ --hash=sha256:8c0610303c9e0442a5db8604505fc0f545456ba1528824842b37b4a626cbf609 \ --hash=sha256:db5432d18eac6b7e28b46dcd9b69921b55c3b1086e85febfe04e70b18d9e81b3 - # via -r requirements/test.in + # via + # -r requirements/test.in + # pytest-aioresponses pytest-cov==6.0.0 \ --hash=sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35 \ --hash=sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0 diff --git a/signingscript/tests/conftest.py b/signingscript/tests/conftest.py index 9ece4a428..3707928bd 100644 --- a/signingscript/tests/conftest.py +++ b/signingscript/tests/conftest.py @@ -20,6 +20,7 @@ def read_file(path): SERVER_CONFIG_PATH = os.path.join(os.path.dirname(__file__), "example_server_config.json") APPLE_CONFIG_PATH = os.path.join(os.path.dirname(__file__), "example_apple_notarization_config.json") GPG_PUBKEY = os.path.join(os.path.dirname(__file__), "data", "gpg_testkey.asc") +WIDEVINE_CERT = os.path.join(os.path.dirname(__file__), "data", "windows.crt") DEFAULT_SCOPE_PREFIX = "project:releng:signing:" TEST_CERT_TYPE = f"{DEFAULT_SCOPE_PREFIX}cert:dep-signing" TEST_DATA_DIR = os.path.join(os.path.dirname(__file__), "data") @@ -57,6 +58,7 @@ def context(tmpdir): context.config["taskcluster_scope_prefixes"] = [DEFAULT_SCOPE_PREFIX] context.config["apple_notarization_configs"] = APPLE_CONFIG_PATH context.config["gpg_pubkey"] = GPG_PUBKEY + context.config["widevine_cert"] = WIDEVINE_CERT context.autograph_configs = load_autograph_configs(SERVER_CONFIG_PATH) context.apple_credentials_path = "fakepath" mkdir(context.config["work_dir"]) diff --git a/signingscript/tests/data/widevine.tar.gz b/signingscript/tests/data/widevine.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7236c774e45ce7c9771d735d3cdd039c3263537d GIT binary patch literal 187 zcmb2|=3oE==C_ycay2VRG$iUTmA(-WynCM5Hp^d!xypWO-$+nTE=@3~m_PZw!$aY? zHO^m3{|jiIY%NZkyK2Ly;(eT{T{h*HGNUK6T+|!=rtF|MnKn`se=Qw%(lgsh4DL|ISw58uNeu)oK6SB^Is! lRhIGR$>g^;uEyV7TAwHSml5JZFlkoFWOiejH-iQP0{~?ZSmOWy literal 0 HcmV?d00001 diff --git a/signingscript/tests/data/widevine.zip b/signingscript/tests/data/widevine.zip new file mode 100644 index 0000000000000000000000000000000000000000..90531da5195449a7638409a6a3130d285505c8bf GIT binary patch literal 616 zcmWIWW@h1H0D)&!vm?O_D8bGk!;qF)l$w@b5gNkDz`UL(KOKZiE4UdLSza(RFo1~w zoCXL04JgPdP0!5JP0r6NNzBYkEh5gOMLn2K$| zic*vFa|?1(OH#px@B$40VGKhUndF#p1&IVagtjz-nD78%g#-`@h6ykr8|DZ!3^T9@ zn~E7!$fkA!O@#*>&@illhVU str: + """Returns the base64-encoded version of a string of the given length + as a string.""" + # Make a string of the required length + input_str = "{:<" + str(length) + "}" + input_str = input_str.format("A") + # Encode it into bytes, because that's what b64encode requires + bytestr = input_str.encode() + # base64 encode it + encoded = base64.b64encode(bytestr) + # and finally, convert the bytes that are returned back to a str + return encoded.decode("utf-8") @pytest.mark.asyncio -async def test_async_main_autograph(tmpdir, mocker): - formats = ["autograph_mar"] - mocker.patch.object(script, "copy_to_dir", new=noop_sync) - await async_main_helper(tmpdir, mocker, formats, {}) +@pytest.mark.parametrize( + "formats,server,keyid,files,method", + [ + pytest.param( + ["autograph_gpg"], + "https://prod", + "gpgkey", + ["target.tar.gz"], + "data", + id="autograph_gpg", + ), + pytest.param( + ["stage_autograph_gpg"], + "https://stage", + "gpgkey", + ["target.tar.gz"], + "data", + id="stage_autograph_gpg", + ), + # TODO: test for multiple files at once + # TODO: tests for multiple formats at once, like we do in prod + ], +) +async def test_signing(aioresponses, context, formats: list[str], server: str, keyid: str, files: list[str], method: str): + taskid = "faketask" + setup_artifacts(context.config["work_dir"], files, taskid) + context.task["payload"] = { + "upstreamArtifacts": [ + { + "formats": formats, + "paths": files, + "taskId": taskid, + "taskType": "build", + }, + ], + } + + url = yarl.URL(f"{server}/sign/{method}") + aioresponses.post( + url, + status=200, + payload=[ + { + "signature": "foo", + }, + ], + ) + + await async_main(context) + + assert len(aioresponses.requests) == 1 + reqs = aioresponses.requests[("POST", url)] + assert len(reqs) == 1 + assert_sign_data_req(reqs[0], keyid) @pytest.mark.asyncio -async def test_async_main_apple_notarization(tmpdir, mocker): - formats = ["apple_notarization"] - mocker.patch.object(script, "copy_to_dir", new=noop_sync) - await async_main_helper(tmpdir, mocker, formats) +@pytest.mark.parametrize( + "formats,server,keyid,files,method", + [ + pytest.param( + ["widevine"], + "https://prod", + "widevinekey", + ["widevine.tar.gz"], + "hash", + id="widevine", + ), + pytest.param( + ["stage_widevine"], + "https://stage", + "widevinekey", + ["widevine.zip"], + "hash", + id="stage_widevine", + ), + # TODO: test for multiple files at once + # TODO: tests for multiple formats at once, like we do in prod + ], +) +async def test_widevine_signing(mocker, aioresponses, context, formats: list[str], server: str, keyid: str, files: list[str], method: str): + taskid = "faketask" + setup_artifacts(context.config["work_dir"], files, taskid) + context.task["payload"] = { + "upstreamArtifacts": [ + { + "formats": formats, + "paths": files, + "taskId": taskid, + "taskType": "build", + }, + ], + } + + url = yarl.URL(f"{server}/sign/{method}") + # two calls because there are two widevine signing files + # in our test files + for _ in range(0, 2): + aioresponses.post( + url, + status=200, + payload=[ + { + "signature": base64.b64encode(b"foo").decode(), + }, + ], + ) + + class FakeWidevine(object): + def generate_widevine_hash(self, *args, **kwargs): + return b"blah" + + def generate_widevine_signature(self, *args, **kwargs): + return b"blah" + + mocker.patch.object(sign, "widevine", FakeWidevine) + + await async_main(context) + + assert len(aioresponses.requests) == 1 + reqs = aioresponses.requests[("POST", url)] + assert len(reqs) == 2 + assert_sign_data_req(reqs[0], keyid) + assert_sign_data_req(reqs[1], keyid) @pytest.mark.asyncio -async def test_async_main_apple_notarization_stacked(tmpdir, mocker): - formats = ["apple_notarization_stacked"] - mocker.patch.object(script, "copy_to_dir", new=noop_sync) - await async_main_helper(tmpdir, mocker, formats) - +@pytest.mark.parametrize( + "formats,server", + [ + pytest.param( + ["autograph_gpg"], + "https://prod", + id="autograph_gpg", + ), + ], +) +async def test_gpg_signing_fail(aioresponses, context, formats: list[str], server: str): + taskid = "faketask" + setup_artifacts(context.config["work_dir"], ["target.tar.gz"], taskid) + context.task["payload"] = { + "upstreamArtifacts": [ + { + "formats": formats, + "paths": ["target.tar.gz"], + "taskId": taskid, + "taskType": "build", + }, + ], + } + + url = yarl.URL(f"{server}/sign/data") + # we have 3 hardcoded retries + # TODO: we should remove sleep time for retries during tests + for _ in range(0, 3): + aioresponses.post( + url, + status=400, + ) -@pytest.mark.asyncio -async def test_async_main_apple_notarization_stacked_mixed_fail(tmpdir, mocker): - formats = ["autograph_mar", "apple_notarization_stacked"] - mocker.patch.object(script, "copy_to_dir", new=noop_sync) - with pytest.raises(SigningScriptError): - await async_main_helper(tmpdir, mocker, formats) - - -@pytest.mark.asyncio -async def test_async_main_apple_notarization_no_config(tmpdir, mocker): - formats = ["apple_notarization"] try: - await async_main_helper(tmpdir, mocker, formats, {"apple_notarization_configs": None}) - except Exception as e: - assert e.args[0] == "Apple notarization is enabled but apple_notarization_configs is not defined" + await async_main(context) + assert False, "should've raised ClientResponseError" + except ClientResponseError: + pass @pytest.mark.asyncio -@pytest.mark.parametrize("use_comment", (True, False)) -async def test_async_main_autograph_authenticode(tmpdir, mocker, use_comment): - formats = ["autograph_authenticode_sha2"] - mocker.patch.object(script, "copy_to_dir", new=noop_sync) - await async_main_helper(tmpdir, mocker, formats, {}, "autograph", use_comment=use_comment) - - -def test_get_default_config(): - parent_dir = os.path.dirname(os.getcwd()) - c = script.get_default_config() - assert c["work_dir"] == os.path.join(parent_dir, "work_dir") - - -def test_main(monkeypatch): - sync_main_mock = MagicMock() - monkeypatch.setattr(scriptworker.client, "sync_main", sync_main_mock) - script.main() - sync_main_mock.asset_called_once_with(script.async_main, default_config=script.get_default_config()) - - -@pytest.mark.asyncio -async def test_async_main_widevine_no_cert_defined(tmpdir, mocker): - formats = ["autograph_widevine"] - with pytest.raises(Exception) as e: - await async_main_helper(tmpdir, mocker, formats) - assert e.args[0] == "Widevine format is enabled, but widevine_cert is not defined" - - -@pytest.mark.asyncio -async def test_async_main_widevine(tmp_path, mocker): - mocker.patch.object(script, "copy_to_dir") - tmp_cert = tmp_path / "widevine.crt" - formats = ["autograph_widevine"] - await async_main_helper(tmp_path, mocker, formats, {"widevine_cert": tmp_cert}) - - -def test_setup_apple_notarization_credentials_fail_scope(context, mocker): - mocker.patch.object(script, "load_apple_notarization_configs", lambda _: {"invalidscope": "foobar"}) - with pytest.raises(SigningScriptError, match=r"Credentials not found for scope.*"): - script.setup_apple_notarization_credentials(context) - - mocker.patch.object(script, "load_apple_notarization_configs", lambda _: {TEST_CERT_TYPE: ["one", "too many"]}) - with pytest.raises(SigningScriptError, match=r"There should only be 1 scope credential.*"): - script.setup_apple_notarization_credentials(context) - - -def test_setup_apple_notarization_credentials_exit_early(context, mocker): - mocker.patch.object(os.path, "exists", lambda _: True) - script.setup_apple_notarization_credentials(context) - - -def test_setup_apple_notarization_credentials(context, mocker): - mocker.patch.object(builtins, "open", lambda *_: MagicMock()) - fake_key = AppleNotarization("1", "2", "3") - mocker.patch.object(script, "load_apple_notarization_configs", lambda _: {TEST_CERT_TYPE: [fake_key]}) - script.setup_apple_notarization_credentials(context) +@pytest.mark.parametrize( + "formats,server,keyid", + [ + pytest.param( + ["autograph_hash_only_mar384"], + "https://prod", + "markey", + id="autograph_hash_only_mar384", + ), + pytest.param( + ["stage_autograph_hash_only_mar384"], + "https://stage", + "markey", + id="stage_autograph_hash_only_mar384", + ), + ], +) +async def test_mar_signing(mocker, aioresponses, context, formats: list[str], server: str, keyid: str): + taskid = "faketask" + setup_artifacts(context.config["work_dir"], ["partial1.mar"], taskid) + context.task["payload"] = { + "upstreamArtifacts": [ + { + "formats": formats, + "paths": ["partial1.mar"], + "taskId": taskid, + "taskType": "build", + }, + ], + } + + # Unfortunately, mocking `verify_mar_signature` cannot be avoided, because + # we can't make real MAR signatures in tests. + mocker.patch.object(sign, "verify_mar_signature", lambda *_: True) + + url = yarl.URL(f"{server}/sign/hash") + aioresponses.post( + url, + status=200, + payload=[ + { + "signature": make_base64_encoded_string(512), + } + ], + ) + + await async_main(context) + + assert len(aioresponses.requests) == 1 + reqs = aioresponses.requests[("POST", url)] + assert len(reqs) == 1 + assert_sign_hash_req(reqs[0], keyid)