Skip to content

Commit

Permalink
Add some tests for IgnoreFiles
Browse files Browse the repository at this point in the history
And log error on invalid regexp.

See gohugoio#1189
  • Loading branch information
bep committed Jun 3, 2015
1 parent beaa1b3 commit beeae6a
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 18 deletions.
4 changes: 2 additions & 2 deletions helpers/general.go
Original file line number Diff line number Diff line change
Expand Up @@ -198,12 +198,12 @@ func NewDistinctErrorLogger() *DistinctErrorLogger {
}

// Avoid spamming the logs with errors
var deprecatedLogger = NewDistinctErrorLogger()
var DistinctErrorLog = NewDistinctErrorLogger()

// Deprecated logs ERROR logs about a deprecation, but only once for a given set of arguments' values.
func Deprecated(object, item, alternative string) {
// deprecatedLogger.Printf("%s's %s is deprecated and will be removed in Hugo %s. Use %s instead.", object, item, NextHugoReleaseVersion(), alternative)
deprecatedLogger.Printf("%s's %s is deprecated and will be removed VERY SOON. Use %s instead.", object, item, alternative)
DistinctErrorLog.Printf("%s's %s is deprecated and will be removed VERY SOON. Use %s instead.", object, item, alternative)

}

Expand Down
40 changes: 26 additions & 14 deletions source/content_directory_test.go
Original file line number Diff line number Diff line change
@@ -1,29 +1,41 @@
package source

import (
"github.com/spf13/viper"
"testing"
)

func TestIgnoreDotFilesAndDirectories(t *testing.T) {
viper.Reset()
defer viper.Reset()

tests := []struct {
path string
ignore bool
path string
ignore bool
ignoreFilesRegexpes interface{}
}{
{".foobar/", true},
{"foobar/.barfoo/", true},
{"barfoo.md", false},
{"foobar/barfoo.md", false},
{"foobar/.barfoo.md", true},
{".barfoo.md", true},
{".md", true},
{"", true},
{"foobar/barfoo.md~", true},
{".foobar/barfoo.md~", true},
{"foobar~/barfoo.md", false},
{"foobar/bar~foo.md", false},
{".foobar/", true, nil},
{"foobar/.barfoo/", true, nil},
{"barfoo.md", false, nil},
{"foobar/barfoo.md", false, nil},
{"foobar/.barfoo.md", true, nil},
{".barfoo.md", true, nil},
{".md", true, nil},
{"", true, nil},
{"foobar/barfoo.md~", true, nil},
{".foobar/barfoo.md~", true, nil},
{"foobar~/barfoo.md", false, nil},
{"foobar/bar~foo.md", false, nil},
{"foobar/foo.md", true, []string{"\\.md$", "\\.boo$"}},
{"foobar/foo.html", false, []string{"\\.md$", "\\.boo$"}},
{"foobar/foo.md", true, []string{"^foo"}},
{"foobar/foo.md", false, []string{"*", "\\.md$", "\\.boo$"}},
}

for _, test := range tests {

viper.Set("ignoreFiles", test.ignoreFilesRegexpes)

if ignored := isNonProcessablePath(test.path); test.ignore != ignored {
t.Errorf("File not ignored. Expected: %t, got: %t", test.ignore, ignored)
}
Expand Down
7 changes: 5 additions & 2 deletions source/filesystem.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,11 @@ func isNonProcessablePath(filePath string) bool {
ignoreFiles := viper.GetStringSlice("IgnoreFiles")
if len(ignoreFiles) > 0 {
for _, ignorePattern := range ignoreFiles {
match, _ := regexp.MatchString(ignorePattern, filePath)
if match {
match, err := regexp.MatchString(ignorePattern, filePath)
if err != nil {
helpers.DistinctErrorLog.Printf("Invalid regexp '%s' in ignoreFiles: %s", ignorePattern, err)
return false
} else if match {
return true
}
}
Expand Down

0 comments on commit beeae6a

Please sign in to comment.