Browse Source

Remove unnecessary variable assignments (#17695)

* Remove unnecessary variable assignments

As title

* enable ineffassign

Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
tags/v1.16.0-rc1
Gusted 2 years ago
parent
commit
c98dd7a3e0
No account linked to committer's email address

+ 1
- 0
.golangci.yml View File

- misspell - misspell
- gocritic - gocritic
- bidichk - bidichk
- ineffassign
enable-all: false enable-all: false
disable-all: true disable-all: true
fast: false fast: false

+ 0
- 1
cmd/hook.go View File

} }
} else if lastline > 0 { } else if lastline > 0 {
fmt.Fprintf(out, "\n") fmt.Fprintf(out, "\n")
lastline = 0
} }


fmt.Fprintf(out, "Checked %d references in total\n", total) fmt.Fprintf(out, "Checked %d references in total\n", total)

+ 0
- 1
contrib/environment-to-ini/environment-to-ini.go View File

if !inKey { if !inKey {
if splitter := strings.Index(remaining, "__"); splitter > -1 { if splitter := strings.Index(remaining, "__"); splitter > -1 {
section += remaining[:splitter] section += remaining[:splitter]
inKey = true
key += remaining[splitter+2:] key += remaining[splitter+2:]
} else { } else {
section += remaining section += remaining

+ 2
- 2
integrations/api_comment_test.go View File

session := loginUser(t, repoOwner.Name) session := loginUser(t, repoOwner.Name)
token := getTokenForLoggedInUser(t, session) token := getTokenForLoggedInUser(t, session)
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID) req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID)
resp := session.MakeRequest(t, req, http.StatusOK)
session.MakeRequest(t, req, http.StatusOK)
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d?token=%s", repoOwner.Name, repo.Name, comment.ID, token) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d?token=%s", repoOwner.Name, repo.Name, comment.ID, token)
resp = session.MakeRequest(t, req, http.StatusOK)
resp := session.MakeRequest(t, req, http.StatusOK)


var apiComment api.Comment var apiComment api.Comment
DecodeJSON(t, resp, &apiComment) DecodeJSON(t, resp, &apiComment)

+ 2
- 2
integrations/api_issue_label_test.go View File



//DeleteLabel //DeleteLabel
req = NewRequest(t, "DELETE", singleURLStr) req = NewRequest(t, "DELETE", singleURLStr)
resp = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)


} }




//DeleteLabel //DeleteLabel
req = NewRequest(t, "DELETE", singleURLStr) req = NewRequest(t, "DELETE", singleURLStr)
resp = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)


} }

+ 1
- 1
integrations/api_issue_milestone_test.go View File

assert.Equal(t, int64(2), apiMilestones[0].ID) assert.Equal(t, int64(2), apiMilestones[0].ID)


req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d?token=%s", owner.Name, repo.Name, apiMilestone.ID, token)) req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d?token=%s", owner.Name, repo.Name, apiMilestone.ID, token))
resp = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)
} }

+ 8
- 8
integrations/api_issue_reaction_test.go View File

req := NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ req := NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{
Reaction: "wrong", Reaction: "wrong",
}) })
resp := session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


//Delete not allowed reaction //Delete not allowed reaction
req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{ req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{
Reaction: "zzz", Reaction: "zzz",
}) })
resp = session.MakeRequest(t, req, http.StatusOK)
session.MakeRequest(t, req, http.StatusOK)


//Add allowed reaction //Add allowed reaction
req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{
Reaction: "rocket", Reaction: "rocket",
}) })
resp = session.MakeRequest(t, req, http.StatusCreated)
resp := session.MakeRequest(t, req, http.StatusCreated)
var apiNewReaction api.Reaction var apiNewReaction api.Reaction
DecodeJSON(t, resp, &apiNewReaction) DecodeJSON(t, resp, &apiNewReaction)


//Add existing reaction //Add existing reaction
resp = session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


//Get end result of reaction list of issue #1 //Get end result of reaction list of issue #1
req = NewRequestf(t, "GET", urlStr) req = NewRequestf(t, "GET", urlStr)
req := NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ req := NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{
Reaction: "wrong", Reaction: "wrong",
}) })
resp := session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


