From 1f841254b834c24d7ec0f5a746257927930361e9 Mon Sep 17 00:00:00 2001 From: Bert Blommers Date: Thu, 16 Nov 2023 07:09:54 -0100 Subject: [PATCH] Techdebt: Fix compatibility with botocore 1.32.1 (#7030) --- moto/core/responses.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/moto/core/responses.py b/moto/core/responses.py index 71dec337f..5d27e60bd 100644 --- a/moto/core/responses.py +++ b/moto/core/responses.py @@ -18,7 +18,7 @@ from moto.core.utils import ( method_names_from_class, params_sort_function, ) -from moto.utilities.utils import load_resource +from moto.utilities.utils import load_resource, load_resource_as_bytes from jinja2 import Environment, DictLoader, Template from typing import ( Dict, @@ -961,7 +961,12 @@ class AWSServiceSpec(object): """ def __init__(self, path: str): - spec = load_resource("botocore", path) + try: + spec = load_resource("botocore", path) + except FileNotFoundError: + # botocore >= 1.32.1 sends compressed files + compressed = load_resource_as_bytes("botocore", f"{path}.gz") + spec = json.loads(gzip_decompress(compressed).decode("utf-8")) self.metadata = spec["metadata"] self.operations = spec["operations"]