add test coverage for original author conversion during migrations (#18506)
* add test coverage for original author conversion during migrations And create a function to factorize a code snippet that is repeated five times and would otherwise be more difficult to test and maintain consistently. Signed-off-by: Loïc Dachary <loic@dachary.org> * fix variable scope and int64 formatting * add missing calls to remapExternalUser and fix misplaced %d Co-authored-by: Loïc Dachary <loic@dachary.org> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
parent
6f6b8491da
commit
367894adc8
15 changed files with 222 additions and 173 deletions
1
models/fixtures/external_login_user.yml
Normal file
1
models/fixtures/external_login_user.yml
Normal file
|
@ -0,0 +1 @@
|
|||
[] # empty
|
|
@ -2329,3 +2329,20 @@ func deleteIssuesByRepoID(sess db.Engine, repoID int64) (attachmentPaths []strin
|
|||
|
||||
return
|
||||
}
|
||||
|
||||
// RemapExternalUser ExternalUserRemappable interface
|
||||
func (issue *Issue) RemapExternalUser(externalName string, externalID, userID int64) error {
|
||||
issue.OriginalAuthor = externalName
|
||||
issue.OriginalAuthorID = externalID
|
||||
issue.PosterID = userID
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetUserID ExternalUserRemappable interface
|
||||
func (issue *Issue) GetUserID() int64 { return issue.PosterID }
|
||||
|
||||
// GetExternalName ExternalUserRemappable interface
|
||||
func (issue *Issue) GetExternalName() string { return issue.OriginalAuthor }
|
||||
|
||||
// GetExternalID ExternalUserRemappable interface
|
||||
func (issue *Issue) GetExternalID() int64 { return issue.OriginalAuthorID }
|
||||
|
|
|
@ -1464,3 +1464,20 @@ func commitBranchCheck(gitRepo *git.Repository, startCommit *git.Commit, endComm
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemapExternalUser ExternalUserRemappable interface
|
||||
func (c *Comment) RemapExternalUser(externalName string, externalID, userID int64) error {
|
||||
c.OriginalAuthor = externalName
|
||||
c.OriginalAuthorID = externalID
|
||||
c.PosterID = userID
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetUserID ExternalUserRemappable interface
|
||||
func (c *Comment) GetUserID() int64 { return c.PosterID }
|
||||
|
||||
// GetExternalName ExternalUserRemappable interface
|
||||
func (c *Comment) GetExternalName() string { return c.OriginalAuthor }
|
||||
|
||||
// GetExternalID ExternalUserRemappable interface
|
||||
func (c *Comment) GetExternalID() int64 { return c.OriginalAuthorID }
|
||||
|
|
|
@ -343,3 +343,20 @@ func (list ReactionList) GetMoreUserCount() int {
|
|||
}
|
||||
return len(list) - setting.UI.ReactionMaxUserNum
|
||||
}
|
||||
|
||||
// RemapExternalUser ExternalUserRemappable interface
|
||||
func (r *Reaction) RemapExternalUser(externalName string, externalID, userID int64) error {
|
||||
r.OriginalAuthor = externalName
|
||||
r.OriginalAuthorID = externalID
|
||||
r.UserID = userID
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetUserID ExternalUserRemappable interface
|
||||
func (r *Reaction) GetUserID() int64 { return r.UserID }
|
||||
|
||||
// GetExternalName ExternalUserRemappable interface
|
||||
func (r *Reaction) GetExternalName() string { return r.OriginalAuthor }
|
||||
|
||||
// GetExternalID ExternalUserRemappable interface
|
||||
func (r *Reaction) GetExternalID() int64 { return r.OriginalAuthorID }
|
||||
|
|
|
@ -456,3 +456,20 @@ func SaveOrUpdateTag(repo *repo_model.Repository, newRel *Release) error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// RemapExternalUser ExternalUserRemappable interface
|
||||
func (r *Release) RemapExternalUser(externalName string, externalID, userID int64) error {
|
||||
r.OriginalAuthor = externalName
|
||||
r.OriginalAuthorID = externalID
|
||||
r.PublisherID = userID
|
||||
return nil
|
||||
}
|
||||
|
||||
// UserID ExternalUserRemappable interface
|
||||
func (r *Release) GetUserID() int64 { return r.PublisherID }
|
||||
|
||||
// ExternalName ExternalUserRemappable interface
|
||||
func (r *Release) GetExternalName() string { return r.OriginalAuthor }
|
||||
|
||||
// ExternalID ExternalUserRemappable interface
|
||||
func (r *Release) GetExternalID() int64 { return r.OriginalAuthorID }
|
||||
|
|
|
@ -987,3 +987,20 @@ func (r *Review) HTMLURL() string {
|
|||
}
|
||||
return comment.HTMLURL()
|
||||
}
|
||||
|
||||
// RemapExternalUser ExternalUserRemappable interface
|
||||
func (r *Review) RemapExternalUser(externalName string, externalID, userID int64) error {
|
||||
r.OriginalAuthor = externalName
|
||||
r.OriginalAuthorID = externalID
|
||||
r.ReviewerID = userID
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetUserID ExternalUserRemappable interface
|
||||
func (r *Review) GetUserID() int64 { return r.ReviewerID }
|
||||
|
||||
// GetExternalName ExternalUserRemappable interface
|
||||
func (r *Review) GetExternalName() string { return r.OriginalAuthor }
|
||||
|
||||
// GetExternalID ExternalUserRemappable interface
|
||||
func (r *Review) GetExternalID() int64 { return r.OriginalAuthorID }
|
||||
|
|
|
@ -68,6 +68,17 @@ type ExternalLoginUser struct {
|
|||
ExpiresAt time.Time
|
||||
}
|
||||
|
||||
type ExternalUserMigrated interface {
|
||||
GetExternalName() string
|
||||
GetExternalID() int64
|
||||
}
|
||||
|
||||
type ExternalUserRemappable interface {
|
||||
GetUserID() int64
|
||||
RemapExternalUser(externalName string, externalID, userID int64) error
|
||||
ExternalUserMigrated
|
||||
}
|
||||
|
||||
func init() {
|
||||
db.RegisterModel(new(ExternalLoginUser))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue