From 41f903c1b1c2c1821ff5d72e31d134cfa52029e2 Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Mon, 10 Feb 2020 14:41:10 -0300 Subject: [PATCH] 16141: Expands test for other object types. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- lib/controller/handler_test.go | 41 +++++++++++++++++++++++++--------- sdk/go/arvadostest/fixtures.go | 15 +++++++++++++ 2 files changed, 45 insertions(+), 11 deletions(-) diff --git a/lib/controller/handler_test.go b/lib/controller/handler_test.go index e8cd1efbad..fac2f8a825 100644 --- a/lib/controller/handler_test.go +++ b/lib/controller/handler_test.go @@ -219,17 +219,13 @@ func (s *HandlerSuite) TestCreateAPIToken(c *check.C) { c.Check(user.Authorization.TokenV2(), check.Equals, auth.TokenV2()) } -func (s *HandlerSuite) TestGetCollection(c *check.C) { +func (s *HandlerSuite) CheckObjectType(c *check.C, url string, token string, skippedFields map[string]bool) { var proxied, direct map[string]interface{} var err error - skippedFields := map[string]bool{ - "href": true, - } // Get collection from controller - fooURL := "/arvados/v1/collections/" + arvadostest.FooCollection - req := httptest.NewRequest("GET", fooURL, nil) - req.Header.Set("Authorization", "Bearer "+arvadostest.ActiveToken) + req := httptest.NewRequest("GET", url, nil) + req.Header.Set("Authorization", "Bearer "+token) resp := httptest.NewRecorder() s.handler.ServeHTTP(resp, req) c.Check(resp.Code, check.Equals, http.StatusOK) @@ -242,7 +238,7 @@ func (s *HandlerSuite) TestGetCollection(c *check.C) { TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }, } - resp2, err := client.Get(s.cluster.Services.RailsAPI.ExternalURL.String() + fooURL + "/?api_token=" + arvadostest.ActiveToken) + resp2, err := client.Get(s.cluster.Services.RailsAPI.ExternalURL.String() + url + "/?api_token=" + token) c.Check(err, check.Equals, nil) defer resp2.Body.Close() db, err := ioutil.ReadAll(resp2.Body) @@ -255,15 +251,38 @@ func (s *HandlerSuite) TestGetCollection(c *check.C) { if _, ok := skippedFields[k]; ok { continue } else if val, ok := proxied[k]; ok { - if k == "manifest_text" { + if direct["kind"] == "arvados#collection" && k == "manifest_text" { // Tokens differ from request to request c.Check(strings.Split(val.(string), "+A")[0], check.Equals, strings.Split(direct[k].(string), "+A")[0]) } else { c.Check(val, check.DeepEquals, direct[k], - check.Commentf("RailsAPI key %q's value %q differs from controller's %q.", k, direct[k], val)) + check.Commentf("RailsAPI %s key %q's value %q differs from controller's %q.", direct["kind"], k, direct[k], val)) } } else { - c.Errorf("Key %q missing on controller's response.", k) + c.Errorf("%s's key %q missing on controller's response.", direct["kind"], k) } } } + +func (s *HandlerSuite) TestGetObjects(c *check.C) { + testCases := map[string]map[string]bool{ + "api_clients/" + arvadostest.TrustedWorkbenchAPIClientUUID: map[string]bool{}, + "api_client_authorizations/" + arvadostest.AdminTokenUUID: map[string]bool{}, + "authorized_keys/" + arvadostest.AdminAuthorizedKeysUUID: map[string]bool{}, + "collections/" + arvadostest.FooCollection: map[string]bool{"href": true}, + "containers/" + arvadostest.RunningContainerUUID: map[string]bool{}, + "container_requests/" + arvadostest.QueuedContainerRequestUUID: map[string]bool{}, + "groups/" + arvadostest.AProjectUUID: map[string]bool{}, + "keep_services/" + arvadostest.KeepServiceZeroUUID: map[string]bool{}, + "links/" + arvadostest.ActiveUserCanReadAllUsersLinkUUID: map[string]bool{}, + "logs/" + arvadostest.CrunchstatForRunningJobLogUUID: map[string]bool{}, + "nodes/" + arvadostest.IdleNodeUUID: map[string]bool{}, + "repositories/" + arvadostest.ArvadosRepoUUID: map[string]bool{}, + "users/" + arvadostest.ActiveUserUUID: map[string]bool{"href": true}, + "virtual_machines/" + arvadostest.TestVMUUID: map[string]bool{}, + "workflows/" + arvadostest.WorkflowWithDefinitionYAMLUUID: map[string]bool{}, + } + for url, skippedFields := range testCases { + s.CheckObjectType(c, "/arvados/v1/"+url, arvadostest.AdminToken, skippedFields) + } +} diff --git a/sdk/go/arvadostest/fixtures.go b/sdk/go/arvadostest/fixtures.go index 10b95c0371..8a461473d0 100644 --- a/sdk/go/arvadostest/fixtures.go +++ b/sdk/go/arvadostest/fixtures.go @@ -11,6 +11,7 @@ const ( ActiveTokenUUID = "zzzzz-gj3su-077z32aux8dg2s1" ActiveTokenV2 = "v2/zzzzz-gj3su-077z32aux8dg2s1/3kg6k6lzmp9kj5cpkcoxie963cmvjahbt2fod9zru30k1jqdmi" AdminToken = "4axaw8zxe0qm22wa6urpp5nskcne8z88cvbupv653y1njyi05h" + AdminTokenUUID = "zzzzz-gj3su-027z32aux8dg2s1" AnonymousToken = "4kg6k6lzmp9kj4cpkcoxie964cmvjahbt4fod9zru44k4jqdmi" DataManagerToken = "320mkve8qkswstz7ff61glpk3mhgghmg67wmic7elw4z41pke1" SystemRootToken = "systemusertesttoken1234567890aoeuidhtnsqjkxbmwvzpy" @@ -58,6 +59,20 @@ const ( WorkflowWithDefinitionYAMLUUID = "zzzzz-7fd4e-validworkfloyml" CollectionReplicationDesired2Confirmed2UUID = "zzzzz-4zz18-434zv1tnnf2rygp" + + KeepServiceZeroUUID = "zzzzz-bi6l4-6zhilxar6r8ey90" + + ActiveUserCanReadAllUsersLinkUUID = "zzzzz-o0j2j-ctbysaduejxfrs5" + + TrustedWorkbenchAPIClientUUID = "zzzzz-ozdt8-teyxzyd8qllg11h" + + AdminAuthorizedKeysUUID = "zzzzz-fngyi-12nc9ov4osp8nae" + + CrunchstatForRunningJobLogUUID = "zzzzz-57u5n-tmymyrojrbtnxh1" + + IdleNodeUUID = "zzzzz-7ekkf-2z3mc76g2q73aio" + + TestVMUUID = "zzzzz-2x53u-382brsig8rp3064" ) // PathologicalManifest : A valid manifest designed to test -- 2.30.2