MM-19790: Remove randomness in oauth test AuthData. (#12988)
The ID field of Gitlab OAuth data was generated as a random number between 1-1000. Unfortunately, this gave a 1 in 1 million chance of two users generated this way colliding and meaning if you had two test users in a test case they silently ended up actually being the exact same user. We don't actually need to generate this randomly, so instead change to having the test cases explicitly set the ID number so the behaviour is as expected and completely deterministic. As you'd expect, with odds of exactly a million to 1, it just might (and in this case, it did indeed) happen.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9557bcf329
Коммит
1930cc6a11
@@ -8,7 +8,6 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"image"
|
"image"
|
||||||
"image/color"
|
"image/color"
|
||||||
"math/rand"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
@@ -74,8 +73,7 @@ func TestCreateOAuthUser(t *testing.T) {
|
|||||||
th := Setup(t).InitBasic()
|
th := Setup(t).InitBasic()
|
||||||
defer th.TearDown()
|
defer th.TearDown()
|
||||||
|
|
||||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
glUser := oauthgitlab.GitLabUser{Id: 42, Username: "o" + model.NewId(), Email: model.NewId() + "@simulator.amazonses.com", Name: "Joram Wilander"}
|
||||||
glUser := oauthgitlab.GitLabUser{Id: int64(r.Intn(1000)) + 1, Username: "o" + model.NewId(), Email: model.NewId() + "@simulator.amazonses.com", Name: "Joram Wilander"}
|
|
||||||
|
|
||||||
json := glUser.ToJson()
|
json := glUser.ToJson()
|
||||||
user, err := th.App.CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id)
|
user, err := th.App.CreateOAuthUser(model.USER_AUTH_SERVICE_GITLAB, strings.NewReader(json), th.BasicTeam.Id)
|
||||||
@@ -253,8 +251,8 @@ func TestUpdateOAuthUserAttrs(t *testing.T) {
|
|||||||
|
|
||||||
var user, user2 *model.User
|
var user, user2 *model.User
|
||||||
var gitlabUserObj oauthgitlab.GitLabUser
|
var gitlabUserObj oauthgitlab.GitLabUser
|
||||||
user, gitlabUserObj = createGitlabUser(t, th.App, username, email)
|
user, gitlabUserObj = createGitlabUser(t, th.App, 1, username, email)
|
||||||
user2, _ = createGitlabUser(t, th.App, username2, email2)
|
user2, _ = createGitlabUser(t, th.App, 2, username2, email2)
|
||||||
|
|
||||||
t.Run("UpdateUsername", func(t *testing.T) {
|
t.Run("UpdateUsername", func(t *testing.T) {
|
||||||
t.Run("NoExistingUserWithSameUsername", func(t *testing.T) {
|
t.Run("NoExistingUserWithSameUsername", func(t *testing.T) {
|
||||||
@@ -443,9 +441,8 @@ func getGitlabUserPayload(gitlabUser oauthgitlab.GitLabUser, t *testing.T) []byt
|
|||||||
return payload
|
return payload
|
||||||
}
|
}
|
||||||
|
|
||||||
func createGitlabUser(t *testing.T, a *App, username string, email string) (*model.User, oauthgitlab.GitLabUser) {
|
func createGitlabUser(t *testing.T, a *App, id int64, username string, email string) (*model.User, oauthgitlab.GitLabUser) {
|
||||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
gitlabUserObj := oauthgitlab.GitLabUser{Id: id, Username: username, Login: "user1", Email: email, Name: "Test User"}
|
||||||
gitlabUserObj := oauthgitlab.GitLabUser{Id: int64(r.Intn(1000)) + 1, Username: username, Login: "user1", Email: email, Name: "Test User"}
|
|
||||||
gitlabUser := getGitlabUserPayload(gitlabUserObj, t)
|
gitlabUser := getGitlabUserPayload(gitlabUserObj, t)
|
||||||
|
|
||||||
var user *model.User
|
var user *model.User
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user