//Delete none existing reaction //Delete none existing reaction
req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{ req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{
Reaction: "eyes", Reaction: "eyes",
}) })
resp = session.MakeRequest(t, req, http.StatusOK)
session.MakeRequest(t, req, http.StatusOK)


//Add allowed reaction //Add allowed reaction
req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{
Reaction: "+1", Reaction: "+1",
}) })
resp = session.MakeRequest(t, req, http.StatusCreated)
resp := session.MakeRequest(t, req, http.StatusCreated)
var apiNewReaction api.Reaction var apiNewReaction api.Reaction
DecodeJSON(t, resp, &apiNewReaction) DecodeJSON(t, resp, &apiNewReaction)


//Add existing reaction //Add existing reaction
resp = session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


//Get end result of reaction list of issue #1 //Get end result of reaction list of issue #1
req = NewRequestf(t, "GET", urlStr) req = NewRequestf(t, "GET", urlStr)

+ 3
- 3
integrations/api_notification_test.go View File

// -- GET /notifications/threads/{id} -- // -- GET /notifications/threads/{id} --
// get forbidden // get forbidden
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", 1, token)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", 1, token))
resp = session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


// get own // get own
req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", thread5.ID, token)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", thread5.ID, token))


lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" //946687801 <- only Notification 4 is in this filter ... lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" //946687801 <- only Notification 4 is in this filter ...
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s&token=%s", user2.Name, repo1.Name, lastReadAt, token)) req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s&token=%s", user2.Name, repo1.Name, lastReadAt, token))
resp = session.MakeRequest(t, req, http.StatusResetContent)
session.MakeRequest(t, req, http.StatusResetContent)


req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?status-types=unread&token=%s", token)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?status-types=unread&token=%s", token))
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)


// -- PATCH /notifications/threads/{id} -- // -- PATCH /notifications/threads/{id} --
req = NewRequest(t, "PATCH", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", thread5.ID, token)) req = NewRequest(t, "PATCH", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", thread5.ID, token))
resp = session.MakeRequest(t, req, http.StatusResetContent)
session.MakeRequest(t, req, http.StatusResetContent)


assert.Equal(t, models.NotificationStatusUnread, thread5.Status) assert.Equal(t, models.NotificationStatusUnread, thread5.Status)
thread5 = unittest.AssertExistsAndLoadBean(t, &models.Notification{ID: 5}).(*models.Notification) thread5 = unittest.AssertExistsAndLoadBean(t, &models.Notification{ID: 5}).(*models.Notification)

+ 1
- 1
integrations/api_pull_review_test.go View File

assert.EqualValues(t, "COMMENT", review.State) assert.EqualValues(t, "COMMENT", review.State)
assert.EqualValues(t, 0, review.CodeCommentsCount) assert.EqualValues(t, 0, review.CodeCommentsCount)
req = NewRequestf(t, http.MethodDelete, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, review.ID, token) req = NewRequestf(t, http.MethodDelete, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, review.ID, token)
resp = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)


// test CreatePullReview Comment without body but with comments // test CreatePullReview Comment without body but with comments
req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{ req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{

+ 3
- 4
integrations/api_repo_edit_test.go View File

// Get user2's token // Get user2's token
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token2 := getTokenForLoggedInUser(t, session) token2 := getTokenForLoggedInUser(t, session)
session = emptyTestSession(t)
// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)
token4 := getTokenForLoggedInUser(t, session) token4 := getTokenForLoggedInUser(t, session)
// Do some tests with invalid URL for external tracker and wiki // Do some tests with invalid URL for external tracker and wiki
repoEditOption.ExternalTracker.ExternalTrackerURL = "htp://www.somewebsite.com" repoEditOption.ExternalTracker.ExternalTrackerURL = "htp://www.somewebsite.com"
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption)
resp = session.MakeRequest(t, req, http.StatusUnprocessableEntity)
session.MakeRequest(t, req, http.StatusUnprocessableEntity)
repoEditOption.ExternalTracker.ExternalTrackerURL = "http://www.somewebsite.com" repoEditOption.ExternalTracker.ExternalTrackerURL = "http://www.somewebsite.com"
repoEditOption.ExternalTracker.ExternalTrackerFormat = "http://www.somewebsite.com/{user/{repo}?issue={index}" repoEditOption.ExternalTracker.ExternalTrackerFormat = "http://www.somewebsite.com/{user/{repo}?issue={index}"
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption)
resp = session.MakeRequest(t, req, http.StatusUnprocessableEntity)
session.MakeRequest(t, req, http.StatusUnprocessableEntity)
repoEditOption.ExternalTracker.ExternalTrackerFormat = "http://www.somewebsite.com/{user}/{repo}?issue={index}" repoEditOption.ExternalTracker.ExternalTrackerFormat = "http://www.somewebsite.com/{user}/{repo}?issue={index}"
repoEditOption.ExternalWiki.ExternalWikiURL = "htp://www.somewebsite.com" repoEditOption.ExternalWiki.ExternalWikiURL = "htp://www.somewebsite.com"
req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption)
resp = session.MakeRequest(t, req, http.StatusUnprocessableEntity)
session.MakeRequest(t, req, http.StatusUnprocessableEntity)


