def test_get_policy_for_existent_bucket_with_prefix( self, mock_connection ): mock_data = '{"Version":"2012-10-17","Statement":[{"Action":["s3:GetBucketLocation"],"Effect":"Allow","Principal":{"AWS":["*"]},"Resource":["arn:aws:s3:::test-bucket"],"Sid":""},{"Action":["s3:GetBucketLocation"],"Effect":"Allow","Principal":{"AWS":"*"},"Resource":["arn:aws:s3:::test-bucket"],"Sid":""},{"Action":["s3:ListBucket"],"Condition":{"StringEquals":{"s3:prefix":["test-prefix-readonly"]}},"Effect":"Allow","Principal":{"AWS":"*"},"Resource":["arn:aws:s3:::test-bucket"],"Sid":""},{"Action":["s3:GetObject"],"Effect":"Allow","Principal":{"AWS":"*"},"Resource":["arn:aws:s3:::test-bucket/test-prefix-readonly*"],"Sid":""}]}' # NOQA mock_server = MockConnection() mock_connection.return_value = mock_server bucket_name = 'test-bucket' prefix_name = 'test-prefix-readonly' mock_server.mock_add_request( MockResponse( 'GET', 'https://localhost:9000/' + bucket_name + '/?policy=', {'User-Agent': _DEFAULT_USER_AGENT}, 200, content=mock_data ) ) client = Minio('localhost:9000') response = client.get_bucket_policy(bucket_name, prefix_name) eq_(response, Policy.READ_ONLY)
def test_get_policy_for_non_existent_bucket(self, mock_connection): mock_server = MockConnection() mock_connection.return_value = mock_server bucket_name = 'non-existent-bucket' mock_server.mock_add_request( MockResponse( 'GET', 'https://localhost:9000/' + bucket_name + '/?policy=', {'User-Agent': _DEFAULT_USER_AGENT}, 404, )) client = Minio('localhost:9000') client.get_bucket_policy(bucket_name)
def test_get_policy_for_existent_bucket(self, mock_connection): mock_data = { "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::test-bucket" }, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::test-bucket" }, { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::test-bucket/*" }] } mock_server = MockConnection() mock_connection.return_value = mock_server bucket_name = 'test-bucket' mock_server.mock_add_request( MockResponse('GET', 'https://localhost:9000/' + bucket_name + '/?policy=', {'User-Agent': _DEFAULT_USER_AGENT}, 200, content=mock_data)) client = Minio('localhost:9000') response = client.get_bucket_policy(bucket_name) eq_(response, mock_data)
def test_get_policy_for_non_existent_bucket(self, mock_connection): mock_server = MockConnection() mock_connection.return_value = mock_server bucket_name = 'non-existent-bucket' error = ("<ErrorResponse>" "<Code>NoSuchBucket</Code>" "<Message>No such bucket</Message><RequestId>1234</RequestId>" "<Resource>/non-existent-bucket</Resource>" "<HostId>abcd</HostId>" "<BucketName>non-existent-bucket</BucketName>" "</ErrorResponse>") mock_server.mock_add_request( MockResponse('GET', 'https://localhost:9000/' + bucket_name + '?policy=', {'User-Agent': _DEFAULT_USER_AGENT}, 404, response_headers={"Content-Type": "application/xml"}, content=error.encode())) client = Minio('localhost:9000') client.get_bucket_policy(bucket_name)