shithub: hugo

Download patch

ref: 691156c5baf81dc16a41856c4eaa814b3262a02e
parent: a988d3cf3631e07c7d2bf5bb9eb9be21ee21fd04
author: Bjørn Erik Pedersen <[email protected]>
date: Wed Feb 15 05:00:34 EST 2017

Use OS fs by default

Fixes #3032

--- a/create/content_test.go
+++ b/create/content_test.go
@@ -48,7 +48,7 @@
 	}
 
 	for _, c := range cases {
-		s, err := hugolib.NewEnglishSite()
+		s, err := hugolib.NewEnglishSiteMem()
 		require.NoError(t, err)
 		require.NoError(t, initFs(s.Fs))
 
--- a/deps/deps.go
+++ b/deps/deps.go
@@ -67,8 +67,8 @@
 	}
 
 	if fs == nil {
-		// Default to the most used file systems.
-		fs = hugofs.NewMem()
+		// Default to the production file systems.
+		fs = hugofs.NewDefault()
 	}
 
 	d := &Deps{
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -148,6 +148,7 @@
 	return s, nil
 }
 
+// TODO(bep) globals clean below...
 // NewSiteDefaultLang creates a new site in the default language.
 // The site will have a template system loaded and ready to use.
 // Note: This is mainly used in single site tests.
@@ -155,7 +156,7 @@
 	return newSiteForLang(helpers.NewDefaultLanguage(), withTemplate...)
 }
 
-// NewSiteDefaultLang creates a new site in the default language.
+// NewEnglishSite creates a new site in English language.
 // The site will have a template system loaded and ready to use.
 // Note: This is mainly used in single site tests.
 func NewEnglishSite(withTemplate ...func(templ tplapi.Template) error) (*Site, error) {
@@ -162,7 +163,25 @@
 	return newSiteForLang(helpers.NewLanguage("en"), withTemplate...)
 }
 
-// NewSiteDefaultLang creates a new site in the default language.
+// NewEnglishSite creates a new site in the  English language with in-memory Fs.
+// The site will have a template system loaded and ready to use.
+// Note: This is mainly used in single site tests.
+func NewEnglishSiteMem(withTemplate ...func(templ tplapi.Template) error) (*Site, error) {
+	withTemplates := func(templ tplapi.Template) error {
+		for _, wt := range withTemplate {
+			if err := wt(templ); err != nil {
+				return err
+			}
+		}
+		return nil
+	}
+
+	cfg := deps.DepsCfg{WithTemplate: withTemplates, Language: helpers.NewLanguage("en"), Fs: hugofs.NewMem()}
+
+	return newSiteForCfg(cfg)
+}
+
+// newSiteForLang creates a new site in the given language.
 func newSiteForLang(lang *helpers.Language, withTemplate ...func(templ tplapi.Template) error) (*Site, error) {
 	withTemplates := func(templ tplapi.Template) error {
 		for _, wt := range withTemplate {
@@ -173,6 +192,12 @@
 		return nil
 	}
 	cfg := deps.DepsCfg{WithTemplate: withTemplates, Language: lang}
+
+	return newSiteForCfg(cfg)
+
+}
+
+func newSiteForCfg(cfg deps.DepsCfg) (*Site, error) {
 	s, err := newSite(cfg)
 
 	if err != nil {
--- a/hugolib/site_test.go
+++ b/hugolib/site_test.go
@@ -355,6 +355,13 @@
 
 }
 
+func TestNewSiteDefaultLang(t *testing.T) {
+	s, err := NewSiteDefaultLang()
+	require.NoError(t, err)
+	require.Equal(t, hugofs.Os, s.Fs.Source)
+	require.Equal(t, hugofs.Os, s.Fs.Destination)
+}
+
 // Issue #1176
 func TestSectionNaming(t *testing.T) {
 
--- a/tpl/template_funcs_test.go
+++ b/tpl/template_funcs_test.go
@@ -50,13 +50,17 @@
 )
 
 var (
-	logger            = jww.NewNotepad(jww.LevelFatal, jww.LevelFatal, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime)
-	defaultDepsConfig = deps.DepsCfg{
+	logger = jww.NewNotepad(jww.LevelFatal, jww.LevelFatal, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime)
+)
+
+func newDefaultDepsCfg() deps.DepsCfg {
+	return deps.DepsCfg{
 		Language:         helpers.NewLanguage("en"),
+		Fs:               hugofs.NewMem(),
 		Logger:           logger,
 		TemplateProvider: DefaultTemplateProvider,
 	}
-)
+}
 
 type tstNoStringer struct {
 }
@@ -268,7 +272,7 @@
 
 	tstInitTemplates()
 
-	config := defaultDepsConfig
+	config := newDefaultDepsCfg()
 	config.WithTemplate = func(templ tplapi.Template) error {
 		if _, err := templ.New("test").Parse(in); err != nil {
 			t.Fatal("Got error on parse", err)
@@ -2798,7 +2802,9 @@
 			tmp = tc.tmpl
 		}
 
-		defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
+		cfg := newDefaultDepsCfg()
+
+		cfg.WithTemplate = func(templ tplapi.Template) error {
 			err := templ.AddTemplate("testroot", tmp)
 			if err != nil {
 				return err
@@ -2811,7 +2817,7 @@
 			return nil
 		}
 
-		de := deps.New(defaultDepsConfig)
+		de := deps.New(cfg)
 		require.NoError(t, de.LoadTemplates())
 
 		buf := new(bytes.Buffer)
@@ -2836,7 +2842,8 @@
 }
 
 func BenchmarkPartial(b *testing.B) {
-	defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
+	cfg := newDefaultDepsCfg()
+	cfg.WithTemplate = func(templ tplapi.Template) error {
 		err := templ.AddTemplate("testroot", `{{ partial "bench1" . }}`)
 		if err != nil {
 			return err
@@ -2849,7 +2856,7 @@
 		return nil
 	}
 
-	de := deps.New(defaultDepsConfig)
+	de := deps.New(cfg)
 	require.NoError(b, de.LoadTemplates())
 
 	buf := new(bytes.Buffer)
@@ -2866,7 +2873,8 @@
 }
 
 func BenchmarkPartialCached(b *testing.B) {
-	defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
+	cfg := newDefaultDepsCfg()
+	cfg.WithTemplate = func(templ tplapi.Template) error {
 		err := templ.AddTemplate("testroot", `{{ partialCached "bench1" . }}`)
 		if err != nil {
 			return err
@@ -2879,7 +2887,7 @@
 		return nil
 	}
 
-	de := deps.New(defaultDepsConfig)
+	de := deps.New(cfg)
 	require.NoError(b, de.LoadTemplates())
 
 	buf := new(bytes.Buffer)
@@ -2896,7 +2904,8 @@
 }
 
 func newTestFuncster() *templateFuncster {
-	d := deps.New(defaultDepsConfig)
+	cfg := newDefaultDepsCfg()
+	d := deps.New(cfg)
 	if err := d.LoadTemplates(); err != nil {
 		panic(err)
 	}
@@ -2905,7 +2914,8 @@
 }
 
 func newTestTemplate(t *testing.T, name, template string) *template.Template {
-	defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
+	cfg := newDefaultDepsCfg()
+	cfg.WithTemplate = func(templ tplapi.Template) error {
 		err := templ.AddTemplate(name, template)
 		if err != nil {
 			return err
@@ -2913,7 +2923,7 @@
 		return nil
 	}
 
-	de := deps.New(defaultDepsConfig)
+	de := deps.New(cfg)
 	require.NoError(t, de.LoadTemplates())
 
 	return de.Tmpl.Lookup(name)
--- a/tpl/template_test.go
+++ b/tpl/template_test.go
@@ -27,7 +27,6 @@
 	"github.com/spf13/afero"
 	"github.com/spf13/hugo/deps"
 	"github.com/spf13/hugo/helpers"
-	"github.com/spf13/hugo/hugofs"
 	"github.com/spf13/hugo/tplapi"
 	"github.com/spf13/viper"
 	"github.com/stretchr/testify/require"
@@ -80,7 +79,7 @@
 
 			d := "DATA"
 
-			config := defaultDepsConfig
+			config := newDefaultDepsCfg()
 			config.WithTemplate = func(templ tplapi.Template) error {
 				return templ.AddAceTemplate("mytemplate.ace", basePath, innerPath,
 					[]byte(this.baseContent), []byte(this.innerContent))
@@ -149,7 +148,8 @@
 		masterTplName := "mt"
 		finalTplName := "tp"
 
-		defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
+		cfg := newDefaultDepsCfg()
+		cfg.WithTemplate = func(templ tplapi.Template) error {
 
 			err := templ.AddTemplateFileWithMaster(finalTplName, overlayTplName, masterTplName)
 
@@ -188,16 +188,14 @@
 			return nil
 		}
 
-		defaultDepsConfig.Fs = hugofs.NewMem()
-
 		if this.writeSkipper != 1 {
-			afero.WriteFile(defaultDepsConfig.Fs.Source, masterTplName, []byte(this.masterTplContent), 0644)
+			afero.WriteFile(cfg.Fs.Source, masterTplName, []byte(this.masterTplContent), 0644)
 		}
 		if this.writeSkipper != 2 {
-			afero.WriteFile(defaultDepsConfig.Fs.Source, overlayTplName, []byte(this.overlayTplContent), 0644)
+			afero.WriteFile(cfg.Fs.Source, overlayTplName, []byte(this.overlayTplContent), 0644)
 		}
 
-		deps.New(defaultDepsConfig)
+		deps.New(cfg)
 
 	}
 
@@ -286,11 +284,12 @@
 			H: "a,b,c,d,e,f",
 		}
 
-		defaultDepsConfig.WithTemplate = func(templ tplapi.Template) error {
+		cfg := newDefaultDepsCfg()
+		cfg.WithTemplate = func(templ tplapi.Template) error {
 			return templ.AddTemplate("fuzz", this.data)
 		}
 
-		de := deps.New(defaultDepsConfig)
+		de := deps.New(cfg)
 		require.NoError(t, de.LoadTemplates())
 
 		templ := de.Tmpl.(*GoHTMLTemplate)