diff options
author | Bjørn Erik Pedersen <[email protected]> | 2021-06-09 10:58:18 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2021-06-14 17:00:32 +0200 |
commit | d392893cd73dc00c927f342778f6dca9628d328e (patch) | |
tree | e2ea3eec09f36b7122ecdbc498c3c130e240e85c /helpers | |
parent | a886dd53b80322e1edf924f2ede4d4ea037c5baf (diff) | |
download | hugo-d392893cd73dc00c927f342778f6dca9628d328e.tar.gz hugo-d392893cd73dc00c927f342778f6dca9628d328e.zip |
Misc config loading fixes
The main motivation behind this is simplicity and correctnes, but the new small config library is also faster:
```
BenchmarkDefaultConfigProvider/Viper-16 252418 4546 ns/op 2720 B/op 30 allocs/op
BenchmarkDefaultConfigProvider/Custom-16 450756 2651 ns/op 1008 B/op 6 allocs/op
```
Fixes #8633
Fixes #8618
Fixes #8630
Updates #8591
Closes #6680
Closes #5192
Diffstat (limited to 'helpers')
-rw-r--r-- | helpers/content_test.go | 5 | ||||
-rw-r--r-- | helpers/general_test.go | 4 | ||||
-rw-r--r-- | helpers/path_test.go | 4 | ||||
-rw-r--r-- | helpers/testhelpers_test.go | 21 |
4 files changed, 11 insertions, 23 deletions
diff --git a/helpers/content_test.go b/helpers/content_test.go index 573c1c90d..515b788f1 100644 --- a/helpers/content_test.go +++ b/helpers/content_test.go @@ -19,12 +19,11 @@ import ( "strings" "testing" + "github.com/gohugoio/hugo/config" "github.com/spf13/afero" "github.com/gohugoio/hugo/common/loggers" - "github.com/spf13/viper" - qt "github.com/frankban/quicktest" ) @@ -103,7 +102,7 @@ func TestBytesToHTML(t *testing.T) { } func TestNewContentSpec(t *testing.T) { - cfg := viper.New() + cfg := config.New() c := qt.New(t) cfg.Set("summaryLength", 32) diff --git a/helpers/general_test.go b/helpers/general_test.go index 518188c17..bfabcbef4 100644 --- a/helpers/general_test.go +++ b/helpers/general_test.go @@ -19,7 +19,7 @@ import ( "strings" "testing" - "github.com/spf13/viper" + "github.com/gohugoio/hugo/config" "github.com/gohugoio/hugo/common/loggers" @@ -29,7 +29,7 @@ import ( func TestResolveMarkup(t *testing.T) { c := qt.New(t) - cfg := viper.New() + cfg := config.New() spec, err := NewContentSpec(cfg, loggers.NewErrorLogger(), afero.NewMemMapFs()) c.Assert(err, qt.IsNil) diff --git a/helpers/path_test.go b/helpers/path_test.go index e1ac90b2f..c95951832 100644 --- a/helpers/path_test.go +++ b/helpers/path_test.go @@ -31,7 +31,6 @@ import ( "github.com/gohugoio/hugo/hugofs" "github.com/spf13/afero" - "github.com/spf13/viper" ) func TestMakePath(t *testing.T) { @@ -490,8 +489,6 @@ func TestExists(t *testing.T) { } func TestAbsPathify(t *testing.T) { - defer viper.Reset() - type test struct { inPath, workingDir, expected string } @@ -511,7 +508,6 @@ func TestAbsPathify(t *testing.T) { } for i, d := range data { - viper.Reset() // todo see comment in AbsPathify ps := newTestDefaultPathSpec("workingDir", d.workingDir) diff --git a/helpers/testhelpers_test.go b/helpers/testhelpers_test.go index 4a6ebd0b1..7d63e4d88 100644 --- a/helpers/testhelpers_test.go +++ b/helpers/testhelpers_test.go @@ -2,24 +2,24 @@ package helpers import ( "github.com/gohugoio/hugo/common/loggers" + "github.com/gohugoio/hugo/config" "github.com/spf13/afero" - "github.com/spf13/viper" "github.com/gohugoio/hugo/hugofs" "github.com/gohugoio/hugo/langs" "github.com/gohugoio/hugo/modules" ) -func newTestPathSpec(fs *hugofs.Fs, v *viper.Viper) *PathSpec { +func newTestPathSpec(fs *hugofs.Fs, v config.Provider) *PathSpec { l := langs.NewDefaultLanguage(v) ps, _ := NewPathSpec(fs, l, nil) return ps } func newTestDefaultPathSpec(configKeyValues ...interface{}) *PathSpec { - v := viper.New() + v := config.New() fs := hugofs.NewMem(v) - cfg := newTestCfgFor(fs) + cfg := newTestCfg() for i := 0; i < len(configKeyValues); i += 2 { cfg.Set(configKeyValues[i].(string), configKeyValues[i+1]) @@ -27,15 +27,8 @@ func newTestDefaultPathSpec(configKeyValues ...interface{}) *PathSpec { return newTestPathSpec(fs, cfg) } -func newTestCfgFor(fs *hugofs.Fs) *viper.Viper { - v := newTestCfg() - v.SetFs(fs.Source) - - return v -} - -func newTestCfg() *viper.Viper { - v := viper.New() +func newTestCfg() config.Provider { + v := config.New() v.Set("contentDir", "content") v.Set("dataDir", "data") v.Set("i18nDir", "i18n") @@ -56,7 +49,7 @@ func newTestCfg() *viper.Viper { } func newTestContentSpec() *ContentSpec { - v := viper.New() + v := config.New() spec, err := NewContentSpec(v, loggers.NewErrorLogger(), afero.NewMemMapFs()) if err != nil { panic(err) |