Skip to content

Commit d25ffdd

Browse files
committed
fix tests
1 parent 9e4ebd5 commit d25ffdd

File tree

6 files changed

+127
-115
lines changed

6 files changed

+127
-115
lines changed

contrib/pr/checkout.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ func runPR() {
7979
setting.CheckLFSVersion()
8080
//models.LoadConfigs()
8181
/*
82-
models.DbCfg.Type = "sqlite3"
83-
models.DbCfg.Path = ":memory:"
84-
models.DbCfg.Timeout = 500
82+
setting.Database.Type = "sqlite3"
83+
setting.Database.Path = ":memory:"
84+
setting.Database.Timeout = 500
8585
*/
8686
db := setting.Cfg.Section("database")
8787
db.NewKey("DB_TYPE", "sqlite3")

integrations/migration-test/migration_test.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func initMigrationTest(t *testing.T) {
5454

5555
setting.NewContext()
5656
setting.CheckLFSVersion()
57-
models.LoadConfigs()
57+
setting.InitDBConfig()
5858
setting.NewLogServices(true)
5959
}
6060

@@ -64,7 +64,7 @@ func availableVersions() ([]string, error) {
6464
return nil, err
6565
}
6666
defer migrationsDir.Close()
67-
versionRE, err := regexp.Compile("gitea-v(?P<version>.+)\\." + regexp.QuoteMeta(models.DbCfg.Type) + "\\.sql.gz")
67+
versionRE, err := regexp.Compile("gitea-v(?P<version>.+)\\." + regexp.QuoteMeta(setting.Database.Type) + "\\.sql.gz")
6868
if err != nil {
6969
return nil, err
7070
}
@@ -85,7 +85,7 @@ func availableVersions() ([]string, error) {
8585
}
8686

8787
func readSQLFromFile(version string) (string, error) {
88-
filename := fmt.Sprintf("integrations/migration-test/gitea-v%s.%s.sql.gz", version, models.DbCfg.Type)
88+
filename := fmt.Sprintf("integrations/migration-test/gitea-v%s.%s.sql.gz", version, setting.Database.Type)
8989

9090
if _, err := os.Stat(filename); os.IsNotExist(err) {
9191
return "", nil
@@ -114,71 +114,71 @@ func restoreOldDB(t *testing.T, version string) bool {
114114
data, err := readSQLFromFile(version)
115115
assert.NoError(t, err)
116116
if len(data) == 0 {
117-
integrations.Printf("No db found to restore for %s version: %s\n", models.DbCfg.Type, version)
117+
integrations.Printf("No db found to restore for %s version: %s\n", setting.Database.Type, version)
118118
return false
119119
}
120120

121121
switch {
122-
case setting.UseSQLite3:
123-
os.Remove(models.DbCfg.Path)
124-
err := os.MkdirAll(path.Dir(models.DbCfg.Path), os.ModePerm)
122+
case setting.Database.UseSQLite3:
123+
os.Remove(setting.Database.Path)
124+
err := os.MkdirAll(path.Dir(setting.Database.Path), os.ModePerm)
125125
assert.NoError(t, err)
126126

127-
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d", models.DbCfg.Path, models.DbCfg.Timeout))
127+
db, err := sql.Open("sqlite3", fmt.Sprintf("file:%s?cache=shared&mode=rwc&_busy_timeout=%d", setting.Database.Path, setting.Database.Timeout))
128128
assert.NoError(t, err)
129129
defer db.Close()
130130

131131
_, err = db.Exec(data)
132132
assert.NoError(t, err)
133133
db.Close()
134134

135-
case setting.UseMySQL:
135+
case setting.Database.UseMySQL:
136136
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/",
137-
models.DbCfg.User, models.DbCfg.Passwd, models.DbCfg.Host))
137+
setting.Database.User, setting.Database.Passwd, setting.Database.Host))
138138
assert.NoError(t, err)
139139
defer db.Close()
140140

141-
_, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", models.DbCfg.Name))
141+
_, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", setting.Database.Name))
142142
assert.NoError(t, err)
143143

144-
_, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", models.DbCfg.Name))
144+
_, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", setting.Database.Name))
145145
assert.NoError(t, err)
146146

147147
db, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?multiStatements=true",
148-
models.DbCfg.User, models.DbCfg.Passwd, models.DbCfg.Host, models.DbCfg.Name))
148+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name))
149149
assert.NoError(t, err)
150150
defer db.Close()
151151

152152
_, err = db.Exec(data)
153153
assert.NoError(t, err)
154154
db.Close()
155155

156-
case setting.UsePostgreSQL:
156+
case setting.Database.UsePostgreSQL:
157157
db, err := sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/?sslmode=%s",
158-
models.DbCfg.User, models.DbCfg.Passwd, models.DbCfg.Host, models.DbCfg.SSLMode))
158+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.SSLMode))
159159
assert.NoError(t, err)
160160
defer db.Close()
161161

162-
_, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", models.DbCfg.Name))
162+
_, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", setting.Database.Name))
163163
assert.NoError(t, err)
164164

