def test_virtual_host_style_for_make_bucket(self): request = AWSRequest(method='PUT', headers={}, url='https://foo.amazonaws.com/bucket') region_name = 'us-west-2' signature_version = 's3' switch_to_virtual_host_style(request=request, signature_version=signature_version, region_name=region_name) self.assertEqual(request.url, 'https://bucket.foo.amazonaws.com/')
def test_throws_invalid_dns_name_error(self): request = AWSRequest( method='PUT', headers={}, url='https://foo.amazonaws.com/mybucket.foo/key.txt' ) region_name = 'us-west-2' signature_version = 's3' with self.assertRaises(InvalidDNSNameError): switch_to_virtual_host_style( request=request, signature_version=signature_version, region_name=region_name)
def test_throws_invalid_dns_name_error(self): request = AWSRequest( method='PUT', headers={}, url='https://foo.amazonaws.com/mybucket.foo/key.txt') region_name = 'us-west-2' signature_version = 's3' with self.assertRaises(InvalidDNSNameError): switch_to_virtual_host_style(request=request, signature_version=signature_version, region_name=region_name)
def test_is_unaffected_by_sigv4(self): request = AWSRequest( method='PUT', headers={}, url='https://foo.amazonaws.com/bucket/key.txt' ) region_name = 'us-west-2' signature_version = 's3v4' switch_to_virtual_host_style( request=request, signature_version=signature_version, region_name=region_name, default_endpoint_url='s3.amazonaws.com') self.assertEqual(request.url, 'https://bucket.s3.amazonaws.com/key.txt')
def test_virtual_host_style_for_make_bucket(self): request = AWSRequest( method='PUT', headers={}, url='https://foo.amazonaws.com/bucket' ) region_name = 'us-west-2' signature_version = 's3' switch_to_virtual_host_style( request=request, signature_version=signature_version, region_name=region_name) self.assertEqual(request.url, 'https://bucket.foo.amazonaws.com/')
def test_is_unaffected_by_sigv4(self): request = AWSRequest(method='PUT', headers={}, url='https://foo.amazonaws.com/bucket/key.txt') region_name = 'us-west-2' signature_version = 's3v4' switch_to_virtual_host_style(request=request, signature_version=signature_version, region_name=region_name, default_endpoint_url='s3.amazonaws.com') self.assertEqual(request.url, 'https://bucket.s3.amazonaws.com/key.txt')
def test_virtual_host_style_not_used_for_list_buckets(self): original_url = 'https://foo.amazonaws.com/' request = AWSRequest( method='GET', headers={}, url=original_url, ) signature_version = 's3' region_name = 'us-west-2' switch_to_virtual_host_style( request=request, signature_version=signature_version, region_name=region_name) # The request url should not have been modified because this is # a request for GetBucketLocation. self.assertEqual(request.url, original_url)
def test_virtual_host_style_not_used_for_list_buckets(self): original_url = 'https://foo.amazonaws.com/' request = AWSRequest( method='GET', headers={}, url=original_url, ) signature_version = 's3' region_name = 'us-west-2' switch_to_virtual_host_style(request=request, signature_version=signature_version, region_name=region_name) # The request url should not have been modified because this is # a request for GetBucketLocation. self.assertEqual(request.url, original_url)
def test_fix_s3_host_only_applied_once(self): request = AWSRequest(method='PUT', headers={}, url='https://foo.amazonaws.com/bucket/key.txt') region_name = 'us-west-2' signature_version = 's3' switch_to_virtual_host_style(request=request, signature_version=signature_version, region_name=region_name) # Calling the handler again should not affect the end result: switch_to_virtual_host_style(request=request, signature_version=signature_version, region_name=region_name) self.assertEqual(request.url, 'https://bucket.foo.amazonaws.com/key.txt') # This was a bug previously. We want to make sure that # calling fix_s3_host() again does not alter the auth_path. # Otherwise we'll get signature errors. self.assertEqual(request.auth_path, '/bucket/key.txt')
def test_fix_s3_host_only_applied_once(self): request = AWSRequest( method='PUT', headers={}, url='https://foo.amazonaws.com/bucket/key.txt' ) region_name = 'us-west-2' signature_version = 's3' switch_to_virtual_host_style( request=request, signature_version=signature_version, region_name=region_name) # Calling the handler again should not affect the end result: switch_to_virtual_host_style( request=request, signature_version=signature_version, region_name=region_name) self.assertEqual(request.url, 'https://bucket.foo.amazonaws.com/key.txt') # This was a bug previously. We want to make sure that # calling fix_s3_host() again does not alter the auth_path. # Otherwise we'll get signature errors. self.assertEqual(request.auth_path, '/bucket/key.txt')