Skip to content

Commit 930cb4a

Browse files
committed
make onGiteaRun simpler
1 parent 85ab78b commit 930cb4a

File tree

2 files changed

+32
-85
lines changed

2 files changed

+32
-85
lines changed

tests/integration/git_helper_for_declarative_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,8 @@ func createSSHUrl(gitPath string, u *url.URL) *url.URL {
5757
return &u2
5858
}
5959

60-
func onGiteaRun[T testing.TB](t T, callback func(T, *url.URL), prepare ...bool) {
61-
if len(prepare) == 0 || prepare[0] {
62-
defer tests.PrepareTestEnv(t, 1)()
63-
}
60+
func onGiteaRun[T testing.TB](t T, callback func(T, *url.URL)) {
61+
defer tests.PrepareTestEnv(t, 1)()
6462
s := http.Server{
6563
Handler: testWebRoutes,
6664
}

tests/integration/gpg_git_test.go

Lines changed: 30 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"code.gitea.io/gitea/modules/process"
1717
"code.gitea.io/gitea/modules/setting"
1818
api "code.gitea.io/gitea/modules/structs"
19+
"code.gitea.io/gitea/modules/test"
1920
"code.gitea.io/gitea/tests"
2021

2122
"github.com/stretchr/testify/assert"
@@ -24,12 +25,7 @@ import (
2425
)
2526

2627
func TestGPGGit(t *testing.T) {
27-
defer tests.PrepareTestEnv(t)()
28-
username := "user2"
29-
30-
// OK Set a new GPG home
31-
tmpDir := t.TempDir()
32-
28+
tmpDir := t.TempDir() // use a temp dir to avoid messing with the user's GPG keyring
3329
err := os.Chmod(tmpDir, 0o700)
3430
assert.NoError(t, err)
3531

@@ -40,31 +36,20 @@ func TestGPGGit(t *testing.T) {
4036

4137
// Need to create a root key
4238
rootKeyPair, err := importTestingKey(tmpDir, "gitea", "[email protected]")
43-
assert.NoError(t, err)
44-
if err != nil {
45-
assert.FailNow(t, "Unable to import rootKeyPair")
39+
if !assert.NoError(t, err, "importTestingKey") {
40+
return
4641
}
4742

48-
rootKeyID := rootKeyPair.PrimaryKey.KeyIdShortString()
43+
defer test.MockVariableValue(&setting.Repository.Signing.SigningKey, rootKeyPair.PrimaryKey.KeyIdShortString())()
44+
defer test.MockVariableValue(&setting.Repository.Signing.SigningName, "gitea")()
45+
defer test.MockVariableValue(&setting.Repository.Signing.SigningEmail, "[email protected]")()
46+
defer test.MockVariableValue(&setting.Repository.Signing.InitialCommit, []string{"never"})()
47+
defer test.MockVariableValue(&setting.Repository.Signing.CRUDActions, []string{"never"})()
4948

50-
oldKeyID := setting.Repository.Signing.SigningKey
51-
oldName := setting.Repository.Signing.SigningName
52-
oldEmail := setting.Repository.Signing.SigningEmail
53-
defer func() {
54-
setting.Repository.Signing.SigningKey = oldKeyID
55-
setting.Repository.Signing.SigningName = oldName
56-
setting.Repository.Signing.SigningEmail = oldEmail
57-
}()
58-
59-
setting.Repository.Signing.SigningKey = rootKeyID
60-
setting.Repository.Signing.SigningName = "gitea"
61-
setting.Repository.Signing.SigningEmail = "[email protected]"
49+
username := "user2"
6250
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: username})
63-
64-
setting.Repository.Signing.InitialCommit = []string{"never"}
65-
setting.Repository.Signing.CRUDActions = []string{"never"}
66-
6751
baseAPITestContext := NewAPITestContext(t, username, "repo1")
52+
6853
onGiteaRun(t, func(t *testing.T, u *url.URL) {
6954
u.Path = baseAPITestContext.GitPath()
7055

@@ -87,11 +72,8 @@ func TestGPGGit(t *testing.T) {
8772
assert.False(t, response.Verification.Verified)
8873
}))
8974
})
90-
}, false)
91-
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
92-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
93-
u.Path = baseAPITestContext.GitPath()
9475

