示例#1
0
    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)
示例#4
0
 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)