165-
_, err = db.Exec(fmt.Sprintf("CREATE DATABASE %s", models.DbCfg.Name))
165+
_, err = db.Exec(fmt.Sprintf("CREATE DATABASE %s", setting.Database.Name))
166166
assert.NoError(t, err)
167167
db.Close()
168168

169169
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
170-
models.DbCfg.User, models.DbCfg.Passwd, models.DbCfg.Host, models.DbCfg.Name, models.DbCfg.SSLMode))
170+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
171171
assert.NoError(t, err)
172172
defer db.Close()
173173

174174
_, err = db.Exec(data)
175175
assert.NoError(t, err)
176176
db.Close()
177177

178-
case setting.UseMSSQL:
179-
host, port := models.ParseMSSQLHostPort(models.DbCfg.Host)
178+
case setting.Database.UseMSSQL:
179+
host, port := setting.ParseMSSQLHostPort(setting.Database.Host)
180180
db, err := sql.Open("mssql", fmt.Sprintf("server=%s; port=%s; database=%s; user id=%s; password=%s;",
181-
host, port, "master", models.DbCfg.User, models.DbCfg.Passwd))
181+
host, port, "master", setting.Database.User, setting.Database.Passwd))
182182
assert.NoError(t, err)
183183
defer db.Close()
184184

