From f4f0614d06c4ac9abeb34dc6df7c88ecb5feebda Mon Sep 17 00:00:00 2001 From: Lucas Di Pentima Date: Mon, 10 Feb 2020 12:41:12 -0300 Subject: [PATCH] 16141: Fixes Collection type on Go SDK. Adjusts test. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- lib/controller/handler_test.go | 17 +++++++++++------ sdk/go/arvados/collection.go | 13 ++++++------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/controller/handler_test.go b/lib/controller/handler_test.go index 53f5e65c6b..e8cd1efbad 100644 --- a/lib/controller/handler_test.go +++ b/lib/controller/handler_test.go @@ -222,6 +222,9 @@ func (s *HandlerSuite) TestCreateAPIToken(c *check.C) { func (s *HandlerSuite) TestGetCollection(c *check.C) { 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 @@ -247,18 +250,20 @@ func (s *HandlerSuite) TestGetCollection(c *check.C) { err = json.Unmarshal(db, &direct) c.Check(err, check.Equals, nil) - // Check that all railsAPI provided keys exist on the controller response - // and their non-nil values are equal. + // Check that all RailsAPI provided keys exist on the controller response. for k := range direct { - if val, ok := proxied[k]; ok { + if _, ok := skippedFields[k]; ok { + continue + } else if val, ok := proxied[k]; ok { if 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 if direct[k] != nil { - c.Check(val, check.DeepEquals, direct[k]) + } 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)) } } else { - c.Errorf("Key %q missing", k) + c.Errorf("Key %q missing on controller's response.", k) } } } diff --git a/sdk/go/arvados/collection.go b/sdk/go/arvados/collection.go index 94390bc019..623a8d985f 100644 --- a/sdk/go/arvados/collection.go +++ b/sdk/go/arvados/collection.go @@ -24,26 +24,25 @@ type Collection struct { Name string `json:"name"` CreatedAt time.Time `json:"created_at"` ModifiedAt time.Time `json:"modified_at"` - ModifiedByClientUUID string `json:"modified_by_client_uuid"` - ModifiedByUserUUID string `json:"modified_by_user_uuid"` + ModifiedByClientUUID *string `json:"modified_by_client_uuid"` + ModifiedByUserUUID *string `json:"modified_by_user_uuid"` PortableDataHash string `json:"portable_data_hash"` ReplicationConfirmed *int `json:"replication_confirmed"` ReplicationConfirmedAt *time.Time `json:"replication_confirmed_at"` ReplicationDesired *int `json:"replication_desired"` StorageClassesDesired []string `json:"storage_classes_desired"` StorageClassesConfirmed []string `json:"storage_classes_confirmed"` - StorageClassesConfirmedAt time.Time `json:"storage_classes_confirmed_at"` + StorageClassesConfirmedAt *time.Time `json:"storage_classes_confirmed_at"` DeleteAt *time.Time `json:"delete_at"` IsTrashed bool `json:"is_trashed"` Properties map[string]interface{} `json:"properties"` WritableBy []string `json:"writable_by,omitempty"` - FileCount *int `json:"file_count"` - FileSizeTotal *int `json:"file_size_total"` + FileCount int `json:"file_count"` + FileSizeTotal int64 `json:"file_size_total"` Version *int `json:"version"` PreserveVersion bool `json:"preserve_version"` CurrentVersionUUID string `json:"current_version_uuid"` - Description string `json:"description"` - Href string `json:"href"` + Description *string `json:"description"` } func (c Collection) resourceName() string { -- 2.30.2