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>
This commit is contained in:
parent
2b02343e21
commit
c53ad052d8
86 changed files with 1694 additions and 1464 deletions
|
@ -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,
|
||||
|
|
|
@ -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())
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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!")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue