Permalink
Browse files

hugolib: Re-enable YAML data tests disabled in f554503

Also gave basic tests for JSON, YAML and TOML identical inputs and expected outputs, a step toward JSON, YAML and TOML equivalency (see #4393 (comment)).
  • Loading branch information...
vassudanagunta authored and bep committed Feb 11, 2018
1 parent b5cb886 commit e1728349930e2cc1b6580766473de98adb0f3e50
Showing with 47 additions and 43 deletions.
  1. +47 −43 hugolib/datafiles_test.go
View
@@ -36,44 +36,40 @@ func TestDataDirJSON(t *testing.T) {
t.Parallel()
sources := [][2]string{
{filepath.FromSlash("data/test/foo.json"), `{ "bar": "foofoo" }`},
{filepath.FromSlash("data/test.json"), `{ "hello": [ { "world": "foo" } ] }`},
{filepath.FromSlash("data/test/a.json"), `{ "b" : { "c1": "red" , "c2": "blue" } }`},
}
expected :=
map[string]interface{}{
"test": map[string]interface{}{
"hello": []interface{}{
map[string]interface{}{"world": "foo"},
},
"foo": map[string]interface{}{
"bar": "foofoo",
expected := map[string]interface{}{
"test": map[string]interface{}{
"a": map[string]interface{}{
"b": map[string]interface{}{
"c1": "red",
"c2": "blue",
},
},
}
},
}
doTestDataDir(t, expected, sources)
}
// Enable / adjust in https://github.com/gohugoio/hugo/issues/4393
func _TestDataDirYAML(t *testing.T) {
func TestDataDirYAML(t *testing.T) {
t.Parallel()
sources := [][2]string{
{"data/test/a.yaml", "b:\n c1: 1\n c2: 2"},
{"data/test/a.yaml", "b:\n c1: red\n c2: blue"},
}
expected :=
map[string]interface{}{
"test": map[string]interface{}{
"a": map[string]interface{}{
"b": map[interface{}]interface{}{
"c1": 1,
"c2": 2,
},
expected := map[string]interface{}{
"test": map[string]interface{}{
"a": map[string]interface{}{
"b": map[string]interface{}{
"c1": "red",
"c2": "blue",
},
},
}
},
}
doTestDataDir(t, expected, sources)
}
@@ -82,34 +78,31 @@ func TestDataDirToml(t *testing.T) {
t.Parallel()
sources := [][2]string{
{"data/test/kung.toml", "[foo]\nbar = 1"},
{"data/test/a.toml", "[b]\nc1 = \"red\"\nc2 = \"blue\"\n"},
}
expected :=
map[string]interface{}{
"test": map[string]interface{}{
"kung": map[string]interface{}{
"foo": map[string]interface{}{
"bar": 1,
},
expected := map[string]interface{}{
"test": map[string]interface{}{
"a": map[string]interface{}{
"b": map[string]interface{}{
"c1": "red",
"c2": "blue",
},
},
}
},
}
doTestDataDir(t, expected, sources)
}
// Enable / adjust in https://github.com/gohugoio/hugo/issues/4393
func _TestDataDirYAML2(t *testing.T) {
func TestDataDirJSON2(t *testing.T) {
t.Parallel()
sources := [][2]string{
{filepath.FromSlash("data/test/foo.yaml"), "bar: foofoo"},
{filepath.FromSlash("data/test.yaml"), "hello:\n- world: foo"},
{filepath.FromSlash("data/test/foo.json"), `{ "bar": "foofoo" }`},
{filepath.FromSlash("data/test.json"), `{ "hello": [ { "world": "foo" } ] }`},
}
//This is what we want: consistent use of map[string]interface{} for nested YAML maps
// the same as TestDataDirJSON
expected :=
map[string]interface{}{
"test": map[string]interface{}{
@@ -122,21 +115,32 @@ func _TestDataDirYAML2(t *testing.T) {
},
}
// what we are actually getting as of v0.34
expectedV0_34 :=
doTestDataDir(t, expected, sources)
}
func TestDataDirYAML2(t *testing.T) {
t.Parallel()
sources := [][2]string{
{filepath.FromSlash("data/test/foo.yaml"), "bar: foofoo"},
{filepath.FromSlash("data/test.yaml"), "hello:\n- world: foo"},
}
//This is what we want: consistent use of map[string]interface{} for nested YAML maps
// the same as TestDataDirJSON
expected :=
map[string]interface{}{
"test": map[string]interface{}{
"hello": []interface{}{
map[interface{}]interface{}{"world": "foo"},
map[string]interface{}{"world": "foo"},
},
"foo": map[string]interface{}{
"bar": "foofoo",
},
},
}
_ = expected
doTestDataDir(t, expectedV0_34, sources)
doTestDataDir(t, expected, sources)
}
func TestDataDirToml2(t *testing.T) {

0 comments on commit e172834

Please sign in to comment.