From 93ca7c9e958e34469a337e4efcc7c75774ec50fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 5 Feb 2017 10:20:06 +0700 Subject: all: Refactor to nonglobal Viper, i18n etc. This is a final rewrite that removes all the global state in Hugo, which also enables the use if `t.Parallel` in tests. Updates #2701 Fixes #3016 --- create/content_test.go | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) (limited to 'create/content_test.go') diff --git a/create/content_test.go b/create/content_test.go index fcfecff10..4ef230202 100644 --- a/create/content_test.go +++ b/create/content_test.go @@ -19,6 +19,8 @@ import ( "strings" "testing" + "github.com/spf13/hugo/deps" + "github.com/spf13/hugo/hugolib" "fmt" @@ -33,7 +35,8 @@ import ( ) func TestNewContent(t *testing.T) { - initViper() + v := viper.New() + initViper(v) cases := []struct { kind string @@ -48,14 +51,17 @@ func TestNewContent(t *testing.T) { } for _, c := range cases { - s, err := hugolib.NewEnglishSiteMem() + cfg, fs := newTestCfg() + h, err := hugolib.NewHugoSites(deps.DepsCfg{Cfg: cfg, Fs: fs}) require.NoError(t, err) - require.NoError(t, initFs(s.Fs)) + require.NoError(t, initFs(fs)) + + s := h.Sites[0] require.NoError(t, create.NewContent(s, c.kind, c.path)) fname := filepath.Join("content", filepath.FromSlash(c.path)) - content := readFileFromFs(t, s.Fs.Source, fname) + content := readFileFromFs(t, fs.Source, fname) for i, v := range c.expected { found := strings.Contains(content, v) if !found { @@ -65,14 +71,14 @@ func TestNewContent(t *testing.T) { } } -func initViper() { - viper.Reset() - viper.Set("metaDataFormat", "toml") - viper.Set("archetypeDir", "archetypes") - viper.Set("contentDir", "content") - viper.Set("themesDir", "themes") - viper.Set("layoutDir", "layouts") - viper.Set("theme", "sample") +func initViper(v *viper.Viper) { + v.Set("metaDataFormat", "toml") + v.Set("archetypeDir", "archetypes") + v.Set("contentDir", "content") + v.Set("themesDir", "themes") + v.Set("layoutDir", "layouts") + v.Set("i18nDir", "i18n") + v.Set("theme", "sample") } func initFs(fs *hugofs.Fs) error { @@ -143,3 +149,16 @@ func readFileFromFs(t *testing.T, fs afero.Fs, filename string) string { } return string(b) } + +func newTestCfg() (*viper.Viper, *hugofs.Fs) { + + v := viper.New() + fs := hugofs.NewMem(v) + + v.SetFs(fs.Source) + + initViper(v) + + return v, fs + +} -- cgit v1.2.3