Example #1
0
    def test_default_object_acl(self):
        # Both REST and GRPC share almost the same implementation so we only test GRPC here.
        entity = "*****@*****.**"
        request = storage_pb2.InsertBucketRequest(bucket={"name": "bucket"})
        bucket, projection = gcs.bucket.Bucket.init(request, "")

        request = storage_pb2.InsertDefaultObjectAccessControlRequest(
            bucket="bucket",
            object_access_control={
                "entity": entity,
                "role": "READER"
            })
        bucket.insert_default_object_acl(request, "")

        acl = bucket.get_default_object_acl(entity, "")
        self.assertEqual(acl.entity, entity)
        self.assertEqual(acl.email, "*****@*****.**")
        self.assertEqual(acl.role, "READER")

        request = storage_pb2.PatchDefaultObjectAccessControlRequest(
            bucket="bucket",
            entity=entity,
            object_access_control={"role": "OWNER"})
        bucket.patch_default_object_acl(request, entity, "")
        acl = bucket.get_default_object_acl(entity, "")
        self.assertEqual(acl.entity, entity)
        self.assertEqual(acl.email, "*****@*****.**")
        self.assertEqual(acl.role, "OWNER")

        bucket.delete_default_object_acl(entity, "")
        with self.assertRaises(Exception):
            bucket.get_default_object_acl(entity, None)
Example #2
0
    def test_default_object_acl(self):
        # Both REST and GRPC share almost the same implementation so we only test GRPC here.
        entity = "*****@*****.**"
        request = storage_pb2.InsertBucketRequest(bucket={"name": "bucket"})
        bucket, projection = gcs.bucket.Bucket.init(request, "")

        request = storage_pb2.InsertDefaultObjectAccessControlRequest(
            bucket="bucket",
            object_access_control={
                "entity": entity,
                "role": "READER"
            })
        bucket.insert_default_object_acl(request, "")

        acl = bucket.get_default_object_acl(entity, "")
        assert acl.entity == entity
        assert acl.email == "*****@*****.**"
        assert acl.role == "READER"

        request = storage_pb2.PatchDefaultObjectAccessControlRequest(
            bucket="bucket",
            entity=entity,
            object_access_control={"role": "OWNER"})
        bucket.patch_default_object_acl(request, entity, "")
        acl = bucket.get_default_object_acl(entity, "")
        assert acl.entity == entity
        assert acl.email == "*****@*****.**"
        assert acl.role == "OWNER"

        bucket.delete_default_object_acl(entity, "")
        for acl in bucket.metadata.default_object_acl:
            assert acl.entity != entity