Skip to content

Commit 447a52f

Browse files
authored
[v2] Modifies botocore tests to use the defaults created in configprovider.py (#9209)
1 parent 6c42ba1 commit 447a52f

File tree

6 files changed

+39
-33
lines changed

6 files changed

+39
-33
lines changed

awscli/botocore/args.py

+17-18
Original file line numberDiff line numberDiff line change
@@ -398,25 +398,24 @@ def _compute_request_compression_config(self, config_kwargs):
398398
def _validate_min_compression_size(self, min_size):
399399
min_allowed_min_size = 1
400400
max_allowed_min_size = 1048576
401-
if min_size is not None:
402-
error_msg_base = (
403-
f'Invalid value "{min_size}" for '
404-
'request_min_compression_size_bytes.'
401+
error_msg_base = (
402+
f'Invalid value "{min_size}" for '
403+
'request_min_compression_size_bytes.'
404+
)
405+
try:
406+
min_size = int(min_size)
407+
except (ValueError, TypeError):
408+
msg = (
409+
f'{error_msg_base} Value must be an integer. '
410+
f'Received {type(min_size)} instead.'
405411
)
406-
try:
407-
min_size = int(min_size)
408-
except (ValueError, TypeError):
409-
msg = (
410-
f'{error_msg_base} Value must be an integer. '
411-
f'Received {type(min_size)} instead.'
412-
)
413-
raise botocore.exceptions.InvalidConfigError(error_msg=msg)
414-
if not min_allowed_min_size <= min_size <= max_allowed_min_size:
415-
msg = (
416-
f'{error_msg_base} Value must be between '
417-
f'{min_allowed_min_size} and {max_allowed_min_size}.'
418-
)
419-
raise botocore.exceptions.InvalidConfigError(error_msg=msg)
412+
raise botocore.exceptions.InvalidConfigError(error_msg=msg)
413+
if not min_allowed_min_size <= min_size <= max_allowed_min_size:
414+
msg = (
415+
f'{error_msg_base} Value must be between '
416+
f'{min_allowed_min_size} and {max_allowed_min_size}.'
417+
)
418+
raise botocore.exceptions.InvalidConfigError(error_msg=msg)
420419

421420
return min_size
422421

tests/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
assert_url_equal, create_session, random_chars, temporary_file,
5858
patch_load_service_model, ALL_SERVICES, BaseEnvVar, BaseSessionTest,
5959
BaseClientDriverTest, StubbedSession, ClientHTTPStubber, SessionHTTPStubber,
60-
IntegerRefresher, FreezeTime,
60+
IntegerRefresher, FreezeTime, get_botocore_default_config_mapping
6161
)
6262
# S3transfer testing utilities that we want to preserve import statements for
6363
# in s3transfer specific tests.

tests/unit/botocore/docs/__init__.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
from botocore.docs.bcdoc.restdoc import DocumentStructure
1919

20-
from tests import mock, unittest
20+
from tests import get_botocore_default_config_mapping, mock, unittest
2121
from botocore.compat import OrderedDict
2222
from botocore.hooks import HierarchicalEmitter
2323
from botocore.model import ServiceModel, OperationModel
@@ -101,11 +101,12 @@ def load_service_mock(*args, **kwargs):
101101
'signatureVersions': ['v4']
102102
}
103103

104+
default_config_mapping = get_botocore_default_config_mapping()
104105
self.creator = ClientCreator(
105106
loader=self.loader, endpoint_resolver=endpoint_resolver,
106107
user_agent='user-agent', event_emitter=self.events,
107108
exceptions_factory=mock.Mock(),
108-
config_store=ConfigValueStore()
109+
config_store=ConfigValueStore(mapping=default_config_mapping)
109110
)
110111

111112
self.client = self.creator.create_client('myservice', 'us-east-1')

tests/unit/botocore/test_args.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import socket
1515

