aboutsummaryrefslogtreecommitdiffstats
path: root/modules/migrations/gitea_uploader_test.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-10-14 06:06:00 +0200
committerGitHub <noreply@github.com>2020-10-14 07:06:00 +0300
commit49b1948cb11f46b8dabc6c977079ca9a187c92e0 (patch)
tree4c582fd4a53ce6ee3d24b1ef902b3f242187eb50 /modules/migrations/gitea_uploader_test.go
parentdfa7291f8fafd2aac032ef73a78b588e4d0e9a36 (diff)
downloadgitea-49b1948cb11f46b8dabc6c977079ca9a187c92e0.tar.gz
gitea-49b1948cb11f46b8dabc6c977079ca9a187c92e0.zip
Gitea 2 Gitea migration (#12657)
* first draft * update gitea sdk to 9e280adb4da * adapt feat of updated sdk * releases now works * break the Reactions loop * use convertGiteaLabel * fix endless loop because paggination is not supported there !!! * rename gitea local uploader files * pagination can bite you in the ass * Version Checks * lint * docs * rename gitea sdk import to miss future conficts * go-swagger: dont scan the sdk structs * make sure gitea can shutdown gracefully * make GetPullRequests and GetIssues similar * rm useles * Add Test: started ... * ... add tests ... * Add tests and Fixing things * Workaround missing SHA * Adapt: Ensure that all migration requests are cancellable (714ab71ddc4260937b1480519d453d2dc4e77dd6) * LINT: fix misspells in test set * adapt ListMergeRequestAwardEmoji * update sdk * Return error when creating giteadownloader failed * update sdk * adapt new sdk * adopt new features * check version before err * adapt: 'migrate service type switch page' * optimize * Fix DefaultBranch * impruve * handle subPath * fix test * Fix ReviewCommentPosition * test GetReviews * add DefaultBranch int test set * rm unused * Update SDK to v0.13.0 * addopt sdk changes * found better link * format template * Update Docs * Update Gitea SDK (v0.13.1)
Diffstat (limited to 'modules/migrations/gitea_uploader_test.go')
-rw-r--r--modules/migrations/gitea_uploader_test.go112
1 files changed, 112 insertions, 0 deletions
diff --git a/modules/migrations/gitea_uploader_test.go b/modules/migrations/gitea_uploader_test.go
new file mode 100644
index 0000000000..8432a1eecd
--- /dev/null
+++ b/modules/migrations/gitea_uploader_test.go
@@ -0,0 +1,112 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Copyright 2018 Jonas Franz. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package migrations
+
+import (
+ "context"
+ "testing"
+ "time"
+
+ "code.gitea.io/gitea/models"
+ "code.gitea.io/gitea/modules/graceful"
+ "code.gitea.io/gitea/modules/migrations/base"
+ "code.gitea.io/gitea/modules/structs"
+ "code.gitea.io/gitea/modules/util"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestGiteaUploadRepo(t *testing.T) {
+ // FIXME: Since no accesskey or user/password will trigger rate limit of github, just skip
+ t.Skip()
+
+ models.PrepareTestEnv(t)
+
+ user := models.AssertExistsAndLoadBean(t, &models.User{ID: 1}).(*models.User)
+
+ var (
+ downloader = NewGithubDownloaderV3(context.Background(), "https://github.com", "", "", "", "go-xorm", "builder")
+ repoName = "builder-" + time.Now().Format("2006-01-02-15-04-05")
+ uploader = NewGiteaLocalUploader(graceful.GetManager().HammerContext(), user, user.Name, repoName)
+ )
+
+ err := migrateRepository(downloader, uploader, base.MigrateOptions{
+ CloneAddr: "https://github.com/go-xorm/builder",
+ RepoName: repoName,
+ AuthUsername: "",
+
+ Wiki: true,
+ Issues: true,
+ Milestones: true,
+ Labels: true,
+ Releases: true,
+ Comments: true,
+ PullRequests: true,
+ Private: true,
+ Mirror: false,
+ })
+ assert.NoError(t, err)
+
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{OwnerID: user.ID, Name: repoName}).(*models.Repository)
+ assert.True(t, repo.HasWiki())
+
+ milestones, err := models.GetMilestones(models.GetMilestonesOption{
+ RepoID: repo.ID,
+ State: structs.StateOpen,
+ })
+ assert.NoError(t, err)
+ assert.EqualValues(t, 1, len(milestones))
+
+ milestones, err = models.GetMilestones(models.GetMilestonesOption{
+ RepoID: repo.ID,
+ State: structs.StateClosed,
+ })
+ assert.NoError(t, err)
+ assert.EqualValues(t, 0, len(milestones))
+
+ labels, err := models.GetLabelsByRepoID(repo.ID, "", models.ListOptions{})
+ assert.NoError(t, err)
+ assert.EqualValues(t, 11, len(labels))
+
+ releases, err := models.GetReleasesByRepoID(repo.ID, models.FindReleasesOptions{
+ ListOptions: models.ListOptions{
+ PageSize: 10,
+ Page: 0,
+ },
+ IncludeTags: true,
+ })
+ assert.NoError(t, err)
+ assert.EqualValues(t, 8, len(releases))
+
+ releases, err = models.GetReleasesByRepoID(repo.ID, models.FindReleasesOptions{
+ ListOptions: models.ListOptions{
+ PageSize: 10,
+ Page: 0,
+ },
+ IncludeTags: false,
+ })
+ assert.NoError(t, err)
+ assert.EqualValues(t, 1, len(releases))
+
+ issues, err := models.Issues(&models.IssuesOptions{
+ RepoIDs: []int64{repo.ID},
+ IsPull: util.OptionalBoolFalse,
+ SortType: "oldest",
+ })
+ assert.NoError(t, err)
+ assert.EqualValues(t, 14, len(issues))
+ assert.NoError(t, issues[0].LoadDiscussComments())
+ assert.EqualValues(t, 0, len(issues[0].Comments))
+
+ pulls, _, err := models.PullRequests(repo.ID, &models.PullRequestsOptions{
+ SortType: "oldest",
+ })
+ assert.NoError(t, err)
+ assert.EqualValues(t, 34, len(pulls))
+ assert.NoError(t, pulls[0].LoadIssue())
+ assert.NoError(t, pulls[0].Issue.LoadDiscussComments())
+ assert.EqualValues(t, 2, len(pulls[0].Issue.Comments))
+}