16535: Test HeadObject and HeadBucket.
authorTom Clegg <tom@tomclegg.ca>
Fri, 31 Jul 2020 20:23:25 +0000 (16:23 -0400)
committerTom Clegg <tom@tomclegg.ca>
Fri, 31 Jul 2020 20:23:25 +0000 (16:23 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@tomclegg.ca>

services/keep-web/s3_test.go

index ce2731ce4d527949920eecb96c3574c9aed0f3aa..d25e9e47fcacd3e2c0e47565fa52ec52b3b2f6b0 100644 (file)
@@ -104,6 +104,18 @@ func (stage s3stage) teardown(c *check.C) {
        }
 }
 
+func (s *IntegrationSuite) TestS3HeadBucket(c *check.C) {
+       stage := s.s3setup(c)
+       defer stage.teardown(c)
+
+       for _, bucket := range []*s3.Bucket{stage.collbucket, stage.projbucket} {
+               c.Logf("bucket %s", bucket.Name)
+               exists, err := bucket.Exists("")
+               c.Check(err, check.IsNil)
+               c.Check(exists, check.Equals, true)
+       }
+}
+
 func (s *IntegrationSuite) TestS3CollectionGetObject(c *check.C) {
        stage := s.s3setup(c)
        defer stage.teardown(c)
@@ -123,9 +135,16 @@ func (s *IntegrationSuite) testS3GetObject(c *check.C, bucket *s3.Bucket, prefix
        err = rdr.Close()
        c.Check(err, check.IsNil)
 
+       // GetObject
        rdr, err = bucket.GetReader(prefix + "missingfile")
        c.Check(err, check.ErrorMatches, `404 Not Found`)
 
+       // HeadObject
+       exists, err := bucket.Exists(prefix + "missingfile")
+       c.Check(err, check.IsNil)
+       c.Check(exists, check.Equals, false)
+
+       // GetObject
        rdr, err = bucket.GetReader(prefix + "sailboat.txt")
        c.Assert(err, check.IsNil)
        buf, err = ioutil.ReadAll(rdr)
@@ -133,6 +152,11 @@ func (s *IntegrationSuite) testS3GetObject(c *check.C, bucket *s3.Bucket, prefix
        c.Check(buf, check.DeepEquals, []byte("⛵\n"))
        err = rdr.Close()
        c.Check(err, check.IsNil)
+
+       // HeadObject
+       exists, err = bucket.Exists(prefix + "sailboat.txt")
+       c.Check(err, check.IsNil)
+       c.Check(exists, check.Equals, true)
 }
 
 func (s *IntegrationSuite) TestS3CollectionPutObjectSuccess(c *check.C) {