Example #1
0
 def test_create_bucket_invalid_fields_scope(self):
     bucket_metadata = self.messages.Bucket(name=TEST_BUCKET)
     bucket_resource = gcs_api._bucket_resource_from_metadata(
         bucket_metadata)
     with self.assertRaises(ValueError):
         self.gcs_client.create_bucket(bucket_resource,
                                       fields_scope='football field')
Example #2
0
    def test_create_bucket_api_error(self):
        bucket_metadata = self.messages.Bucket(name=TEST_BUCKET)
        self.apitools_client.buckets.Insert.Expect(
            self.messages.StorageBucketsInsertRequest(
                bucket=bucket_metadata,
                project=TEST_PROJECT,
                projection=self.default_projection),
            exception=apitools_exceptions.HttpError(None, None, None))
        bucket_resource = gcs_api._bucket_resource_from_metadata(
            bucket_metadata)

        with self.assertRaises(cloud_errors.GcsApiError):
            self.gcs_client.create_bucket(bucket_resource)
Example #3
0
    def test_create_bucket(self):
        bucket_metadata = self.messages.Bucket(name=TEST_BUCKET)
        self.apitools_client.buckets.Insert.Expect(
            self.messages.StorageBucketsInsertRequest(
                bucket=bucket_metadata,
                project=TEST_PROJECT,
                projection=self.default_projection),
            response=bucket_metadata)

        expected_resource = gcs_api._bucket_resource_from_metadata(
            bucket_metadata)
        observed_resource = self.gcs_client.create_bucket(expected_resource)
        self.assertEqual(observed_resource, expected_resource)
    def test_gcs_bucket_url_with_wildcard_gets_single_bucket(
            self, fields_scope, client):
        """Test single bucket with bucket-level expansion."""
        client.list_buckets.side_effect = [self.buckets_response]

        resource_iterator = wildcard_iterator.get_wildcard_iterator(
            'gs://buck*1', fields_scope=fields_scope)

        self.assertEqual(
            list(resource_iterator),
            [gcs_api._bucket_resource_from_metadata(self.bucket1)])
        client.list_buckets.assert_called_once_with(
            cloud_api.FieldsScope(fields_scope))
Example #5
0
    def test_creates_missing_bucket_metadata(self):
        expected_metadata = self.messages.Bucket(name='b')
        self.apitools_client.buckets.Insert.Expect(
            self.messages.StorageBucketsInsertRequest(
                bucket=expected_metadata,
                project=TEST_PROJECT,
                projection=self.default_projection),
            response=expected_metadata)

        expected_resource = gcs_api._bucket_resource_from_metadata(
            expected_metadata)
        observed_resource = self.gcs_client.create_bucket(
            test_resources.from_url_string('gs://b'))
        self.assertEqual(observed_resource, expected_resource)
Example #6
0
    def test_create_bucket_valid_fields_scope(self, fields_scope, projection):
        bucket_metadata = self.messages.Bucket(name=TEST_BUCKET)
        request = self.messages.StorageBucketsInsertRequest(
            bucket=bucket_metadata,
            project=TEST_PROJECT,
            projection=getattr(
                self.messages.StorageBucketsInsertRequest.
                ProjectionValueValuesEnum, projection))
        bucket_resource = gcs_api._bucket_resource_from_metadata(
            bucket_metadata)

        with mock.patch.object(self.apitools_client.buckets,
                               'Insert') as mock_insert:
            self.gcs_client.create_bucket(bucket_resource,
                                          fields_scope=fields_scope)
            mock_insert.assert_called_once_with(request)
    def SetUp(self):
        self.project = 'fake-project'
        properties.VALUES.core.project.Set(self.project)

        self.messages = apis.GetMessagesModule('storage', 'v1')

        self.bucket1 = self.messages.Bucket(name='bucket1')
        self.bucket2 = self.messages.Bucket(name='bucket2')
        self.buckets = [self.bucket1, self.bucket2]
        self.buckets_response = [
            gcs_api._bucket_resource_from_metadata(bucket)
            for bucket in self.buckets
        ]

        self._object_resources_with_generation = [
            test_resources.get_object_resource(storage_url.ProviderPrefix.GCS,
                                               'bucket1', 'a.txt', '1'),
            test_resources.get_object_resource(storage_url.ProviderPrefix.GCS,
                                               'bucket1', 'a.txt', '2'),
            test_resources.get_object_resource(storage_url.ProviderPrefix.GCS,
                                               'bucket1', 'b.txt', '3'),
            test_resources.get_object_resource(storage_url.ProviderPrefix.S3,
                                               'bucket1', 'c.txt', 'a1')
        ]