From 708bc78770a0b0361908f6404f57264c53252a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 28 Jul 2016 09:30:58 +0200 Subject: Optimize the multilanguage build process Work In Progress! This commit makes a rework of the build and rebuild process to better suit a multi-site setup. This also includes a complete overhaul of the site tests. Previous these were a messy mix that were testing just small parts of the build chain, some of it testing code-paths not even used in "real life". Now all tests that depends on a built site follows the same and real production code path. See #2309 Closes #2211 Closes #477 Closes #1744 --- hugolib/menu_test.go | 51 ++++++++++++++++++++------------------------------- 1 file changed, 20 insertions(+), 31 deletions(-) (limited to 'hugolib/menu_test.go') diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go index 898f035d6..9ef4d09ad 100644 --- a/hugolib/menu_test.go +++ b/hugolib/menu_test.go @@ -201,9 +201,7 @@ func TestPageMenuWithIdentifier(t *testing.T) { } func doTestPageMenuWithIdentifier(t *testing.T, menuPageSources []source.ByteSource) { - - viper.Reset() - defer viper.Reset() + testCommonResetState() s := setupMenuTests(t, menuPageSources) @@ -241,8 +239,7 @@ func TestPageMenuWithDuplicateName(t *testing.T) { } func doTestPageMenuWithDuplicateName(t *testing.T, menuPageSources []source.ByteSource) { - viper.Reset() - defer viper.Reset() + testCommonResetState() s := setupMenuTests(t, menuPageSources) @@ -260,8 +257,7 @@ func doTestPageMenuWithDuplicateName(t *testing.T, menuPageSources []source.Byte } func TestPageMenu(t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() s := setupMenuTests(t, menuPageSources) @@ -307,8 +303,7 @@ func TestPageMenu(t *testing.T) { } func TestMenuURL(t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() s := setupMenuTests(t, menuPageSources) @@ -338,8 +333,7 @@ func TestMenuURL(t *testing.T) { // Issue #1934 func TestYAMLMenuWithMultipleEntries(t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() ps1 := []byte(`--- title: "Yaml 1" @@ -377,8 +371,7 @@ func TestMenuWithUnicodeURLs(t *testing.T) { } func doTestMenuWithUnicodeURLs(t *testing.T, canonifyURLs bool) { - viper.Reset() - defer viper.Reset() + testCommonResetState() viper.Set("CanonifyURLs", canonifyURLs) @@ -403,8 +396,7 @@ func TestSectionPagesMenu(t *testing.T) { } func doTestSectionPagesMenu(canonifyUrls bool, t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() viper.Set("SectionPagesMenu", "spm") @@ -458,8 +450,7 @@ func doTestSectionPagesMenu(canonifyUrls bool, t *testing.T) { } func TestTaxonomyNodeMenu(t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() viper.Set("CanonifyURLs", true) s := setupMenuTests(t, menuPageSources) @@ -502,8 +493,7 @@ func TestTaxonomyNodeMenu(t *testing.T) { } func TestMenuLimit(t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() s := setupMenuTests(t, menuPageSources) m := *s.Menus["main"] @@ -545,8 +535,7 @@ func TestMenuSortByN(t *testing.T) { } func TestHomeNodeMenu(t *testing.T) { - viper.Reset() - defer viper.Reset() + testCommonResetState() viper.Set("CanonifyURLs", true) viper.Set("UglyURLs", true) @@ -659,7 +648,7 @@ func findDescendantTestMenuEntry(parent *MenuEntry, id string, matcher func(me * return found } -func setupTestMenuState(s *Site, t *testing.T) { +func setupTestMenuState(t *testing.T) { menus, err := tomlToMap(confMenu1) if err != nil { @@ -672,7 +661,8 @@ func setupTestMenuState(s *Site, t *testing.T) { func setupMenuTests(t *testing.T, pageSources []source.ByteSource) *Site { s := createTestSite(pageSources) - setupTestMenuState(s, t) + + setupTestMenuState(t) testSiteSetup(s, t) return s @@ -681,18 +671,17 @@ func setupMenuTests(t *testing.T, pageSources []source.ByteSource) *Site { func createTestSite(pageSources []source.ByteSource) *Site { hugofs.InitMemFs() - s := &Site{ - Source: &source.InMemorySource{ByteSource: pageSources}, - Lang: newDefaultLanguage(), + return &Site{ + Source: &source.InMemorySource{ByteSource: pageSources}, + Language: newDefaultLanguage(), } - return s + } func testSiteSetup(s *Site, t *testing.T) { - s.Menus = Menus{} - s.initializeSiteInfo() - - createPagesAndMeta(t, s) + if err := buildSiteSkipRender(s); err != nil { + t.Fatalf("Sites build failed: %s", err) + } } func tomlToMap(s string) (map[string]interface{}, error) { -- cgit v1.2.3