13382: Test storage class failure cases.
authorTom Clegg <tom@curii.com>
Thu, 1 Apr 2021 14:59:30 +0000 (10:59 -0400)
committerTom Clegg <tom@curii.com>
Thu, 1 Apr 2021 15:07:36 +0000 (11:07 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

services/keepstore/handler_test.go

index a9d7330c0be4fdbe781fef654a91b7c53d93d194..db64449e48bed2234ae32a97fbc122b360a77576 100644 (file)
@@ -1130,17 +1130,21 @@ func (s *HandlerSuite) TestPutStorageClasses(c *check.C) {
                uri:         "/" + TestHash,
                requestBody: TestBlock,
        }
+
        for _, trial := range []struct {
                ask    string
                expect string
        }{
                {"", ""},
                {"default", "default=1"},
+               {" , default , default , ", "default=1"},
                {"special", "extra=1, special=1"},
+               {"special, readonly", "extra=1, special=1"},
+               {"special, nonexistent", "extra=1, special=1"},
                {"extra, special", "extra=1, special=1"},
                {"default, special", "default=1, extra=1, special=1"},
        } {
-               c.Logf("%#v", trial)
+               c.Logf("success case %#v", trial)
                rt.storageClasses = trial.ask
                resp := IssueRequest(s.handler, &rt)
                if trial.expect == "" {
@@ -1150,6 +1154,19 @@ func (s *HandlerSuite) TestPutStorageClasses(c *check.C) {
                        c.Check(sortCommaSeparated(resp.Header().Get("X-Keep-Storage-Classes-Confirmed")), check.Equals, trial.expect)
                }
        }
+
+       for _, trial := range []struct {
+               ask string
+       }{
+               {"doesnotexist"},
+               {"doesnotexist, readonly"},
+               {"readonly"},
+       } {
+               c.Logf("failure case %#v", trial)
+               rt.storageClasses = trial.ask
+               resp := IssueRequest(s.handler, &rt)
+               c.Check(resp.Code, check.Equals, http.StatusServiceUnavailable)
+       }
 }
 
 func sortCommaSeparated(s string) string {