Skip to content

Commit 29c087a

Browse files
committed
Prepare next steps
1 parent 2aa6268 commit 29c087a

File tree

1 file changed

+100
-71
lines changed

1 file changed

+100
-71
lines changed

integrations/git_test.go

Lines changed: 100 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"context"
99
"fmt"
1010
"io/ioutil"
11+
"log"
1112
"math/rand"
1213
"net"
1314
"net/http"
@@ -25,7 +26,7 @@ import (
2526
"github.com/stretchr/testify/assert"
2627
)
2728

28-
func onGiteaWebRun(t *testing.T, callback func(*testing.T, *url.URL)) {
29+
func onGiteaRun(t *testing.T, callback func(*testing.T, *url.URL)) {
2930
s := http.Server{
3031
Handler: mac,
3132
}
@@ -43,6 +44,8 @@ func onGiteaWebRun(t *testing.T, callback func(*testing.T, *url.URL)) {
4344

4445
go s.Serve(listener)
4546

47+
//TODO add SSH internal server
48+
4649
callback(t, u)
4750
}
4851

@@ -87,89 +90,115 @@ func generateCommit(repoPath, email, fullName string) error {
8790
func TestGit(t *testing.T) {
8891
prepareTestEnv(t)
8992

90-
onGiteaWebRun(t, func(t *testing.T, u *url.URL) {
93+
onGiteaRun(t, func(t *testing.T, u *url.URL) {
9194
dstPath, err := ioutil.TempDir("", "repo-tmp-17")
9295
assert.NoError(t, err)
9396
defer os.RemoveAll(dstPath)
9497
u.Path = "user2/repo1.git"
9598

96-
t.Run("Standard", func(t *testing.T) {
97-
t.Run("CloneNoLogin", func(t *testing.T) {
98-
dstLocalPath, err := ioutil.TempDir("", "repo1")
99-
assert.NoError(t, err)
100-
defer os.RemoveAll(dstLocalPath)
101-
err = git.Clone(u.String(), dstLocalPath, git.CloneRepoOptions{})
102-
assert.NoError(t, err)
103-
assert.True(t, com.IsExist(filepath.Join(dstLocalPath, "README.md")))
104-
})
99+
t.Run("HTTP", func(t *testing.T) {
100+
t.Run("Standard", func(t *testing.T) {
101+
t.Run("CloneNoLogin", func(t *testing.T) {
102+
dstLocalPath, err := ioutil.TempDir("", "repo1")
103+
assert.NoError(t, err)
104+
defer os.RemoveAll(dstLocalPath)
105+
err = git.Clone(u.String(), dstLocalPath, git.CloneRepoOptions{})
106+
assert.NoError(t, err)
107+
assert.True(t, com.IsExist(filepath.Join(dstLocalPath, "README.md")))
108+
})
105109

106-
t.Run("CreateRepo", func(t *testing.T) {
107-
session := loginUser(t, "user2")
108-
req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos", &api.CreateRepoOption{
109-
AutoInit: true,
110-
Description: "Temporary repo",
111-
Name: "repo-tmp-17",
112-
Private: false,
113-
Gitignores: "",
114-
License: "WTFPL",
115-
Readme: "Default",
110+
t.Run("CreateRepo", func(t *testing.T) {
111+
session := loginUser(t, "user2")
112+
req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos", &api.CreateRepoOption{
113+
AutoInit: true,
114+
Description: "Temporary repo",
115+
Name: "repo-tmp-17",
116+
Private: false,
117+
Gitignores: "",
118+
License: "WTFPL",
119+
Readme: "Default",
120+
})
121+
session.MakeRequest(t, req, http.StatusCreated)
116122
})
117-
session.MakeRequest(t, req, http.StatusCreated)
118-
})
119123

120-
u.Path = "user2/repo-tmp-17.git"
121-
u.User = url.UserPassword("user2", userPassword)
122-
t.Run("Clone", func(t *testing.T) {
123-
err = git.Clone(u.String(), dstPath, git.CloneRepoOptions{})
124-
assert.NoError(t, err)
125-
assert.True(t, com.IsExist(filepath.Join(dstPath, "README.md")))
126-
})
124+
u.Path = "user2/repo-tmp-17.git"
125+
u.User = url.UserPassword("user2", userPassword)
126+
t.Run("Clone", func(t *testing.T) {
127+
err = git.Clone(u.String(), dstPath, git.CloneRepoOptions{})
128+
assert.NoError(t, err)
129+
assert.True(t, com.IsExist(filepath.Join(dstPath, "README.md")))
130+
})
127131

128-
t.Run("PushCommit", func(t *testing.T) {
129-
err = generateCommit(dstPath, "[email protected]", "User Two")
130-
assert.NoError(t, err)
131-
//Push
132-
err = git.Push(dstPath, git.PushOptions{
133-
Branch: "master",
134-
Remote: u.String(),
135-
Force: false,
132+
t.Run("PushCommit", func(t *testing.T) {
133+
err = generateCommit(dstPath, "[email protected]", "User Two")
134+
assert.NoError(t, err)
135+
//Push
136+
err = git.Push(dstPath, git.PushOptions{
137+
Branch: "master",
138+
Remote: u.String(),
139+
Force: false,
140+
})
141+
assert.NoError(t, err)
136142
})
137-
assert.NoError(t, err)
138143
})
139-
})
140-
t.Run("LFS", func(t *testing.T) {
141-
t.Run("PushCommit", func(t *testing.T) {
142-
//Setup git LFS
143-
_, err = git.NewCommand("lfs").AddArguments("install").RunInDir(dstPath)
144-
assert.NoError(t, err)
145-
_, err = git.NewCommand("lfs").AddArguments("track", "data-file-*").RunInDir(dstPath)
146-
assert.NoError(t, err)
147-
err = git.AddChanges(dstPath, false, ".gitattributes")
148-
assert.NoError(t, err)
149-
150-
err = generateCommit(dstPath, "[email protected]", "User Two")
151-
//Push
152-
u.User = url.UserPassword("user2", userPassword)
153-
err = git.Push(dstPath, git.PushOptions{
154-
Branch: "master",
155-
Remote: u.String(),
156-
Force: false,
144+
t.Run("LFS", func(t *testing.T) {
145+
t.Run("PushCommit", func(t *testing.T) {
146+
//Setup git LFS
147+
_, err = git.NewCommand("lfs").AddArguments("install").RunInDir(dstPath)
148+
assert.NoError(t, err)
149+
_, err = git.NewCommand("lfs").AddArguments("track", "data-file-*").RunInDir(dstPath)
150+
assert.NoError(t, err)
151+
err = git.AddChanges(dstPath, false, ".gitattributes")
152+
assert.NoError(t, err)
153+
154+
err = generateCommit(dstPath, "[email protected]", "User Two")
155+
//Push
156+
u.User = url.UserPassword("user2", userPassword)
157+
err = git.Push(dstPath, git.PushOptions{
158+
Branch: "master",
159+
Remote: u.String(),
160+
Force: false,
161+
})
162+
assert.NoError(t, err)
163+
})
164+
t.Run("Locks", func(t *testing.T) {
165+
_, err = git.NewCommand("remote").AddArguments("set-url", "origin", u.String()).RunInDir(dstPath) //TODO add test ssh git-lfs-creds
166+
assert.NoError(t, err)
167+
_, err = git.NewCommand("lfs").AddArguments("locks").RunInDir(dstPath)
168+
assert.NoError(t, err)
169+
_, err = git.NewCommand("lfs").AddArguments("lock", "README.md").RunInDir(dstPath)
170+
assert.NoError(t, err)
171+
_, err = git.NewCommand("lfs").AddArguments("locks").RunInDir(dstPath)
172+
assert.NoError(t, err)
173+
_, err = git.NewCommand("lfs").AddArguments("unlock", "README.md").RunInDir(dstPath)
174+
assert.NoError(t, err)
157175
})
158-
assert.NoError(t, err)
159-
})
160-
t.Run("Locks", func(t *testing.T) {
161-
_, err = git.NewCommand("remote").AddArguments("set-url", "origin", u.String()).RunInDir(dstPath) //TODO add test ssh git-lfs-creds
162-
assert.NoError(t, err)
163-
_, err = git.NewCommand("lfs").AddArguments("locks").RunInDir(dstPath)
164-
assert.NoError(t, err)
165-
_, err = git.NewCommand("lfs").AddArguments("lock", "README.md").RunInDir(dstPath)
166-
assert.NoError(t, err)
167-
_, err = git.NewCommand("lfs").AddArguments("locks").RunInDir(dstPath)
168-
assert.NoError(t, err)
169-
_, err = git.NewCommand("lfs").AddArguments("unlock", "README.md").RunInDir(dstPath)
170-
assert.NoError(t, err)
171-
})
172176

177+
})
178+
})
179+
t.Run("SSH", func(t *testing.T) {
180+
//TODO
181+
u.Scheme = "ssh"
182+
u.User = url.User("git")
183+
//TODO setup port
184+
u.Host = "localhost:22"
185+
log.Println(u.String())
173186
})
174187
})
175188
}
189+
190+
/*
191+
192+
193+
// user1 is an admin user
194+
session := loginUser(t, "user1")
195+
keyOwner := models.AssertExistsAndLoadBean(t, &models.User{Name: "user2"}).(*models.User)
196+
197+
urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys", keyOwner.Name)
198+
req := NewRequestWithValues(t, "POST", urlStr, map[string]string{
199+
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDAu7tvIvX6ZHrRXuZNfkR3XLHSsuCK9Zn3X58lxBcQzuo5xZgB6vRwwm/QtJuF+zZPtY5hsQILBLmF+BZ5WpKZp1jBeSjH2G7lxet9kbcH+kIVj0tPFEoyKI9wvWqIwC4prx/WVk2wLTJjzBAhyNxfEq7C9CeiX9pQEbEqJfkKCQ== nocomment\n",
200+
"title": "test-key",
201+
})
202+
resp := session.MakeRequest(t, req, http.StatusCreated)
203+
204+
*/

0 commit comments

Comments
 (0)