//Test small repo change through API with issue and wiki option not set; They shall not be touched. //Test small repo change through API with issue and wiki option not set; They shall not be touched.
*repoEditOption.Description = "small change" *repoEditOption.Description = "small change"

+ 0
- 1
integrations/api_repo_file_create_test.go View File

// Get user2's token // Get user2's token
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token2 := getTokenForLoggedInUser(t, session) token2 := getTokenForLoggedInUser(t, session)
session = emptyTestSession(t)
// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)
token4 := getTokenForLoggedInUser(t, session) token4 := getTokenForLoggedInUser(t, session)

+ 1
- 2
integrations/api_repo_file_delete_test.go View File

// Get user2's token // Get user2's token
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token2 := getTokenForLoggedInUser(t, session) token2 := getTokenForLoggedInUser(t, session)
session = emptyTestSession(t)
// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)
token4 := getTokenForLoggedInUser(t, session) token4 := getTokenForLoggedInUser(t, session)
deleteFileOptions.SHA = "badsha" deleteFileOptions.SHA = "badsha"
url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2)
req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions)
resp = session.MakeRequest(t, req, http.StatusBadRequest)
session.MakeRequest(t, req, http.StatusBadRequest)


// Test creating a file in repo16 by user4 who does not have write access // Test creating a file in repo16 by user4 who does not have write access
fileID++ fileID++

+ 0
- 1
integrations/api_repo_file_update_test.go View File

// Get user2's token // Get user2's token
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token2 := getTokenForLoggedInUser(t, session) token2 := getTokenForLoggedInUser(t, session)
session = emptyTestSession(t)
// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)
token4 := getTokenForLoggedInUser(t, session) token4 := getTokenForLoggedInUser(t, session)

+ 1
- 2
integrations/api_repo_get_contents_list_test.go View File

// Get user2's token // Get user2's token
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token2 := getTokenForLoggedInUser(t, session) token2 := getTokenForLoggedInUser(t, session)
session = emptyTestSession(t)
// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)
token4 := getTokenForLoggedInUser(t, session) token4 := getTokenForLoggedInUser(t, session)
// Test file contents a file with a bad ref // Test file contents a file with a bad ref
ref = "badref" ref = "badref"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref)
resp = session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)


// Test accessing private ref with user token that does not have access - should fail // Test accessing private ref with user token that does not have access - should fail
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4)

+ 1
- 2
integrations/api_repo_get_contents_test.go View File

// Get user2's token // Get user2's token
session := loginUser(t, user2.Name) session := loginUser(t, user2.Name)
token2 := getTokenForLoggedInUser(t, session) token2 := getTokenForLoggedInUser(t, session)
session = emptyTestSession(t)
// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)
token4 := getTokenForLoggedInUser(t, session) token4 := getTokenForLoggedInUser(t, session)
// Test file contents a file with a bad ref // Test file contents a file with a bad ref
ref = "badref" ref = "badref"
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?ref=%s", user2.Name, repo1.Name, treePath, ref)
resp = session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)