1616
import botocore.config
17-
from tests import mock, unittest
17+
from tests import get_botocore_default_config_mapping, mock, unittest
1818

1919
from botocore import args
2020
from botocore import exceptions
@@ -29,7 +29,8 @@
2929
class TestCreateClientArgs(unittest.TestCase):
3030
def setUp(self):
3131
self.event_emitter = mock.Mock(HierarchicalEmitter)
32-
self.config_store = ConfigValueStore()
32+
default_config_mapping = get_botocore_default_config_mapping()
33+
self.config_store = ConfigValueStore(mapping=default_config_mapping)
3334
user_agent_creator = UserAgentString(
3435
platform_name=None,
3536
platform_version=None,
@@ -321,11 +322,11 @@ def test_uses_client_config_over_config_store_max_attempts(self):
321322
)['client_config']
322323
self.assertEqual(config.retries['max_attempts'], 2)
323324

324-
def test_max_attempts_unset_if_retries_is_none(self):
325+
def test_max_attempts_expected_if_retries_is_none(self):
325326
config = self.call_get_client_args(
326327
client_config=Config(retries=None)
327328
)['client_config']
328-
self.assertEqual(config.retries, {'mode': 'standard'})
329+
self.assertEqual(config.retries, {'max_attempts': 3, 'mode': 'standard'})
329330

330331
def test_retry_mode_set_on_config_store(self):
331332
self.config_store.set_config_variable('retry_mode', 'standard')

tests/unit/botocore/test_client.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# language governing permissions and limitations under the License.
1313
import io
1414
import botocore.config
15-
from tests import mock, unittest
15+
from tests import get_botocore_default_config_mapping, mock, unittest
1616

1717
import botocore
1818
from botocore import utils
@@ -140,7 +140,8 @@ def load_service_mock(*args, **kwargs):
140140
}
141141
self.resolver.construct_endpoint.return_value = self.endpoint_data
142142
self.resolver.get_available_endpoints.return_value = ['us-west-2']
143-
self.config_store = ConfigValueStore()
143+
default_config_mapping = get_botocore_default_config_mapping()
144+
self.config_store = ConfigValueStore(mapping=default_config_mapping)
144145

145146
def tearDown(self):
146147
self.endpoint_creator_patch.stop()
@@ -872,13 +873,11 @@ def test_can_register_standard_retry_mode(self):
872873

873874
def test_can_register_standard_retry_mode_from_config_store(self):
874875
fake_env = {'AWS_RETRY_MODE': 'standard'}
875-
config_store = ConfigValueStore(
876-
mapping={
877-
'retry_mode': ChainProvider([
878-
EnvironmentProvider('AWS_RETRY_MODE', fake_env),
879-
])
880-
}
876+
default_config_mapping = get_botocore_default_config_mapping()
877+
default_config_mapping['retry_mode'] = ChainProvider(
878+
[EnvironmentProvider('AWS_RETRY_MODE', fake_env)]
881879
)
880+
config_store = ConfigValueStore(mapping=default_config_mapping)
882881
creator = self.create_client_creator(config_store=config_store)
883882
with mock.patch('botocore.client.standard') as standard:
884883
creator.create_client( 'myservice', 'us-west-2')

tests/utils/botocore/__init__.py

+6
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
from botocore.compat import parse_qs
4444
from botocore import utils
4545
from botocore import credentials
46+
from botocore.configprovider import create_botocore_default_config_mapping
4647
from botocore.stub import Stubber
4748

4849

@@ -104,6 +105,11 @@ def create_session(**kwargs):
104105
return session
105106

106107

108+
def get_botocore_default_config_mapping():
109+
session = botocore.session.get_session()
110+
return create_botocore_default_config_mapping(session)
111+
112+
107113
@contextlib.contextmanager
108114
def temporary_file(mode):
109115
"""This is a cross platform temporary file creation.

0 commit comments

Comments
 (0)