@@ -688,32 +688,45 @@ func (testSuite *BucketHandleTest) TestBucketHandle_StorageClassOverrides() {
688688 bucketScenarios := []struct {
689689 name string
690690 bucketType gcs.BucketType
691+ initialStorageClass string
691692 expectedWriterStorageClass string
692693 expectedCreatedStorageClass string
693694 canTestCreateObject bool
694695 }{
695696 {
696697 name : "StandardBucket" ,
697698 bucketType : gcs.BucketType {Pirlo : gcs .PirloStateNone },
699+ initialStorageClass : "" ,
698700 expectedWriterStorageClass : "" ,
699701 expectedCreatedStorageClass : "STANDARD" ,
700702 canTestCreateObject : true ,
701703 },
704+ {
705+ name : "StandardBucket_InheritsStorageClass" ,
706+ bucketType : gcs.BucketType {Pirlo : gcs .PirloStateNone },
707+ initialStorageClass : "COLDLINE" ,
708+ expectedWriterStorageClass : "COLDLINE" ,
709+ expectedCreatedStorageClass : "COLDLINE" ,
710+ canTestCreateObject : true ,
711+ },
702712 {
703713 name : "ZonalBucket" ,
704714 bucketType : gcs.BucketType {Zonal : true },
715+ initialStorageClass : "" ,
705716 expectedWriterStorageClass : "" , // Zonal buckets do not use the RAPID storage class.
706717 canTestCreateObject : false , // Fails on HTTP append.
707718 },
708719 {
709720 name : "PirloBucket_RapidEnabled" ,
710721 bucketType : gcs.BucketType {Pirlo : gcs .PirloStateRapidWritesEnabled },
722+ initialStorageClass : "STANDARD" , // Simulate inheriting from standard source
711723 expectedWriterStorageClass : storageClassRapid ,
712724 canTestCreateObject : false , // Fails on HTTP append.
713725 },
714726 {
715727 name : "PirloBucket_RapidDisabled" ,
716728 bucketType : gcs.BucketType {Pirlo : gcs .PirloStateRapidWritesDisabled },
729+ initialStorageClass : storageClassRapid , // Simulate inheriting from rapid source
717730 expectedWriterStorageClass : "" ,
718731 expectedCreatedStorageClass : "STANDARD" ,
719732 canTestCreateObject : true ,
@@ -725,7 +738,7 @@ func (testSuite *BucketHandleTest) TestBucketHandle_StorageClassOverrides() {
725738 createBucketHandle (testSuite , & controlpb.StorageLayout {})
726739 testSuite .bucketHandle .bucketType = & scenario .bucketType
727740 testSuite .bucketHandle .writeConfig = & cfg.WriteConfig {}
728- req := & gcs.CreateObjectRequest {Name : "test_object_2" }
741+ req := & gcs.CreateObjectRequest {Name : "test_object_2" , StorageClass : scenario . initialStorageClass }
729742
730743 w , err := testSuite .bucketHandle .CreateObjectChunkWriter (context .Background (), req , 1024 , nil )
731744
@@ -740,7 +753,7 @@ func (testSuite *BucketHandleTest) TestBucketHandle_StorageClassOverrides() {
740753 createBucketHandle (testSuite , & controlpb.StorageLayout {})
741754 testSuite .bucketHandle .bucketType = & scenario .bucketType
742755 testSuite .bucketHandle .writeConfig = & cfg.WriteConfig {}
743- req := & gcs.CreateObjectRequest {Name : "test_object_1" , Contents : strings .NewReader ("data" )}
756+ req := & gcs.CreateObjectRequest {Name : "test_object_1" , Contents : strings .NewReader ("data" ), StorageClass : scenario . initialStorageClass }
744757
745758 o , err := testSuite .bucketHandle .CreateObject (context .Background (), req )
746759
0 commit comments