Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

release_test.go 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. // Copyright 2018 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/modules/git"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestRelease_Create(t *testing.T) {
  11. assert.NoError(t, PrepareTestDatabase())
  12. user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
  13. repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  14. repoPath := RepoPath(user.Name, repo.Name)
  15. gitRepo, err := git.OpenRepository(repoPath)
  16. assert.NoError(t, err)
  17. assert.NoError(t, CreateRelease(gitRepo, &Release{
  18. RepoID: repo.ID,
  19. PublisherID: user.ID,
  20. TagName: "v0.1",
  21. Target: "master",
  22. Title: "v0.1 is released",
  23. Note: "v0.1 is released",
  24. IsDraft: false,
  25. IsPrerelease: false,
  26. IsTag: false,
  27. }, nil))
  28. assert.NoError(t, CreateRelease(gitRepo, &Release{
  29. RepoID: repo.ID,
  30. PublisherID: user.ID,
  31. TagName: "v0.1.1",
  32. Target: "65f1bf27bc3bf70f64657658635e66094edbcb4d",
  33. Title: "v0.1.1 is released",
  34. Note: "v0.1.1 is released",
  35. IsDraft: false,
  36. IsPrerelease: false,
  37. IsTag: false,
  38. }, nil))
  39. assert.NoError(t, CreateRelease(gitRepo, &Release{
  40. RepoID: repo.ID,
  41. PublisherID: user.ID,
  42. TagName: "v0.1.2",
  43. Target: "65f1bf2",
  44. Title: "v0.1.2 is released",
  45. Note: "v0.1.2 is released",
  46. IsDraft: false,
  47. IsPrerelease: false,
  48. IsTag: false,
  49. }, nil))
  50. assert.NoError(t, CreateRelease(gitRepo, &Release{
  51. RepoID: repo.ID,
  52. PublisherID: user.ID,
  53. TagName: "v0.1.3",
  54. Target: "65f1bf2",
  55. Title: "v0.1.3 is released",
  56. Note: "v0.1.3 is released",
  57. IsDraft: true,
  58. IsPrerelease: false,
  59. IsTag: false,
  60. }, nil))
  61. assert.NoError(t, CreateRelease(gitRepo, &Release{
  62. RepoID: repo.ID,
  63. PublisherID: user.ID,
  64. TagName: "v0.1.4",
  65. Target: "65f1bf2",
  66. Title: "v0.1.4 is released",
  67. Note: "v0.1.4 is released",
  68. IsDraft: false,
  69. IsPrerelease: true,
  70. IsTag: false,
  71. }, nil))
  72. assert.NoError(t, CreateRelease(gitRepo, &Release{
  73. RepoID: repo.ID,
  74. PublisherID: user.ID,
  75. TagName: "v0.1.5",
  76. Target: "65f1bf2",
  77. Title: "v0.1.5 is released",
  78. Note: "v0.1.5 is released",
  79. IsDraft: false,
  80. IsPrerelease: false,
  81. IsTag: true,
  82. }, nil))
  83. }
  84. func TestRelease_MirrorDelete(t *testing.T) {
  85. assert.NoError(t, PrepareTestDatabase())
  86. user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
  87. repo := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  88. repoPath := RepoPath(user.Name, repo.Name)
  89. migrationOptions := MigrateRepoOptions{
  90. Name: "test_mirror",
  91. Description: "Test mirror",
  92. IsPrivate: false,
  93. IsMirror: true,
  94. RemoteAddr: repoPath,
  95. Wiki: true,
  96. SyncReleasesWithTags: true,
  97. }
  98. mirror, err := MigrateRepository(user, user, migrationOptions)
  99. assert.NoError(t, err)
  100. gitRepo, err := git.OpenRepository(repoPath)
  101. assert.NoError(t, err)
  102. findOptions := FindReleasesOptions{IncludeDrafts: true, IncludeTags: true}
  103. initCount, err := GetReleaseCountByRepoID(mirror.ID, findOptions)
  104. assert.NoError(t, err)
  105. assert.NoError(t, CreateRelease(gitRepo, &Release{
  106. RepoID: repo.ID,
  107. PublisherID: user.ID,
  108. TagName: "v0.2",
  109. Target: "master",
  110. Title: "v0.2 is released",
  111. Note: "v0.2 is released",
  112. IsDraft: false,
  113. IsPrerelease: false,
  114. IsTag: true,
  115. }, nil))
  116. err = mirror.GetMirror()
  117. assert.NoError(t, err)
  118. _, ok := mirror.Mirror.runSync()
  119. assert.True(t, ok)
  120. count, err := GetReleaseCountByRepoID(mirror.ID, findOptions)
  121. assert.EqualValues(t, initCount+1, count)
  122. release, err := GetRelease(repo.ID, "v0.2")
  123. assert.NoError(t, err)
  124. assert.NoError(t, DeleteReleaseByID(release.ID, user, true))
  125. _, ok = mirror.Mirror.runSync()
  126. assert.True(t, ok)
  127. count, err = GetReleaseCountByRepoID(mirror.ID, findOptions)
  128. assert.EqualValues(t, initCount, count)
  129. }