diff --git a/tests/__init__.py b/tests/__init__.py index 3bd5a22a28..33307c0081 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -40,6 +40,16 @@ _LOADER = botocore.loaders.Loader() +def _all_services(): + session = botocore.session.Session() + service_names = session.get_available_services() + return [session.get_service_model(name) for name in service_names] + + +# Only compute our service models once +ALL_SERVICES = _all_services() + + def skip_unless_has_memory_collection(cls): """Class decorator to skip tests that require memory collection. @@ -575,3 +585,16 @@ def __enter__(self, *args, **kwargs): def __exit__(self, *args, **kwargs): self.datetime_patcher.stop() + + +def patch_load_service_model( + session, monkeypatch, service_model_json, ruleset_json +): + def mock_load_service_model(service_name, type_name, api_version=None): + if type_name == 'service-2': + return service_model_json + if type_name == 'endpoint-rule-set-1': + return ruleset_json + + loader = session.get_component('data_loader') + monkeypatch.setattr(loader, 'load_service_model', mock_load_service_model) diff --git a/tests/functional/test_context_params.py b/tests/functional/test_context_params.py index d72b65b265..03eb9ae965 100644 --- a/tests/functional/test_context_params.py +++ b/tests/functional/test_context_params.py @@ -14,7 +14,7 @@ import pytest from botocore.config import Config -from tests import ClientHTTPStubber, mock +from tests import ClientHTTPStubber, mock, patch_load_service_model # fake rulesets compatible with all fake service models below FAKE_RULESET_TEMPLATE = { @@ -226,19 +226,6 @@ } -def patch_load_service_model( - session, monkeypatch, service_model_json, ruleset_json -): - def mock_load_service_model(service_name, type_name, api_version=None): - if type_name == 'service-2': - return service_model_json - if type_name == 'endpoint-rule-set-1': - return ruleset_json - - loader = session.get_component('data_loader') - monkeypatch.setattr(loader, 'load_service_model', mock_load_service_model) - - @pytest.mark.parametrize( 'service_name,service_model,ruleset,call_should_include_ctx_param', [ diff --git a/tests/functional/test_response_shadowing.py b/tests/functional/test_response_shadowing.py index 708e989231..a5cbaac047 100644 --- a/tests/functional/test_response_shadowing.py +++ b/tests/functional/test_response_shadowing.py @@ -12,17 +12,7 @@ # language governing permissions and limitations under the License. import pytest -from botocore.session import Session - - -def _all_services(): - session = Session() - service_names = session.get_available_services() - return [session.get_service_model(name) for name in service_names] - - -# Only compute our service models once -ALL_SERVICES = _all_services() +from tests import ALL_SERVICES def _all_service_error_shapes():