// Test accessing private ref with user token that does not have access - should fail // Test accessing private ref with user token that does not have access - should fail
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4)

+ 2
- 2
integrations/api_repo_tags_test.go View File



// delete tag // delete tag
delReq := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/tags/%s?token=%s", user.Name, repoName, newTag.Name, token) delReq := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/tags/%s?token=%s", user.Name, repoName, newTag.Name, token)
resp = session.MakeRequest(t, delReq, http.StatusNoContent)
session.MakeRequest(t, delReq, http.StatusNoContent)


// check if it's gone // check if it's gone
resp = session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)
} }


func createNewTagUsingAPI(t *testing.T, session *TestSession, token string, ownerName, repoName, name, target, msg string) *api.Tag { func createNewTagUsingAPI(t *testing.T, session *TestSession, token string, ownerName, repoName, name, target, msg string) *api.Tag {

+ 6
- 6
integrations/api_repo_teams_test.go View File



url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "NonExistingTeam", token) url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "NonExistingTeam", token)
req = NewRequest(t, "GET", url) req = NewRequest(t, "GET", url)
res = session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)


// AddTeam with user4 // AddTeam with user4
url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token) url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token)
req = NewRequest(t, "PUT", url) req = NewRequest(t, "PUT", url)
res = session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


// AddTeam with user2 // AddTeam with user2
user = unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User) user = unittest.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
token = getTokenForLoggedInUser(t, session) token = getTokenForLoggedInUser(t, session)
url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token) url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token)
req = NewRequest(t, "PUT", url) req = NewRequest(t, "PUT", url)
res = session.MakeRequest(t, req, http.StatusNoContent)
res = session.MakeRequest(t, req, http.StatusUnprocessableEntity) // test duplicate request
session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusUnprocessableEntity) // test duplicate request


// DeleteTeam // DeleteTeam
url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token) url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token)
req = NewRequest(t, "DELETE", url) req = NewRequest(t, "DELETE", url)
res = session.MakeRequest(t, req, http.StatusNoContent)
res = session.MakeRequest(t, req, http.StatusUnprocessableEntity) // test duplicate request
session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusUnprocessableEntity) // test duplicate request
} }

+ 10
- 10
integrations/api_repo_topic_test.go View File



// Test delete a topic // Test delete a topic
req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Topicname1", token2) req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Topicname1", token2)
res = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)


// Test add an existing topic // Test add an existing topic
req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Golang", token2) req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Golang", token2)
res = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)


// Test add a topic // Test add a topic
req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "topicName3", token2) req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "topicName3", token2)
res = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)


// Test read topics using token // Test read topics using token
req = NewRequest(t, "GET", url) req = NewRequest(t, "GET", url)
req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{
Topics: newTopics, Topics: newTopics,
}) })
res = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "GET", url) req = NewRequest(t, "GET", url)
res = session.MakeRequest(t, req, http.StatusOK) res = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) DecodeJSON(t, res, &topics)
req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{
Topics: newTopics, Topics: newTopics,
}) })
res = session.MakeRequest(t, req, http.StatusUnprocessableEntity)
session.MakeRequest(t, req, http.StatusUnprocessableEntity)
req = NewRequest(t, "GET", url) req = NewRequest(t, "GET", url)
res = session.MakeRequest(t, req, http.StatusOK) res = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) DecodeJSON(t, res, &topics)
req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{
Topics: newTopics, Topics: newTopics,
}) })
res = session.MakeRequest(t, req, http.StatusNoContent)
session.MakeRequest(t, req, http.StatusNoContent)
req = NewRequest(t, "GET", url) req = NewRequest(t, "GET", url)
res = session.MakeRequest(t, req, http.StatusOK) res = session.MakeRequest(t, req, http.StatusOK)
DecodeJSON(t, res, &topics) DecodeJSON(t, res, &topics)
req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{
Topics: newTopics, Topics: newTopics,
}) })
res = session.MakeRequest(t, req, http.StatusUnprocessableEntity)
session.MakeRequest(t, req, http.StatusUnprocessableEntity)


// Test add a topic when there is already maximum // Test add a topic when there is already maximum
req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "t26", token2) req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "t26", token2)
res = session.MakeRequest(t, req, http.StatusUnprocessableEntity)
session.MakeRequest(t, req, http.StatusUnprocessableEntity)


