Skip to content

Commit

Permalink
Prevent override of region when using endpoint_url
Browse files Browse the repository at this point in the history
  • Loading branch information
kyleknap committed Feb 18, 2015
1 parent 6a63e18 commit 1a25222
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
9 changes: 6 additions & 3 deletions botocore/endpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,12 @@ def create_endpoint(self, service_model, region_name=None, is_secure=True,
raise
# We only support the credentialScope.region in the properties
# bag right now, so if it's available, it will override the
# provided region name.
region_name_override = endpoint['properties'].get(
'credentialScope', {}).get('region')
# provided region name if an endpoint url was not manually set.
# If a endpoint url was specified, the user must specify a region.
region_name_override = None
if endpoint_url is None:
region_name_override = endpoint['properties'].get(
'credentialScope', {}).get('region')
if signature_version is NOT_SET:
signature_version = service_model.signature_version
if 'signatureVersion' in endpoint['properties']:
Expand Down
17 changes: 17 additions & 0 deletions tests/unit/test_endpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,23 @@ def test_endpoint_resolver_uses_credential_scope(self):
endpoint = creator.create_endpoint(self.service_model)
self.assertEqual(endpoint.region_name, 'us-east-1')

def test_endpoint_resolver_no_uses_credential_scope_with_endpoint_url(self):
resolver = Mock()
resolver_region_override = 'us-east-1'
resolver.construct_endpoint.return_value = {
'uri': 'https://endpoint.url',
'properties': {
'credentialScope': {
'region': resolver_region_override,
}
}
}
original_region_name = 'us-west-2'
creator = EndpointCreator(resolver, original_region_name,
Mock(), 'user-agent')
endpoint = creator.create_endpoint(self.service_model, endpoint_url='https://foo')
self.assertEqual(endpoint.region_name, 'us-west-2')


class TestAWSSession(unittest.TestCase):
def test_auth_header_preserved_from_s3_redirects(self):
Expand Down

0 comments on commit 1a25222

Please sign in to comment.