summaryrefslogtreecommitdiffstats
path: root/models/unittest
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2021-12-01 15:50:01 +0800
committerGitHub <noreply@github.com>2021-12-01 15:50:01 +0800
commit042cac5fedeec8af53080b9666fe043072f3a6be (patch)
treeb13d57faa71ba8bc9f8b3d40f5be7e3735ac66a4 /models/unittest
parenta3517d8668482b58cb80ba10a956fe4e27e1a429 (diff)
downloadgitea-042cac5fedeec8af53080b9666fe043072f3a6be.tar.gz
gitea-042cac5fedeec8af53080b9666fe043072f3a6be.zip
Improve install code to avoid low-level mistakes. (#17779)
* Improve install code to avoid low-level mistakes. If a user tries to do a re-install in a Gitea database, they gets a warning and double check. When Gitea runs, it never create empty app.ini automatically. Also some small (related) refactoring: * Refactor db.InitEngine related logic make it more clean (especially for the install code) * Move some i18n strings out from setting.go to make the setting.go can be easily maintained. * Show errors in CLI code if an incorrect app.ini is used. * APP_DATA_PATH is created when installing, and checked when starting (no empty directory is created any more).
Diffstat (limited to 'models/unittest')
-rw-r--r--models/unittest/fixtures.go7
-rw-r--r--models/unittest/testdb.go3
2 files changed, 6 insertions, 4 deletions
diff --git a/models/unittest/fixtures.go b/models/unittest/fixtures.go
index 6277d1c725..e39acd766f 100644
--- a/models/unittest/fixtures.go
+++ b/models/unittest/fixtures.go
@@ -18,7 +18,8 @@ import (
var fixtures *testfixtures.Loader
-func getXORMEngine(engine ...*xorm.Engine) (x *xorm.Engine) {
+// GetXORMEngine gets the XORM engine
+func GetXORMEngine(engine ...*xorm.Engine) (x *xorm.Engine) {
if len(engine) == 1 {
return engine[0]
}
@@ -27,7 +28,7 @@ func getXORMEngine(engine ...*xorm.Engine) (x *xorm.Engine) {
// InitFixtures initialize test fixtures for a test database
func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) {
- e := getXORMEngine(engine...)
+ e := GetXORMEngine(engine...)
var testfiles func(*testfixtures.Loader) error
if opts.Dir != "" {
testfiles = testfixtures.Directory(opts.Dir)
@@ -69,7 +70,7 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) {
// LoadFixtures load fixtures for a test database
func LoadFixtures(engine ...*xorm.Engine) error {
- e := getXORMEngine(engine...)
+ e := GetXORMEngine(engine...)
var err error
// Database transaction conflicts could occur and result in ROLLBACK
// As a simple workaround, we just retry 20 times.
diff --git a/models/unittest/testdb.go b/models/unittest/testdb.go
index 8771bc1d21..94c93755e0 100644
--- a/models/unittest/testdb.go
+++ b/models/unittest/testdb.go
@@ -5,6 +5,7 @@
package unittest
import (
+ "context"
"fmt"
"net/url"
"os"
@@ -124,7 +125,7 @@ func CreateTestEngine(opts FixturesOptions) error {
return err
}
x.SetMapper(names.GonicMapper{})
- db.SetEngine(x)
+ db.SetDefaultEngine(context.Background(), x)
if err = db.SyncAllTables(); err != nil {
return err