// Test delete a topic that repo doesn't have // Test delete a topic that repo doesn't have
req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Topicname1", token2) req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Topicname1", token2)
res = session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)


// Get user4's token // Get user4's token
session = loginUser(t, user4.Name) session = loginUser(t, user4.Name)


// Test add a topic to repo with write access (requires repo admin access) // Test add a topic to repo with write access (requires repo admin access)
req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user3.Name, repo3.Name, "topicName", token4) req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user3.Name, repo3.Name, "topicName", token4)
res = session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


} }

+ 1
- 1
integrations/api_team_test.go View File

csrf = GetCSRF(t, session, "/"+org.Name) csrf = GetCSRF(t, session, "/"+org.Name)
req = NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "team") req = NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "team")
req.Header.Add("X-Csrf-Token", csrf) req.Header.Add("X-Csrf-Token", csrf)
resp = session.MakeRequest(t, req, http.StatusForbidden)
session.MakeRequest(t, req, http.StatusForbidden)


} }

+ 2
- 2
integrations/api_user_orgs_test.go View File



session := emptyTestSession(t) session := emptyTestSession(t)
req := NewRequest(t, "GET", "/api/v1/user/orgs") req := NewRequest(t, "GET", "/api/v1/user/orgs")
resp := session.MakeRequest(t, req, http.StatusUnauthorized)
session.MakeRequest(t, req, http.StatusUnauthorized)


normalUsername := "user2" normalUsername := "user2"
session = loginUser(t, normalUsername) session = loginUser(t, normalUsername)
token := getTokenForLoggedInUser(t, session) token := getTokenForLoggedInUser(t, session)
req = NewRequest(t, "GET", "/api/v1/user/orgs?token="+token) req = NewRequest(t, "GET", "/api/v1/user/orgs?token="+token)
resp = session.MakeRequest(t, req, http.StatusOK)
resp := session.MakeRequest(t, req, http.StatusOK)
var orgs []*api.Organization var orgs []*api.Organization
DecodeJSON(t, resp, &orgs) DecodeJSON(t, resp, &orgs)
user3 := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user3"}).(*models.User) user3 := unittest.AssertExistsAndLoadBean(t, &models.User{Name: "user3"}).(*models.User)

+ 1
- 1
integrations/eventsource_test.go View File



lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" //946687801 <- only Notification 4 is in this filter ... lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" //946687801 <- only Notification 4 is in this filter ...
req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s&token=%s", user2.Name, repo1.Name, lastReadAt, token)) req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s&token=%s", user2.Name, repo1.Name, lastReadAt, token))
resp = session.MakeRequest(t, req, http.StatusResetContent)
session.MakeRequest(t, req, http.StatusResetContent)


req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?token=%s&status-types=unread", token)) req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?token=%s&status-types=unread", token))
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)

+ 1
- 1
integrations/issue_test.go View File

unittest.AssertExistsAndLoadBean(t, comment) unittest.AssertExistsAndLoadBean(t, comment)


