[MM-49989] Pass a context.Context to Client4 methods (#22922)

* Migrate all method in model/client4.go to accept a context.Context

* Fix th.*Client

* Fix remaining issues

* Empty commit to triger CI

* Fix test

* Add cancellation test

* Test that returned error is context.Canceled

* Fix bad merge

* Update mmctl code

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Ben Schumacher
2023-06-06 23:29:29 +02:00
коммит произвёл GitHub
родитель 7116e9267a
Коммит 6c82605df0
140 изменённых файлов: 7516 добавлений и 7333 удалений

Просмотреть файл

@@ -4,6 +4,7 @@
package commands
import (
"context"
"errors"
"fmt"
"net/http"
@@ -33,25 +34,25 @@ func (s *MmctlUnitTestSuite) TestAssignUsersCmd() {
s.client.
EXPECT().
GetRoleByName(mockRole.Name).
GetRoleByName(context.Background(), mockRole.Name).
Return(mockRole, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByEmail(mockUser.Username, "").
GetUserByEmail(context.Background(), mockUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(mockUser.Username, "").
GetUserByUsername(context.Background(), mockUser.Username, "").
Return(mockUser, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
UpdateUserRoles(mockUser.Id, fmt.Sprintf("%s %s", mockUser.Roles, mockRole.Name)).
UpdateUserRoles(context.Background(), mockUser.Id, fmt.Sprintf("%s %s", mockUser.Roles, mockRole.Name)).
Return(&model.Response{StatusCode: http.StatusOK}, nil).
Times(1)
@@ -85,45 +86,45 @@ func (s *MmctlUnitTestSuite) TestAssignUsersCmd() {
s.client.
EXPECT().
GetRoleByName(mockRole.Name).
GetRoleByName(context.Background(), mockRole.Name).
Return(mockRole, &model.Response{}, nil).
Times(1)
for _, user := range []*model.User{mockUser1, mockUser2} {
s.client.
EXPECT().
GetUserByEmail(user.Username, "").
GetUserByEmail(context.Background(), user.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(user.Username, "").
GetUserByUsername(context.Background(), user.Username, "").
Return(user, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
UpdateUserRoles(user.Id, fmt.Sprintf("%s %s", user.Roles, mockRole.Name)).
UpdateUserRoles(context.Background(), user.Id, fmt.Sprintf("%s %s", user.Roles, mockRole.Name)).
Return(&model.Response{StatusCode: http.StatusOK}, nil).
Times(1)
}
s.client.
EXPECT().
GetUserByEmail(notFoundUser.Username, "").
GetUserByEmail(context.Background(), notFoundUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(notFoundUser.Username, "").
GetUserByUsername(context.Background(), notFoundUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUser(notFoundUser.Username, "").
GetUser(context.Background(), notFoundUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
@@ -141,7 +142,7 @@ func (s *MmctlUnitTestSuite) TestAssignUsersCmd() {
s.client.
EXPECT().
GetRoleByName("non-existent").
GetRoleByName(context.Background(), "non-existent").
Return(nil, &model.Response{StatusCode: http.StatusNotFound}, expectedError).
Times(1)
@@ -166,19 +167,19 @@ func (s *MmctlUnitTestSuite) TestAssignUsersCmd() {
s.client.
EXPECT().
GetRoleByName(mockRole.Name).
GetRoleByName(context.Background(), mockRole.Name).
Return(mockRole, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByEmail(mockUser.Username, "").
GetUserByEmail(context.Background(), mockUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(mockUser.Username, "").
GetUserByUsername(context.Background(), mockUser.Username, "").
Return(mockUser, &model.Response{}, nil).
Times(1)
@@ -198,25 +199,25 @@ func (s *MmctlUnitTestSuite) TestAssignUsersCmd() {
s.client.
EXPECT().
GetRoleByName(mockRole.Name).
GetRoleByName(context.Background(), mockRole.Name).
Return(mockRole, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByEmail(requestedUser, "").
GetUserByEmail(context.Background(), requestedUser, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(requestedUser, "").
GetUserByUsername(context.Background(), requestedUser, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUser(requestedUser, "").
GetUser(context.Background(), requestedUser, "").
Return(nil, &model.Response{}, nil).
Times(1)
@@ -242,19 +243,19 @@ func (s *MmctlUnitTestSuite) TestUnassignUsersCmd() {
s.client.
EXPECT().
GetUserByEmail(mockUser.Username, "").
GetUserByEmail(context.Background(), mockUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(mockUser.Username, "").
GetUserByUsername(context.Background(), mockUser.Username, "").
Return(mockUser, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
UpdateUserRoles(mockUser.Id, "system_user team_admin").
UpdateUserRoles(context.Background(), mockUser.Id, "system_user team_admin").
Return(&model.Response{StatusCode: http.StatusOK}, nil).
Times(1)
@@ -285,38 +286,38 @@ func (s *MmctlUnitTestSuite) TestUnassignUsersCmd() {
for _, user := range []*model.User{mockUser1, mockUser2} {
s.client.
EXPECT().
GetUserByEmail(user.Username, "").
GetUserByEmail(context.Background(), user.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(user.Username, "").
GetUserByUsername(context.Background(), user.Username, "").
Return(user, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
UpdateUserRoles(user.Id, strings.TrimSpace(strings.ReplaceAll(user.Roles, roleName, ""))).
UpdateUserRoles(context.Background(), user.Id, strings.TrimSpace(strings.ReplaceAll(user.Roles, roleName, ""))).
Return(&model.Response{StatusCode: http.StatusOK}, nil).
Times(1)
}
s.client.
EXPECT().
GetUserByEmail(notFoundUser.Username, "").
GetUserByEmail(context.Background(), notFoundUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(notFoundUser.Username, "").
GetUserByUsername(context.Background(), notFoundUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUser(notFoundUser.Username, "").
GetUser(context.Background(), notFoundUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
@@ -336,13 +337,13 @@ func (s *MmctlUnitTestSuite) TestUnassignUsersCmd() {
s.client.
EXPECT().
GetUserByEmail(mockUser.Username, "").
GetUserByEmail(context.Background(), mockUser.Username, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(mockUser.Username, "").
GetUserByUsername(context.Background(), mockUser.Username, "").
Return(mockUser, &model.Response{}, nil).
Times(1)
@@ -356,19 +357,19 @@ func (s *MmctlUnitTestSuite) TestUnassignUsersCmd() {
s.client.
EXPECT().
GetUserByEmail(requestedUser, "").
GetUserByEmail(context.Background(), requestedUser, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUserByUsername(requestedUser, "").
GetUserByUsername(context.Background(), requestedUser, "").
Return(nil, &model.Response{}, nil).
Times(1)
s.client.
EXPECT().
GetUser(requestedUser, "").
GetUser(context.Background(), requestedUser, "").
Return(nil, &model.Response{}, nil).
Times(1)
@@ -392,7 +393,7 @@ func (s *MmctlUnitTestSuite) TestShowRoleCmd() {
s.client.
EXPECT().
GetRoleByName(mockRole.Name).
GetRoleByName(context.Background(), mockRole.Name).
Return(mockRole, &model.Response{}, nil).
Times(1)
@@ -424,7 +425,7 @@ SchemeManaged false
s.client.
EXPECT().
GetRoleByName(mockRole.Name).
GetRoleByName(context.Background(), mockRole.Name).
Return(mockRole, &model.Response{}, nil).
Times(1)
@@ -454,7 +455,7 @@ Permissions edit_brand
// showRoleCmdF will look up role by name
s.client.
EXPECT().
GetRoleByName(commandArgBogus).
GetRoleByName(context.Background(), commandArgBogus).
Return(nil, &model.Response{StatusCode: http.StatusNotFound}, expectedError).
Times(1)