From 100044871faa0e1de2f62728c3d5b83e1ce41176 Mon Sep 17 00:00:00 2001 From: Andrej Shadura Date: Mon, 25 Mar 2019 10:34:02 +0100 Subject: New upstream version 1.0.0+git20190319.cf3fc48 --- recipe/recipe_test.go | 182 -------------------------------------------------- 1 file changed, 182 deletions(-) delete mode 100644 recipe/recipe_test.go (limited to 'recipe/recipe_test.go') diff --git a/recipe/recipe_test.go b/recipe/recipe_test.go deleted file mode 100644 index 01457e9..0000000 --- a/recipe/recipe_test.go +++ /dev/null @@ -1,182 +0,0 @@ -package recipe_test - -import ( - "github.com/go-debos/debos/recipe" - "github.com/stretchr/testify/assert" - "io/ioutil" - "os" - "testing" -) - -type testRecipe struct { - recipe string - err string -} - -// Test if incorrect file has been passed -func TestParse_incorrect_file(t *testing.T) { - var err error - - var tests = []struct { - filename string - err string - }{ - { - "non-existing.yaml", - "open non-existing.yaml: no such file or directory", - }, - { - "/proc", - "read /proc: is a directory", - }, - } - - for _, test := range tests { - r := recipe.Recipe{} - err = r.Parse(test.filename) - assert.EqualError(t, err, test.err) - } -} - -// Check common recipe syntax -func TestParse_syntax(t *testing.T) { - - var tests = []testRecipe{ - // Test if all actions are supported - {` -architecture: arm64 - -actions: - - action: apt - - action: debootstrap - - action: download - - action: filesystem-deploy - - action: image-partition - - action: ostree-commit - - action: ostree-deploy - - action: overlay - - action: pack - - action: raw - - action: run - - action: unpack -`, - "", // Do not expect failure - }, - // Test of unknown action in list - {` -architecture: arm64 - -actions: - - action: test_unknown_action -`, - "Unknown action: test_unknown_action", - }, - // Test if 'architecture' property absence - {` -actions: - - action: raw -`, - "Recipe file must have 'architecture' property", - }, - // Test if no actions listed - {` -architecture: arm64 -`, - "Recipe file must have at least one action", - }, - // Test of wrong syntax in Yaml - {`wrong`, - "yaml: unmarshal errors:\n line 1: cannot unmarshal !!str `wrong` into recipe.Recipe", - }, - // Test if no actions listed - {` -architecture: arm64 -`, - "Recipe file must have at least one action", - }, - } - - for _, test := range tests { - runTest(t, test) - } -} - -// Check template engine -func TestParse_template(t *testing.T) { - - var test = testRecipe{ - // Test template variables - ` -{{ $action:= or .action "download" }} -architecture: arm64 -actions: - - action: {{ $action }} -`, - "", // Do not expect failure - } - - { // Test of embedded template - r := runTest(t, test) - assert.Equalf(t, r.Actions[0].String(), "download", - "Fail to use embedded variable definition from recipe:%s\n", - test.recipe) - } - - { // Test of user-defined template variable - var templateVars = map[string]string{ - "action": "pack", - } - - r := runTest(t, test, templateVars) - assert.Equalf(t, r.Actions[0].String(), "pack", - "Fail to redefine variable with user-defined map:%s\n", - test.recipe) - } -} - -// Test of 'sector' function embedded to recipe package -func TestParse_sector(t *testing.T) { - var testSector = testRecipe{ - // Fail with unknown action - ` -architecture: arm64 - -actions: - - action: {{ sector 42 }} -`, - "Unknown action: 21504", - } - runTest(t, testSector) -} - -func runTest(t *testing.T, test testRecipe, templateVars ...map[string]string) recipe.Recipe { - file, err := ioutil.TempFile(os.TempDir(), "recipe") - assert.Empty(t, err) - defer os.Remove(file.Name()) - - file.WriteString(test.recipe) - file.Close() - - r := recipe.Recipe{} - if len(templateVars) == 0 { - err = r.Parse(file.Name()) - } else { - err = r.Parse(file.Name(), templateVars[0]) - } - - failed := false - - if len(test.err) > 0 { - // Expected error? - failed = !assert.EqualError(t, err, test.err) - } else { - // Unexpected error - failed = !assert.Empty(t, err) - } - - if failed { - t.Logf("Failed recipe:%s\n", test.recipe) - } - - return r -} -- cgit v1.2.3