76+
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
9577
t.Run("Unsigned-Initial-CRUD-ParentSigned", func(t *testing.T) {
9678
defer tests.PrintCurrentTest(t)()
9779
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -104,11 +86,8 @@ func TestGPGGit(t *testing.T) {
10486
assert.False(t, response.Verification.Verified)
10587
}))
10688
})
107-
}, false)
108-
setting.Repository.Signing.CRUDActions = []string{"never"}
109-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
110-
u.Path = baseAPITestContext.GitPath()
11189

90+
setting.Repository.Signing.CRUDActions = []string{"never"}
11291
t.Run("Unsigned-Initial-CRUD-Never", func(t *testing.T) {
11392
defer tests.PrintCurrentTest(t)()
11493
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -117,11 +96,8 @@ func TestGPGGit(t *testing.T) {
11796
assert.False(t, response.Verification.Verified)
11897
}))
11998
})
120-
}, false)
121-
setting.Repository.Signing.CRUDActions = []string{"always"}
122-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
123-
u.Path = baseAPITestContext.GitPath()
12499

100+
setting.Repository.Signing.CRUDActions = []string{"always"}
125101
t.Run("Unsigned-Initial-CRUD-Always", func(t *testing.T) {
126102
defer tests.PrintCurrentTest(t)()
127103
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -154,11 +130,8 @@ func TestGPGGit(t *testing.T) {
154130
assert.Equal(t, "[email protected]", response.Verification.Signer.Email)
155131
}))
156132
})
157-
}, false)
158-
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
159-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
160-
u.Path = baseAPITestContext.GitPath()
161133

134+
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
162135
t.Run("Unsigned-Initial-CRUD-ParentSigned", func(t *testing.T) {
163136
defer tests.PrintCurrentTest(t)()
164137
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -177,11 +150,8 @@ func TestGPGGit(t *testing.T) {
177150
assert.Equal(t, "[email protected]", response.Verification.Signer.Email)
178151
}))
179152
})
180-
}, false)
181-
setting.Repository.Signing.InitialCommit = []string{"always"}
182-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
183-
u.Path = baseAPITestContext.GitPath()
184153

154+
setting.Repository.Signing.InitialCommit = []string{"always"}
185155
t.Run("AlwaysSign-Initial", func(t *testing.T) {
186156
defer tests.PrintCurrentTest(t)()
187157
testCtx := NewAPITestContext(t, username, "initial-always", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -205,11 +175,8 @@ func TestGPGGit(t *testing.T) {
205175
assert.Equal(t, "[email protected]", branch.Commit.Verification.Signer.Email)
206176
}))
207177
})
208-
}, false)
209-
setting.Repository.Signing.CRUDActions = []string{"never"}
210-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
211-
u.Path = baseAPITestContext.GitPath()
212178

179+
setting.Repository.Signing.CRUDActions = []string{"never"}
213180
t.Run("AlwaysSign-Initial-CRUD-Never", func(t *testing.T) {
214181
defer tests.PrintCurrentTest(t)()
215182
testCtx := NewAPITestContext(t, username, "initial-always-never", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -219,10 +186,8 @@ func TestGPGGit(t *testing.T) {
219186
assert.False(t, response.Verification.Verified)
220187
}))
221188
})
222-
}, false)
223-
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
224-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
225-
u.Path = baseAPITestContext.GitPath()
189+
190+
setting.Repository.Signing.CRUDActions = []string{"parentsigned"}
226191
t.Run("AlwaysSign-Initial-CRUD-ParentSigned-On-Always", func(t *testing.T) {
227192
defer tests.PrintCurrentTest(t)()
228193
testCtx := NewAPITestContext(t, username, "initial-always-parent", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -237,11 +202,8 @@ func TestGPGGit(t *testing.T) {
237202
assert.Equal(t, "[email protected]", response.Verification.Signer.Email)
238203
}))
239204
})
240-
}, false)
241-
setting.Repository.Signing.CRUDActions = []string{"always"}
242-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
243-
u.Path = baseAPITestContext.GitPath()
244205

