diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2023-02-20 00:12:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 00:12:01 +0800 |
commit | c53ad052d8bd040ecd269d9757ce9885396a04af (patch) | |
tree | 7142da12dc9511445c76d3bf5616f1c220441a84 /routers | |
parent | 2b02343e218755c36c6a45da8a53c06dfff843a1 (diff) | |
download | gitea-c53ad052d8bd040ecd269d9757ce9885396a04af.tar.gz gitea-c53ad052d8bd040ecd269d9757ce9885396a04af.zip |
Refactor the setting to make unit test easier (#22405)
Some bugs caused by less unit tests in fundamental packages. This PR
refactor `setting` package so that create a unit test will be easier
than before.
- All `LoadFromXXX` files has been splited as two functions, one is
`InitProviderFromXXX` and `LoadCommonSettings`. The first functions will
only include the code to create or new a ini file. The second function
will load common settings.
- It also renames all functions in setting from `newXXXService` to
`loadXXXSetting` or `loadXXXFrom` to make the function name less
confusing.
- Move `XORMLog` to `SQLLog` because it's a better name for that.
Maybe we should finally move these `loadXXXSetting` into the `XXXInit`
function? Any idea?
---------
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: delvh <dev.lh@web.de>
Diffstat (limited to 'routers')
-rw-r--r-- | routers/api/v1/repo/main_test.go | 4 | ||||
-rw-r--r-- | routers/common/middleware.go | 4 | ||||
-rw-r--r-- | routers/init.go | 6 | ||||
-rw-r--r-- | routers/install/install.go | 4 | ||||
-rw-r--r-- | routers/install/setting.go | 14 | ||||
-rw-r--r-- | routers/private/manager.go | 6 | ||||
-rw-r--r-- | routers/private/ssh_log.go | 2 | ||||
-rw-r--r-- | routers/web/admin/config.go | 12 |
8 files changed, 27 insertions, 25 deletions
diff --git a/routers/api/v1/repo/main_test.go b/routers/api/v1/repo/main_test.go index 543fb922d6..c7466c493f 100644 --- a/routers/api/v1/repo/main_test.go +++ b/routers/api/v1/repo/main_test.go @@ -13,8 +13,8 @@ import ( ) func TestMain(m *testing.M) { - setting.LoadForTest() - setting.NewQueueService() + setting.InitProviderAndLoadCommonSettingsForTest() + setting.LoadQueueSettings() unittest.MainTest(m, &unittest.TestOptions{ GiteaRootPath: filepath.Join("..", "..", "..", ".."), SetUp: webhook_service.Init, diff --git a/routers/common/middleware.go b/routers/common/middleware.go index d664bfccfa..4f9d43c362 100644 --- a/routers/common/middleware.go +++ b/routers/common/middleware.go @@ -50,11 +50,11 @@ func Middlewares() []func(http.Handler) http.Handler { handlers = append(handlers, middleware.StripSlashes) - if !setting.DisableRouterLog { + if !setting.Log.DisableRouterLog { handlers = append(handlers, routing.NewLoggerHandler()) } - if setting.EnableAccessLog { + if setting.Log.EnableAccessLog { handlers = append(handlers, context.AccessLogger()) } diff --git a/routers/init.go b/routers/init.go index ab2e2a0bb7..6a51de669a 100644 --- a/routers/init.go +++ b/routers/init.go @@ -73,7 +73,7 @@ func mustInitCtx(ctx context.Context, fn func(ctx context.Context) error) { // InitGitServices init new services for git, this is also called in `contrib/pr/checkout.go` func InitGitServices() { - setting.NewServices() + setting.LoadSettings() mustInit(storage.Init) mustInit(repo_service.Init) } @@ -119,7 +119,7 @@ func GlobalInitInstalled(ctx context.Context) { log.Info("AppPath: %s", setting.AppPath) log.Info("AppWorkPath: %s", setting.AppWorkPath) log.Info("Custom path: %s", setting.CustomPath) - log.Info("Log path: %s", setting.LogRootPath) + log.Info("Log path: %s", setting.Log.RootPath) log.Info("Configuration file: %s", setting.CustomConf) log.Info("Run Mode: %s", util.ToTitleCase(setting.RunMode)) log.Info("Gitea v%s%s", setting.AppVer, setting.AppBuiltWith) @@ -127,7 +127,7 @@ func GlobalInitInstalled(ctx context.Context) { // Setup i18n translation.InitLocales(ctx) - setting.NewServices() + setting.LoadSettings() mustInit(storage.Init) mailer.NewContext(ctx) diff --git a/routers/install/install.go b/routers/install/install.go index 34ed5c355b..a3d64e5f73 100644 --- a/routers/install/install.go +++ b/routers/install/install.go @@ -134,7 +134,7 @@ func Install(ctx *context.Context) { form.SSHPort = setting.SSH.Port form.HTTPPort = setting.HTTPPort form.AppURL = setting.AppURL - form.LogRootPath = setting.LogRootPath + form.LogRootPath = setting.Log.RootPath // E-mail service settings if setting.MailService != nil { @@ -467,7 +467,7 @@ func SubmitInstall(ctx *context.Context) { cfg.Section("session").Key("PROVIDER").SetValue("file") cfg.Section("log").Key("MODE").SetValue("console") - cfg.Section("log").Key("LEVEL").SetValue(setting.LogLevel.String()) + cfg.Section("log").Key("LEVEL").SetValue(setting.Log.Level.String()) cfg.Section("log").Key("ROOT_PATH").SetValue(form.LogRootPath) cfg.Section("log").Key("ROUTER").SetValue("console") diff --git a/routers/install/setting.go b/routers/install/setting.go index b76219f45d..68984f1e78 100644 --- a/routers/install/setting.go +++ b/routers/install/setting.go @@ -15,20 +15,21 @@ import ( // PreloadSettings preloads the configuration to check if we need to run install func PreloadSettings(ctx context.Context) bool { - setting.LoadAllowEmpty() + setting.InitProviderAllowEmpty() + setting.LoadCommonSettings() if !setting.InstallLock { log.Info("AppPath: %s", setting.AppPath) log.Info("AppWorkPath: %s", setting.AppWorkPath) log.Info("Custom path: %s", setting.CustomPath) - log.Info("Log path: %s", setting.LogRootPath) + log.Info("Log path: %s", setting.Log.RootPath) log.Info("Configuration file: %s", setting.CustomConf) log.Info("Prepare to run install page") translation.InitLocales(ctx) if setting.EnableSQLite3 { log.Info("SQLite3 is supported") } - setting.InitDBConfig() - setting.NewServicesForInstall() + + setting.LoadSettingsForInstall() svg.Init() } @@ -37,8 +38,9 @@ func PreloadSettings(ctx context.Context) bool { // reloadSettings reloads the existing settings and starts up the database func reloadSettings(ctx context.Context) { - setting.LoadFromExisting() - setting.InitDBConfig() + setting.InitProviderFromExistingFile() + setting.LoadCommonSettings() + setting.LoadDBSetting() if setting.InstallLock { if err := common.InitDBEngine(ctx); err == nil { log.Info("ORM engine initialization successful!") diff --git a/routers/private/manager.go b/routers/private/manager.go index f15da298d6..a56fe9d123 100644 --- a/routers/private/manager.go +++ b/routers/private/manager.go @@ -116,11 +116,11 @@ func AddLogger(ctx *context.PrivateContext) { } if _, ok := opts.Config["level"]; !ok { - opts.Config["level"] = setting.LogLevel + opts.Config["level"] = setting.Log.Level } if _, ok := opts.Config["stacktraceLevel"]; !ok { - opts.Config["stacktraceLevel"] = setting.StacktraceLogLevel + opts.Config["stacktraceLevel"] = setting.Log.StacktraceLogLevel } if opts.Mode == "file" { @@ -135,7 +135,7 @@ func AddLogger(ctx *context.PrivateContext) { } } - bufferLen := setting.Cfg.Section("log").Key("BUFFER_LEN").MustInt64(10000) + bufferLen := setting.Log.BufferLength byteConfig, err := json.Marshal(opts.Config) if err != nil { log.Error("Failed to marshal log configuration: %v %v", opts.Config, err) diff --git a/routers/private/ssh_log.go b/routers/private/ssh_log.go index 54604ad554..eacfa18f05 100644 --- a/routers/private/ssh_log.go +++ b/routers/private/ssh_log.go @@ -15,7 +15,7 @@ import ( // SSHLog hook to response ssh log func SSHLog(ctx *context.PrivateContext) { - if !setting.EnableSSHLog { + if !setting.Log.EnableSSHLog { ctx.Status(http.StatusOK) return } diff --git a/routers/web/admin/config.go b/routers/web/admin/config.go index 73ce4cb990..2566cbe42b 100644 --- a/routers/web/admin/config.go +++ b/routers/web/admin/config.go @@ -117,7 +117,7 @@ func Config(ctx *context.Context) { ctx.Data["AppUrl"] = setting.AppURL ctx.Data["Domain"] = setting.Domain ctx.Data["OfflineMode"] = setting.OfflineMode - ctx.Data["DisableRouterLog"] = setting.DisableRouterLog + ctx.Data["DisableRouterLog"] = setting.Log.DisableRouterLog ctx.Data["RunUser"] = setting.RunUser ctx.Data["RunMode"] = util.ToTitleCase(setting.RunMode) ctx.Data["GitVersion"] = git.VersionInfo() @@ -125,7 +125,7 @@ func Config(ctx *context.Context) { ctx.Data["RepoRootPath"] = setting.RepoRootPath ctx.Data["CustomRootPath"] = setting.CustomPath ctx.Data["StaticRootPath"] = setting.StaticRootPath - ctx.Data["LogRootPath"] = setting.LogRootPath + ctx.Data["LogRootPath"] = setting.Log.RootPath ctx.Data["ScriptType"] = setting.ScriptType ctx.Data["ReverseProxyAuthUser"] = setting.ReverseProxyAuthUser ctx.Data["ReverseProxyAuthEmail"] = setting.ReverseProxyAuthEmail @@ -183,10 +183,10 @@ func Config(ctx *context.Context) { ctx.Data["EnvVars"] = envVars ctx.Data["Loggers"] = setting.GetLogDescriptions() - ctx.Data["EnableAccessLog"] = setting.EnableAccessLog - ctx.Data["AccessLogTemplate"] = setting.AccessLogTemplate - ctx.Data["DisableRouterLog"] = setting.DisableRouterLog - ctx.Data["EnableXORMLog"] = setting.EnableXORMLog + ctx.Data["EnableAccessLog"] = setting.Log.EnableAccessLog + ctx.Data["AccessLogTemplate"] = setting.Log.AccessLogTemplate + ctx.Data["DisableRouterLog"] = setting.Log.DisableRouterLog + ctx.Data["EnableXORMLog"] = setting.Log.EnableXORMLog ctx.Data["LogSQL"] = setting.Database.LogSQL ctx.HTML(http.StatusOK, tplConfig) |