feat: add list-buckets test for no buckets

We need to check to make sure list-buckets returns a correct
empty list when no buckets created.
This commit is contained in:
Ben McClelland
2024-11-18 21:35:19 -08:00
parent 3e9c5b883f
commit 568f8346bf
3 changed files with 36 additions and 0 deletions
+2
View File
@@ -86,6 +86,7 @@ func TestListBuckets(s *S3Conf) {
ListBuckets_invalid_max_buckets(s)
ListBuckets_truncated(s)
ListBuckets_success(s)
ListBuckets_empty_success(s)
}
func TestDeleteBucket(s *S3Conf) {
@@ -696,6 +697,7 @@ func GetIntTests() IntTests {
"ListBuckets_invalid_max_buckets": ListBuckets_invalid_max_buckets,
"ListBuckets_truncated": ListBuckets_truncated,
"ListBuckets_success": ListBuckets_success,
"ListBuckets_empty_success": ListBuckets_empty_success,
"DeleteBucket_non_existing_bucket": DeleteBucket_non_existing_bucket,
"DeleteBucket_non_empty_bucket": DeleteBucket_non_empty_bucket,
"DeleteBucket_success_status_code": DeleteBucket_success_status_code,
+19
View File
@@ -2160,6 +2160,7 @@ func ListBuckets_with_prefix(s *S3Conf) error {
return nil
})
}
func ListBuckets_invalid_max_buckets(s *S3Conf) error {
testName := "ListBuckets_invalid_max_buckets"
return actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {
@@ -2255,6 +2256,24 @@ func ListBuckets_truncated(s *S3Conf) error {
})
}
func ListBuckets_empty_success(s *S3Conf) error {
testName := "ListBuckets_empty_success"
return actionHandlerNoSetup(s, testName, func(s3client *s3.Client, bucket string) error {
ctx, cancel := context.WithTimeout(context.Background(), shortTimeout)
out, err := s3client.ListBuckets(ctx, &s3.ListBucketsInput{})
cancel()
if err != nil {
return err
}
if len(out.Buckets) > 0 {
return fmt.Errorf("expected list buckets result to be %v, instead got %v", []types.Bucket{}, out.Buckets)
}
return nil
})
}
func ListBuckets_success(s *S3Conf) error {
testName := "ListBuckets_success"
return actionHandler(s, testName, func(s3client *s3.Client, bucket string) error {
+15
View File
@@ -213,6 +213,21 @@ func actionHandler(s *S3Conf, testName string, handler func(s3client *s3.Client,
return handlerErr
}
func actionHandlerNoSetup(s *S3Conf, testName string, handler func(s3client *s3.Client, bucket string) error, _ ...setupOpt) error {
runF(testName)
client := s3.NewFromConfig(s.Config())
handlerErr := handler(client, "")
if handlerErr != nil {
failF("%v: %v", testName, handlerErr)
}
if handlerErr == nil {
passF(testName)
}
return handlerErr
}
type authConfig struct {
testName string
path string