From 3eb301b57abea7be61203ff0a6a33f294008d74c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 21 Jun 2015 15:01:06 +0200 Subject: [PATCH] Revert "refactor and clean up site tests" This reverts commit 99e250917ddc351d45adfeb81057ea3607d1b148. --- hugolib/helpers_for_test.go | 80 ------------------- hugolib/site_test.go | 153 ++++++++++++++++++++++++++++++------ 2 files changed, 129 insertions(+), 104 deletions(-) delete mode 100644 hugolib/helpers_for_test.go diff --git a/hugolib/helpers_for_test.go b/hugolib/helpers_for_test.go deleted file mode 100644 index 7c41376a5..000000000 --- a/hugolib/helpers_for_test.go +++ /dev/null @@ -1,80 +0,0 @@ -package hugolib - -import ( - "testing" - - "github.com/spf13/afero" - "github.com/spf13/hugo/hugofs" - "github.com/spf13/hugo/source" - "github.com/spf13/hugo/tpl" - "github.com/spf13/viper" -) - -func siteFromByteSources(bs []source.ByteSource) *Site { - - viper.SetDefault("baseurl", "http://auth/bub") - hugofs.DestinationFS = new(afero.MemMapFs) - - s := &Site{ - Source: &source.InMemorySource{ByteSource: bs}, - } - s.initializeSiteInfo() - return s -} - -func buildSiteFromByteSources(bs []source.ByteSource, t *testing.T) *Site { - s := siteFromByteSources(bs) - - if err := s.CreatePages(); err != nil { - t.Fatalf("Unable to create pages: %s", err) - } - - if err := s.BuildSiteMeta(); err != nil { - t.Fatalf("Unable to build site metadata: %s", err) - } - - return s -} - -func setHugoDefaultTaxonomies() { - taxonomies := make(map[string]string) - taxonomies["tag"] = "tags" - taxonomies["category"] = "categories" - - viper.Set("taxonomies", taxonomies) -} - -func createAndRenderPages(t *testing.T, s *Site) { - if err := s.CreatePages(); err != nil { - t.Fatalf("Unable to create pages: %s", err) - } - - if err := s.BuildSiteMeta(); err != nil { - t.Fatalf("Unable to build site metadata: %s", err) - } - - if err := s.RenderPages(); err != nil { - t.Fatalf("Unable to render pages. %s", err) - } -} - -func testRenderPages(t *testing.T, s *Site) { - if err := s.RenderPages(); err != nil { - t.Fatalf("Unable to render pages. %s", err) - } -} - -func templatePrep(s *Site) { - s.Tmpl = tpl.New() - s.Tmpl.LoadTemplates(s.absLayoutDir()) - if s.hasTheme() { - s.Tmpl.LoadTemplatesWithPrefix(s.absThemeDir()+"/layouts", "theme") - } -} - -func pageMust(p *Page, err error) *Page { - if err != nil { - panic(err) - } - return p -} diff --git a/hugolib/site_test.go b/hugolib/site_test.go index 5b1bb0df2..22db1eaf2 100644 --- a/hugolib/site_test.go +++ b/hugolib/site_test.go @@ -15,6 +15,7 @@ import ( "github.com/spf13/hugo/hugofs" "github.com/spf13/hugo/source" "github.com/spf13/hugo/target" + "github.com/spf13/hugo/tpl" "github.com/spf13/viper" "github.com/stretchr/testify/assert" ) @@ -49,6 +50,35 @@ more text ` ) +func createAndRenderPages(t *testing.T, s *Site) { + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + + if err := s.BuildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } + + if err := s.RenderPages(); err != nil { + t.Fatalf("Unable to render pages. %s", err) + } +} + +func templatePrep(s *Site) { + s.Tmpl = tpl.New() + s.Tmpl.LoadTemplates(s.absLayoutDir()) + if s.hasTheme() { + s.Tmpl.LoadTemplatesWithPrefix(s.absThemeDir()+"/layouts", "theme") + } +} + +func pageMust(p *Page, err error) *Page { + if err != nil { + panic(err) + } + return p +} + func TestDegenerateRenderThingMissingTemplate(t *testing.T) { p, _ := NewPageFrom(strings.NewReader(PAGE_SIMPLE_TITLE), "content/a/file.md") p.Convert() @@ -197,16 +227,30 @@ func TestDraftAndFutureRender(t *testing.T) { {filepath.FromSlash("sect/doc4.md"), []byte("---\ntitle: doc4\ndraft: false\npublishdate: \"2012-05-29\"\n---\n# doc4\n*some content*")}, } + siteSetup := func() *Site { + s := &Site{ + Source: &source.InMemorySource{ByteSource: sources}, + } + + s.initializeSiteInfo() + + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + return s + } + + viper.Set("baseurl", "http://auth/bub") + // Testing Defaults.. Only draft:true and publishDate in the past should be rendered - s := buildSiteFromByteSources(sources, t) + s := siteSetup() if len(s.Pages) != 1 { t.Fatal("Draft or Future dated content published unexpectedly") } // only publishDate in the past should be rendered viper.Set("BuildDrafts", true) - - s = buildSiteFromByteSources(sources, t) + s = siteSetup() if len(s.Pages) != 2 { t.Fatal("Future Dated Posts published unexpectedly") } @@ -214,8 +258,7 @@ func TestDraftAndFutureRender(t *testing.T) { // drafts should not be rendered, but all dates should viper.Set("BuildDrafts", false) viper.Set("BuildFuture", true) - - s = buildSiteFromByteSources(sources, t) + s = siteSetup() if len(s.Pages) != 2 { t.Fatal("Draft posts published unexpectedly") } @@ -223,11 +266,14 @@ func TestDraftAndFutureRender(t *testing.T) { // all 4 should be included viper.Set("BuildDrafts", true) viper.Set("BuildFuture", true) - - s = buildSiteFromByteSources(sources, t) + s = siteSetup() if len(s.Pages) != 4 { t.Fatal("Drafts or Future posts not included as expected") } + + //setting defaults back + viper.Set("BuildDrafts", false) + viper.Set("BuildFuture", false) } // Issue #957 @@ -339,8 +385,12 @@ func doTest404ShouldAlwaysHaveUglyUrls(t *testing.T, uglyURLs bool) { {filepath.FromSlash("sect/doc1.html"), []byte("---\nmarkup: markdown\n---\n# title\nsome *content*")}, } - s := buildSiteFromByteSources(sources, t) + s := &Site{ + Source: &source.InMemorySource{ByteSource: sources}, + Targets: targetList{Page: &target.PagePub{UglyURLs: uglyURLs}}, + } + s.initializeSiteInfo() templatePrep(s) must(s.addTemplate("index.html", "Home Sweet Home")) @@ -351,8 +401,7 @@ func doTest404ShouldAlwaysHaveUglyUrls(t *testing.T, uglyURLs bool) { must(s.addTemplate("rss.xml", "RSS")) must(s.addTemplate("sitemap.xml", "SITEMAP")) - testRenderPages(t, s) - + createAndRenderPages(t, s) s.RenderHomePage() s.RenderSitemap() @@ -478,6 +527,7 @@ func TestSkipRender(t *testing.T) { viper.Reset() defer viper.Reset() + hugofs.DestinationFS = new(afero.MemMapFs) sources := []source.ByteSource{ {filepath.FromSlash("sect/doc1.html"), []byte("---\nmarkup: markdown\n---\n# title\nsome *content*")}, {filepath.FromSlash("sect/doc2.html"), []byte("more content")}, @@ -492,17 +542,20 @@ func TestSkipRender(t *testing.T) { viper.Set("DefaultExtension", "html") viper.Set("verbose", true) viper.Set("CanonifyURLs", true) - viper.Set("UglyURLs", true) - - s := buildSiteFromByteSources(sources, t) + viper.Set("baseurl", "http://auth/bub") + s := &Site{ + Source: &source.InMemorySource{ByteSource: sources}, + Targets: targetList{Page: &target.PagePub{UglyURLs: true}}, + } + s.initializeSiteInfo() templatePrep(s) must(s.addTemplate("_default/single.html", "{{.Content}}")) must(s.addTemplate("head", "")) must(s.addTemplate("head_abs", "")) - testRenderPages(t, s) + createAndRenderPages(t, s) tests := []struct { doc string @@ -543,18 +596,26 @@ func TestAbsUrlify(t *testing.T) { {filepath.FromSlash("sect/doc1.html"), []byte("link")}, {filepath.FromSlash("content/blue/doc2.html"), []byte("---\nf: t\n---\nmore content")}, } - - viper.Set("UglyURLs", true) - for _, canonify := range []bool{true, false} { - s := buildSiteFromByteSources(sources, t) viper.Set("CanonifyURLs", canonify) - + viper.Set("BaseURL", "http://auth/bub") + s := &Site{ + Source: &source.InMemorySource{ByteSource: sources}, + Targets: targetList{Page: &target.PagePub{UglyURLs: true}}, + } t.Logf("Rendering with BaseURL %q and CanonifyURLs set %v", viper.GetString("baseURL"), canonify) - + s.initializeSiteInfo() templatePrep(s) must(s.addTemplate("blue/single.html", TEMPLATE_WITH_URL_ABS)) + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + + if err := s.BuildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } + if err := s.RenderPages(); err != nil { t.Fatalf("Unable to render pages. %s", err) } @@ -636,7 +697,21 @@ func TestOrderedPages(t *testing.T) { viper.Reset() defer viper.Reset() - s := buildSiteFromByteSources(WEIGHTED_SOURCES, t) + hugofs.DestinationFS = new(afero.MemMapFs) + + viper.Set("baseurl", "http://auth/bub") + s := &Site{ + Source: &source.InMemorySource{ByteSource: WEIGHTED_SOURCES}, + } + s.initializeSiteInfo() + + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + + if err := s.BuildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } if s.Sections["sect"][0].Weight != 2 || s.Sections["sect"][3].Weight != 6 { t.Errorf("Pages in unexpected order. First should be '%d', got '%d'", 2, s.Sections["sect"][0].Weight) @@ -696,7 +771,21 @@ func TestGroupedPages(t *testing.T) { } }() - s := buildSiteFromByteSources(GROUPED_SOURCES, t) + hugofs.DestinationFS = new(afero.MemMapFs) + + viper.Set("baseurl", "http://auth/bub") + s := &Site{ + Source: &source.InMemorySource{ByteSource: GROUPED_SOURCES}, + } + s.initializeSiteInfo() + + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + + if err := s.BuildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } rbysection, err := s.Pages.GroupBy("Section", "desc") if err != nil { @@ -862,15 +951,31 @@ func TestWeightedTaxonomies(t *testing.T) { viper.Reset() defer viper.Reset() + hugofs.DestinationFS = new(afero.MemMapFs) sources := []source.ByteSource{ {filepath.FromSlash("sect/doc1.md"), PAGE_WITH_WEIGHTED_TAXONOMIES_1}, {filepath.FromSlash("sect/doc2.md"), PAGE_WITH_WEIGHTED_TAXONOMIES_2}, {filepath.FromSlash("sect/doc3.md"), PAGE_WITH_WEIGHTED_TAXONOMIES_3}, } + taxonomies := make(map[string]string) - setHugoDefaultTaxonomies() + taxonomies["tag"] = "tags" + taxonomies["category"] = "categories" - s := buildSiteFromByteSources(sources, t) + viper.Set("baseurl", "http://auth/bub") + viper.Set("taxonomies", taxonomies) + s := &Site{ + Source: &source.InMemorySource{ByteSource: sources}, + } + s.initializeSiteInfo() + + if err := s.CreatePages(); err != nil { + t.Fatalf("Unable to create pages: %s", err) + } + + if err := s.BuildSiteMeta(); err != nil { + t.Fatalf("Unable to build site metadata: %s", err) + } if s.Taxonomies["tags"]["a"][0].Page.Title != "foo" { t.Errorf("Pages in unexpected order, 'foo' expected first, got '%v'", s.Taxonomies["tags"]["a"][0].Page.Title)