From 7d94b1ed55350c01689ad048aee961b261263dd9 Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Tue, 24 Nov 2020 13:40:21 -0500 Subject: [PATCH] 16774: text/plain response uses crlf. Tests check error codes. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- services/keep-web/handler.go | 4 ++-- services/keep-web/s3_test.go | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/services/keep-web/handler.go b/services/keep-web/handler.go index f2e9ba5aa6..ab1bc080bd 100644 --- a/services/keep-web/handler.go +++ b/services/keep-web/handler.go @@ -62,8 +62,8 @@ func parseCollectionIDFromDNSName(s string) string { var urlPDHDecoder = strings.NewReplacer(" ", "+", "-", "+") -var notFoundMessage = "404 Not found\n\nThe requested path was not found, or you do not have permission to access it." -var unauthorizedMessage = "401 Unauthorized\n\nA valid Arvados token must be provided to access this resource." +var notFoundMessage = "404 Not found\r\n\r\nThe requested path was not found, or you do not have permission to access it.\r" +var unauthorizedMessage = "401 Unauthorized\r\n\r\nA valid Arvados token must be provided to access this resource.\r" // parseCollectionIDFromURL returns a UUID or PDH if s is a UUID or a // PDH (even if it is a PDH with "+" replaced by " " or "-"); diff --git a/services/keep-web/s3_test.go b/services/keep-web/s3_test.go index b376ed9ee5..fb759e901c 100644 --- a/services/keep-web/s3_test.go +++ b/services/keep-web/s3_test.go @@ -173,6 +173,8 @@ func (s *IntegrationSuite) testS3GetObject(c *check.C, bucket *s3.Bucket, prefix // GetObject rdr, err = bucket.GetReader(prefix + "missingfile") + c.Check(err.(*s3.Error).StatusCode, check.Equals, 404) + c.Check(err.(*s3.Error).Code, check.Equals, `NoSuchKey`) c.Check(err, check.ErrorMatches, `The specified key does not exist.`) // HeadObject @@ -235,6 +237,8 @@ func (s *IntegrationSuite) testS3PutObjectSuccess(c *check.C, bucket *s3.Bucket, objname := prefix + trial.path _, err := bucket.GetReader(objname) + c.Check(err.(*s3.Error).StatusCode, check.Equals, 404) + c.Check(err.(*s3.Error).Code, check.Equals, `NoSuchKey`) c.Assert(err, check.ErrorMatches, `The specified key does not exist.`) buf := make([]byte, trial.size) @@ -284,15 +288,21 @@ func (s *IntegrationSuite) TestS3ProjectPutObjectNotSupported(c *check.C) { c.Logf("=== %v", trial) _, err := bucket.GetReader(trial.path) + c.Check(err.(*s3.Error).StatusCode, check.Equals, 404) + c.Check(err.(*s3.Error).Code, check.Equals, `NoSuchKey`) c.Assert(err, check.ErrorMatches, `The specified key does not exist.`) buf := make([]byte, trial.size) rand.Read(buf) err = bucket.PutReader(trial.path, bytes.NewReader(buf), int64(len(buf)), trial.contentType, s3.Private, s3.Options{}) + c.Check(err.(*s3.Error).StatusCode, check.Equals, 400) + c.Check(err.(*s3.Error).Code, check.Equals, `InvalidArgument`) c.Check(err, check.ErrorMatches, `(mkdir "by_id/zzzzz-j7d0g-[a-z0-9]{15}/newdir2?"|open "/zzzzz-j7d0g-[a-z0-9]{15}/newfile") failed: invalid argument`) _, err = bucket.GetReader(trial.path) + c.Check(err.(*s3.Error).StatusCode, check.Equals, 404) + c.Check(err.(*s3.Error).Code, check.Equals, `NoSuchKey`) c.Assert(err, check.ErrorMatches, `The specified key does not exist.`) } } @@ -401,6 +411,8 @@ func (s *IntegrationSuite) testS3PutObjectFailure(c *check.C, bucket *s3.Bucket, if objname != "" && objname != "/" { _, err = bucket.GetReader(objname) + c.Check(err.(*s3.Error).StatusCode, check.Equals, 404) + c.Check(err.(*s3.Error).Code, check.Equals, `NoSuchKey`) c.Check(err, check.ErrorMatches, `The specified key does not exist.`, check.Commentf("GET %q should return 404", objname)) } }() -- 2.30.2