206+
setting.Repository.Signing.CRUDActions = []string{"always"}
245207
t.Run("AlwaysSign-Initial-CRUD-Always", func(t *testing.T) {
246208
defer tests.PrintCurrentTest(t)()
247209
testCtx := NewAPITestContext(t, username, "initial-always-always", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
@@ -256,70 +218,57 @@ func TestGPGGit(t *testing.T) {
256218
assert.Equal(t, "[email protected]", response.Verification.Signer.Email)
257219
}))
258220
})
259-
}, false)
260-
var pr api.PullRequest
261-
setting.Repository.Signing.Merges = []string{"commitssigned"}
262-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
263-
u.Path = baseAPITestContext.GitPath()
264221

222+
setting.Repository.Signing.Merges = []string{"commitssigned"}
265223
t.Run("UnsignedMerging", func(t *testing.T) {
266224
defer tests.PrintCurrentTest(t)()
267225
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
268-
var err error
269226
t.Run("CreatePullRequest", func(t *testing.T) {
270-
pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "never2")(t)
227+
pr, err := doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "never2")(t)
271228
assert.NoError(t, err)
229+
t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index))
272230
})
273-
t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index))
274231
t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) {
275232
assert.NotNil(t, branch.Commit)
276233
assert.NotNil(t, branch.Commit.Verification)
277234
assert.False(t, branch.Commit.Verification.Verified)
278235
assert.Empty(t, branch.Commit.Verification.Signature)
279236
}))
280237
})
281-
}, false)
282-
setting.Repository.Signing.Merges = []string{"basesigned"}
283-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
284-
u.Path = baseAPITestContext.GitPath()
285238

239+
setting.Repository.Signing.Merges = []string{"basesigned"}
286240
t.Run("BaseSignedMerging", func(t *testing.T) {
287241
defer tests.PrintCurrentTest(t)()
288242
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
289-
var err error
290243
t.Run("CreatePullRequest", func(t *testing.T) {
291-
pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "parentsigned2")(t)
244+
pr, err := doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "parentsigned2")(t)
292245
assert.NoError(t, err)
246+
t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index))
293247
})
294-
t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index))
295248
t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) {
296249
assert.NotNil(t, branch.Commit)
297250
assert.NotNil(t, branch.Commit.Verification)
298251
assert.False(t, branch.Commit.Verification.Verified)
299252
assert.Empty(t, branch.Commit.Verification.Signature)
300253
}))
301254
})
302-
}, false)
303-
setting.Repository.Signing.Merges = []string{"commitssigned"}
304-
onGiteaRun(t, func(t *testing.T, u *url.URL) {
305-
u.Path = baseAPITestContext.GitPath()
306255

256+
setting.Repository.Signing.Merges = []string{"commitssigned"}
307257
t.Run("CommitsSignedMerging", func(t *testing.T) {
308258
defer tests.PrintCurrentTest(t)()
309259
testCtx := NewAPITestContext(t, username, "initial-unsigned", auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser)
310-
var err error
311260
t.Run("CreatePullRequest", func(t *testing.T) {
312-
pr, err = doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "always-parentsigned")(t)
261+
pr, err := doAPICreatePullRequest(testCtx, testCtx.Username, testCtx.Reponame, "master", "always-parentsigned")(t)
313262
assert.NoError(t, err)
263+
t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index))
314264
})
315-
t.Run("MergePR", doAPIMergePullRequest(testCtx, testCtx.Username, testCtx.Reponame, pr.Index))
316265
t.Run("CheckMasterBranchUnsigned", doAPIGetBranch(testCtx, "master", func(t *testing.T, branch api.Branch) {
317266
assert.NotNil(t, branch.Commit)
318267
assert.NotNil(t, branch.Commit.Verification)
319268
assert.True(t, branch.Commit.Verification.Verified)
320269
}))
321270
})
322-
}, false)
271+
})
323272
}
324273

325274
func crudActionCreateFile(t *testing.T, ctx APITestContext, user *user_model.User, from, to, path string, callback ...func(*testing.T, api.FileResponse)) func(*testing.T) {

0 commit comments

Comments
 (0)