def test_remove_bucket_works(self, mock_connection): mock_data = ('<ListAllMyBucketsResult ' 'xmlns="http://s3.amazonaws.com/doc/2006-03-01/">' '<Buckets><Bucket><Name>hello</Name>' '<CreationDate>2015-06-22T23:07:43.240Z</CreationDate>' '</Bucket><Bucket><Name>world</Name>' '<CreationDate>2015-06-22T23:07:56.766Z</CreationDate>' '</Bucket></Buckets><Owner><ID>minio</ID>' '<DisplayName>minio</DisplayName></Owner>' '</ListAllMyBucketsResult>') mock_server = MockConnection() mock_connection.return_value = mock_server mock_server.mock_add_request( MockResponse('HEAD', 'http://localhost:9000/hello/', {'User-Agent': _DEFAULT_USER_AGENT}, 200)) mock_server.mock_add_request( MockResponse('DELETE', 'http://localhost:9000/hello/', {'User-Agent': _DEFAULT_USER_AGENT}, 204)) config = { 'HOSTNAME': 'localhost:9000', "AWS_ACCESS_KEY_ID": None, 'AWS_SECRET_ACCESS_KEY': None } service = MinioAdapter(config) service.remove_bucket('hello')
def test_bucket_exists_works(self, mock_connection): mock_server = MockConnection() mock_connection.return_value = mock_server mock_server.mock_add_request( MockResponse('HEAD', 'http://localhost:9000/hello/', {'User-Agent': _DEFAULT_USER_AGENT}, 200)) config = { 'HOSTNAME': 'localhost:9000', "AWS_ACCESS_KEY_ID": None, 'AWS_SECRET_ACCESS_KEY': None } client = MinioAdapter(config) result = client.bucket_exists('hello') self.assertEquals(True, result) mock_server.mock_add_request( MockResponse('HEAD', 'http://localhost:9000/goodbye/', {'User-Agent': _DEFAULT_USER_AGENT}, 404)) false_result = client.bucket_exists('goodbye') self.assertEquals(False, false_result)
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, )) config = { 'HOSTNAME': 'localhost:9000', "AWS_ACCESS_KEY_ID": None, 'AWS_SECRET_ACCESS_KEY': None, 'SECURE': True } service = MinioAdapter(config) service.get_policy(bucket_name)
def test_make_bucket_works(self, mock_connection): mock_server = MockConnection() mock_connection.return_value = mock_server mock_server.mock_add_request( MockResponse('PUT', 'http://localhost:9000/hello/', {'User-Agent': _DEFAULT_USER_AGENT}, 200)) config = { 'HOSTNAME': 'localhost:9000', "AWS_ACCESS_KEY_ID": None, 'AWS_SECRET_ACCESS_KEY': None } service = MinioAdapter(config)
def test_list_buckets_works(self, mock_connection): mock_data = ('<ListAllMyBucketsResult ' 'xmlns="http://s3.amazonaws.com/doc/2006-03-01/">' '<Buckets><Bucket><Name>hello</Name>' '<CreationDate>2015-06-22T23:07:43.240Z</CreationDate>' '</Bucket><Bucket><Name>world</Name>' '<CreationDate>2015-06-22T23:07:56.766Z</CreationDate>' '</Bucket></Buckets><Owner><ID>minio</ID>' '<DisplayName>minio</DisplayName></Owner>' '</ListAllMyBucketsResult>') mock_server = MockConnection() mock_connection.return_value = mock_server mock_server.mock_add_request( MockResponse('GET', 'http://localhost:9000/', {'User-Agent': _DEFAULT_USER_AGENT}, 200, content=mock_data)) config = { 'HOSTNAME': 'localhost:9000', "AWS_ACCESS_KEY_ID": None, 'AWS_SECRET_ACCESS_KEY': None } service = MinioAdapter(config) buckets = service.get_bucket_list() buckets_list = [] count = 0 for bucket in buckets: count += 1 buckets_list.append(bucket) self.assertEquals(2, count) self.assertEquals('hello', buckets_list[0].name) self.assertEquals(datetime(2015, 6, 22, 23, 7, 43, 240000, pytz.utc), buckets_list[0].creation_date) self.assertEquals('world', buckets_list[1].name) self.assertEquals(datetime(2015, 6, 22, 23, 7, 56, 766000, pytz.utc), buckets_list[1].creation_date)
def test_empty_list_buckets_works(self, mock_connection): mock_data = ('<ListAllMyBucketsResult ' 'xmlns="http://s3.amazonaws.com/doc/2006-03-01/">' '<Buckets></Buckets><Owner><ID>minio</ID><DisplayName>' 'minio</DisplayName></Owner></ListAllMyBucketsResult>') mock_server = MockConnection() mock_connection.return_value = mock_server mock_server.mock_add_request( MockResponse('GET', 'http://localhost:9000/', {'User-Agent': _DEFAULT_USER_AGENT}, 200, content=mock_data)) config = { 'HOSTNAME': 'localhost:9000', "AWS_ACCESS_KEY_ID": None, 'AWS_SECRET_ACCESS_KEY': None } service = MinioAdapter(config) buckets = service.get_bucket_list() count = 0 for bucket in buckets: count += 1 self.assertEquals(0, count)
def get_storage_adapter(): storage_type = settings.target_storage section = storage_type.upper() config = ConfigReader(section).read_config() return MinioAdapter(config)