@@ -191,7 +191,7 @@ func restoreOldDB(t *testing.T, version string) bool {
191191
dbname := statement[5 : len(statement)-1]
192192
db.Close()
193193
db, err = sql.Open("mssql", fmt.Sprintf("server=%s; port=%s; database=%s; user id=%s; password=%s;",
194-
host, port, dbname, models.DbCfg.User, models.DbCfg.Passwd))
194+
host, port, dbname, setting.Database.User, setting.Database.Passwd))
195195
assert.NoError(t, err)
196196
defer db.Close()
197197
}
@@ -210,7 +210,7 @@ func wrappedMigrate(x *xorm.Engine) error {
210210

211211
func doMigrationTest(t *testing.T, version string) {
212212
integrations.PrintCurrentTest(t)
213-
integrations.Printf("Performing migration test for %s version: %s\n", models.DbCfg.Type, version)
213+
integrations.Printf("Performing migration test for %s version: %s\n", setting.Database.Type, version)
214214
if !restoreOldDB(t, version) {
215215
return
216216
}
@@ -227,7 +227,7 @@ func doMigrationTest(t *testing.T, version string) {
227227
func TestMigrations(t *testing.T) {
228228
initMigrationTest(t)
229229

230-
dialect := models.DbCfg.Type
230+
dialect := setting.Database.Type
231231
versions, err := availableVersions()
232232
assert.NoError(t, err)
233233

models/models_test.go

Lines changed: 4 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
// Copyright 2016 The Gogs Authors. All rights reserved.
2-
// Copyright 2018 The Gitea Authors. All rights reserved.
1+
// Copyright 2019 The Gitea Authors. All rights reserved.
32
// Use of this source code is governed by a MIT-style
43
// license that can be found in the LICENSE file.
54

@@ -11,99 +10,18 @@ import (
1110
"path/filepath"
1211
"testing"
1312

13+
"code.gitea.io/gitea/modules/setting"
14+
1415
"github.com/stretchr/testify/assert"
1516
)
1617

17-
func Test_parsePostgreSQLHostPort(t *testing.T) {
18-
tests := []struct {
19-
HostPort string
20-
Host string
21-
Port string
22-
}{
23-
{
24-
HostPort: "127.0.0.1:1234",
25-
Host: "127.0.0.1",
26-
Port: "1234",
27-
},
28-
{
29-
HostPort: "127.0.0.1",
30-
Host: "127.0.0.1",
31-
Port: "5432",
32-
},
33-
{
34-
HostPort: "[::1]:1234",
35-
Host: "[::1]",
36-
Port: "1234",
37-
},
38-
{
39-
HostPort: "[::1]",
40-
Host: "[::1]",
41-
Port: "5432",
42-
},
43-
{
44-
HostPort: "/tmp/pg.sock:1234",
45-
Host: "/tmp/pg.sock",
46-
Port: "1234",
47-
},
48-
{
49-
HostPort: "/tmp/pg.sock",
50-
Host: "/tmp/pg.sock",
51-
Port: "5432",
52-
},
53-
}
54-
for _, test := range tests {
55-
host, port := parsePostgreSQLHostPort(test.HostPort)
56-
assert.Equal(t, test.Host, host)
57-
assert.Equal(t, test.Port, port)
58-
}
59-
}
60-
61-
func Test_getPostgreSQLConnectionString(t *testing.T) {
62-
tests := []struct {
63-
Host string
64-
Port string
65-
User string
66-
Passwd string
67-
Name string
68-
Param string
69-
SSLMode string
70-
Output string
71-
}{
72-
{
73-
Host: "/tmp/pg.sock",
74-
Port: "4321",
75-
User: "testuser",
76-
Passwd: "space space !#$%^^%^```-=?=",
77-
Name: "gitea",
78-
Param: "",
79-
SSLMode: "false",
80-
Output: "postgres://testuser:space%20space%20%21%23$%25%5E%5E%25%5E%60%60%60-=%3F=@:5432/giteasslmode=false&host=/tmp/pg.sock",
81-
},
82-
{
83-
Host: "localhost",
84-
Port: "1234",
85-
User: "pgsqlusername",
86-
Passwd: "I love Gitea!",
87-
Name: "gitea",
88-
Param: "",
89-
SSLMode: "true",
90-
Output: "postgres://pgsqlusername:I%20love%20Gitea%21@localhost:5432/giteasslmode=true",
91-
},
92-
}
93-
94-
for _, test := range tests {
95-
connStr := getPostgreSQLConnectionString(test.Host, test.User, test.Passwd, test.Name, test.Param, test.SSLMode)
96-
assert.Equal(t, test.Output, connStr)
97-
}
98-
}
99-
10018
func TestDumpDatabase(t *testing.T) {
10119
assert.NoError(t, PrepareTestDatabase())
10220

10321
dir, err := ioutil.TempDir(os.TempDir(), "dump")
10422
assert.NoError(t, err)
10523

106-
for _, dbType := range supportedDatabases {
24+
for _, dbType := range setting.SupportedDatabases {
10725
assert.NoError(t, DumpDatabase(filepath.Join(dir, dbType+".sql"), dbType))
10826
}
10927
}

modules/setting/database.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
)
1717

1818
var (
19-
supportedDatabases = []string{"mysql", "postgres", "mssql"}
19+
SupportedDatabases = []string{"mysql", "postgres", "mssql"}
2020

2121
// EnableSQLite3 use SQLite3, set by build flag
2222
EnableSQLite3 bool

modules/setting/database_sqlite.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ import (
1212

1313
func init() {
1414
EnableSQLite3 = true
15-
supportedDatabases = append(supportedDatabases, "sqlite3")
15+
SupportedDatabases = append(SupportedDatabases, "sqlite3")
1616
}

modules/setting/database_test.go

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Copyright 2019 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+
5+
package setting
6+
7+
import (
8+
"testing"
9+
10+
"github.com/stretchr/testify/assert"
11+
)
12+
13+
func Test_parsePostgreSQLHostPort(t *testing.T) {
14+
tests := []struct {
15+
HostPort string
16+
Host string
17+
Port string
18+
}{
19+
{
20+
HostPort: "127.0.0.1:1234",
21+
Host: "127.0.0.1",
22+
Port: "1234",
23+
},
24+
{
25+
HostPort: "127.0.0.1",
26+
Host: "127.0.0.1",
27+
Port: "5432",
28+
},
29+
{
30+
HostPort: "[::1]:1234",
31+
Host: "[::1]",
32+
Port: "1234",
33+
},
34+
{
35+
HostPort: "[::1]",
36+
Host: "[::1]",
37+
Port: "5432",
38+
},
39+
{
40+
HostPort: "/tmp/pg.sock:1234",
41+
Host: "/tmp/pg.sock",
42+
Port: "1234",
43+
},
44+
{
45+
HostPort: "/tmp/pg.sock",
46+
Host: "/tmp/pg.sock",
47+
Port: "5432",
48+
},
49+
}
50+
for _, test := range tests {
51+
host, port := parsePostgreSQLHostPort(test.HostPort)
52+
assert.Equal(t, test.Host, host)
53+
assert.Equal(t, test.Port, port)
54+
}
55+
}
56+
57+
func Test_getPostgreSQLConnectionString(t *testing.T) {
58+
tests := []struct {
59+
Host string
60+
Port string
61+
User string
62+
Passwd string
63+
Name string
64+
Param string
65+
SSLMode string
66+
Output string
67+
}{
68+
{
69+
Host: "/tmp/pg.sock",
70+
Port: "4321",
71+
User: "testuser",
72+
Passwd: "space space !#$%^^%^```-=?=",
73+
Name: "gitea",
74+
Param: "",
75+
SSLMode: "false",
76+
Output: "postgres://testuser:space%20space%20%21%23$%25%5E%5E%25%5E%60%60%60-=%3F=@:5432/giteasslmode=false&host=/tmp/pg.sock",
77+
},
78+
{
79+
Host: "localhost",
80+
Port: "1234",
81+
User: "pgsqlusername",
82+
Passwd: "I love Gitea!",
83+
Name: "gitea",
84+
Param: "",
85+
SSLMode: "true",
86+
Output: "postgres://pgsqlusername:I%20love%20Gitea%21@localhost:5432/giteasslmode=true",
87+
},
88+
}
89+
90+
for _, test := range tests {
91+
connStr := getPostgreSQLConnectionString(test.Host, test.User, test.Passwd, test.Name, test.Param, test.SSLMode)
92+
assert.Equal(t, test.Output, connStr)
93+
}
94+
}

0 commit comments

Comments
 (0)