// Ref from a different repository // Ref from a different repository
issueRefURL, issueRef = testIssueWithBean(t, "user12", 10, "TitleXRef", fmt.Sprintf("Description ref user2/repo1#%d", issueBase.Index))
_, issueRef = testIssueWithBean(t, "user12", 10, "TitleXRef", fmt.Sprintf("Description ref user2/repo1#%d", issueBase.Index))
unittest.AssertExistsAndLoadBean(t, &models.Comment{ unittest.AssertExistsAndLoadBean(t, &models.Comment{
IssueID: issueBase.ID, IssueID: issueBase.ID,
RefRepoID: 10, RefRepoID: 10,

+ 2
- 2
integrations/pull_status_test.go View File



req = NewRequest(t, "GET", "/user1/repo1/pulls") req = NewRequest(t, "GET", "/user1/repo1/pulls")
resp := session.MakeRequest(t, req, http.StatusOK) resp := session.MakeRequest(t, req, http.StatusOK)
doc := NewHTMLParser(t, resp.Body)
NewHTMLParser(t, resp.Body)


// Request repository commits page // Request repository commits page
req = NewRequest(t, "GET", "/user1/repo1/pulls/1/commits") req = NewRequest(t, "GET", "/user1/repo1/pulls/1/commits")
resp = session.MakeRequest(t, req, http.StatusOK) resp = session.MakeRequest(t, req, http.StatusOK)
doc = NewHTMLParser(t, resp.Body)
doc := NewHTMLParser(t, resp.Body)


// Get first commit URL // Get first commit URL
commitURL, exists := doc.doc.Find("#commits-table tbody tr td.sha a").Last().Attr("href") commitURL, exists := doc.doc.Find("#commits-table tbody tr td.sha a").Last().Attr("href")

+ 2
- 2
integrations/repo_fork_test.go View File



// Step0: check the existence of the to-fork repo // Step0: check the existence of the to-fork repo
req := NewRequestf(t, "GET", "/%s/%s", forkOwnerName, forkRepoName) req := NewRequestf(t, "GET", "/%s/%s", forkOwnerName, forkRepoName)
resp := session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)


// Step1: go to the main page of repo // Step1: go to the main page of repo
req = NewRequestf(t, "GET", "/%s/%s", ownerName, repoName) req = NewRequestf(t, "GET", "/%s/%s", ownerName, repoName)
resp = session.MakeRequest(t, req, http.StatusOK)
resp := session.MakeRequest(t, req, http.StatusOK)


// Step2: click the fork button // Step2: click the fork button
htmlDoc := NewHTMLParser(t, resp.Body) htmlDoc := NewHTMLParser(t, resp.Body)

+ 2
- 2
integrations/repo_generate_test.go View File



// Step0: check the existence of the generated repo // Step0: check the existence of the generated repo
req := NewRequestf(t, "GET", "/%s/%s", generateOwnerName, generateRepoName) req := NewRequestf(t, "GET", "/%s/%s", generateOwnerName, generateRepoName)
resp := session.MakeRequest(t, req, http.StatusNotFound)
session.MakeRequest(t, req, http.StatusNotFound)


// Step1: go to the main page of template repo // Step1: go to the main page of template repo
req = NewRequestf(t, "GET", "/%s/%s", templateOwnerName, templateRepoName) req = NewRequestf(t, "GET", "/%s/%s", templateOwnerName, templateRepoName)
resp = session.MakeRequest(t, req, http.StatusOK)
resp := session.MakeRequest(t, req, http.StatusOK)


// Step2: click the "Use this template" button // Step2: click the "Use this template" button
htmlDoc := NewHTMLParser(t, resp.Body) htmlDoc := NewHTMLParser(t, resp.Body)

+ 1
- 1
models/issue_assignees_test.go View File

assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, []int64{}, IDs) assert.Equal(t, []int64{}, IDs)


IDs, err = MakeIDsFromAPIAssigneesToAdd("", []string{"none_existing_user"})
_, err = MakeIDsFromAPIAssigneesToAdd("", []string{"none_existing_user"})
assert.Error(t, err) assert.Error(t, err)


IDs, err = MakeIDsFromAPIAssigneesToAdd("user1", []string{"user1"}) IDs, err = MakeIDsFromAPIAssigneesToAdd("user1", []string{"user1"})

+ 1
- 2
models/topic_test.go View File

func TestAddTopic(t *testing.T) { func TestAddTopic(t *testing.T) {
totalNrOfTopics := 6 totalNrOfTopics := 6
repo1NrOfTopics := 3 repo1NrOfTopics := 3
repo2NrOfTopics := 2


assert.NoError(t, unittest.PrepareTestDatabase()) assert.NoError(t, unittest.PrepareTestDatabase())


assert.Len(t, topics, repo1NrOfTopics) assert.Len(t, topics, repo1NrOfTopics)


assert.NoError(t, SaveTopics(2, "golang")) assert.NoError(t, SaveTopics(2, "golang"))
repo2NrOfTopics = 1
repo2NrOfTopics := 1
topics, _, err = FindTopics(&FindTopicOptions{}) topics, _, err = FindTopics(&FindTopicOptions{})
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, topics, totalNrOfTopics) assert.Len(t, topics, totalNrOfTopics)

+ 2
- 2
models/user_email_test.go View File



// Must find only primary addresses (i.e. from the `user` table) // Must find only primary addresses (i.e. from the `user` table)
opts = &SearchEmailOptions{IsPrimary: util.OptionalBoolTrue} opts = &SearchEmailOptions{IsPrimary: util.OptionalBoolTrue}
emails, count, err = SearchEmails(opts)
emails, _, err = SearchEmails(opts)
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, contains(func(s *SearchEmailResult) bool { return s.IsPrimary })) assert.True(t, contains(func(s *SearchEmailResult) bool { return s.IsPrimary }))
assert.False(t, contains(func(s *SearchEmailResult) bool { return !s.IsPrimary })) assert.False(t, contains(func(s *SearchEmailResult) bool { return !s.IsPrimary }))


// Must find only inactive addresses (i.e. not validated) // Must find only inactive addresses (i.e. not validated)
opts = &SearchEmailOptions{IsActivated: util.OptionalBoolFalse} opts = &SearchEmailOptions{IsActivated: util.OptionalBoolFalse}
emails, count, err = SearchEmails(opts)
emails, _, err = SearchEmails(opts)
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, contains(func(s *SearchEmailResult) bool { return !s.IsActivated })) assert.True(t, contains(func(s *SearchEmailResult) bool { return !s.IsActivated }))
assert.False(t, contains(func(s *SearchEmailResult) bool { return s.IsActivated })) assert.False(t, contains(func(s *SearchEmailResult) bool { return s.IsActivated }))

+ 1
- 2
modules/gitgraph/graph_test.go View File

parser.Reset() parser.Reset()
tgBytes := []byte(testglyphs) tgBytes := []byte(testglyphs)
tg := tgBytes tg := tgBytes
idx := bytes.Index(tg, []byte("\n"))
for i := 0; i < b.N; i++ { for i := 0; i < b.N; i++ {
parser.Reset() parser.Reset()
tg = tgBytes tg = tgBytes
idx = bytes.Index(tg, []byte("\n"))
idx := bytes.Index(tg, []byte("\n"))
for idx > 0 { for idx > 0 {
parser.ParseGlyphs(tg[:idx]) parser.ParseGlyphs(tg[:idx])
tg = tg[idx+1:] tg = tg[idx+1:]

+ 1
- 2
modules/nosql/manager_leveldb.go View File



return db.db, nil return db.db, nil
} }
dataDir := connection
uri := ToLevelDBURI(connection) uri := ToLevelDBURI(connection)
db = &levelDBHolder{ db = &levelDBHolder{
name: []string{connection, uri.String()}, name: []string{connection, uri.String()},
} }


dataDir = path.Join(uri.Host, uri.Path)
dataDir := path.Join(uri.Host, uri.Path)
opts := &opt.Options{} opts := &opt.Options{}
for k, v := range uri.Query() { for k, v := range uri.Query() {
switch replacer.Replace(strings.ToLower(k)) { switch replacer.Replace(strings.ToLower(k)) {

+ 0
- 2
modules/web/middleware/binding.go View File

AssignForm(f, data) AssignForm(f, data)


typ := reflect.TypeOf(f) typ := reflect.TypeOf(f)
val := reflect.ValueOf(f)


if typ.Kind() == reflect.Ptr { if typ.Kind() == reflect.Ptr {
typ = typ.Elem() typ = typ.Elem()
val = val.Elem()
} }


if field, ok := typ.FieldByName(errs[0].FieldNames[0]); ok { if field, ok := typ.FieldByName(errs[0].FieldNames[0]); ok {

+ 0
- 1
routers/web/org/teams.go View File

return return
} }
err = ctx.Org.Team.RemoveMember(uid) err = ctx.Org.Team.RemoveMember(uid)
page = "team"
if err != nil { if err != nil {
if models.IsErrLastOrgOwner(err) { if models.IsErrLastOrgOwner(err) {
ctx.Flash.Error(ctx.Tr("form.last_org_owner")) ctx.Flash.Error(ctx.Tr("form.last_org_owner"))

Loading…
Cancel
Save