Browse code

Make tests for the Docker parser more robust

kargakis authored on 2015/03/15 22:01:12
Showing 1 changed files
... ...
@@ -15,8 +15,8 @@ func TestReplaceValidCmd(t *testing.T) {
15 15
 		cmd            string
16 16
 		replaceArgs    string
17 17
 		fileData       []byte
18
-		edited         bool
19 18
 		expectedOutput string
19
+		expectedDiffs  int
20 20
 		expectedErr    error
21 21
 	}{
22 22
 		{
... ...
@@ -24,8 +24,8 @@ func TestReplaceValidCmd(t *testing.T) {
24 24
 			cmd:            dockercmd.From,
25 25
 			replaceArgs:    "other/image",
26 26
 			fileData:       []byte(dockerFile),
27
-			edited:         true,
28 27
 			expectedOutput: expectedFROM,
28
+			expectedDiffs:  1,
29 29
 			expectedErr:    nil,
30 30
 		},
31 31
 		{
... ...
@@ -33,7 +33,6 @@ func TestReplaceValidCmd(t *testing.T) {
33 33
 			cmd:            dockercmd.Run,
34 34
 			replaceArgs:    "This test kind-of-fails before string replacement so this string won't be used",
35 35
 			fileData:       []byte(dockerFile),
36
-			edited:         false,
37 36
 			expectedOutput: "",
38 37
 			expectedErr:    replaceCmdErr,
39 38
 		},
... ...
@@ -42,7 +41,6 @@ func TestReplaceValidCmd(t *testing.T) {
42 42
 			cmd:            "blabla",
43 43
 			replaceArgs:    "This test fails at start so this string won't be used",
44 44
 			fileData:       []byte(dockerFile),
45
-			edited:         false,
46 45
 			expectedOutput: "",
47 46
 			expectedErr:    invalidCmdErr,
48 47
 		},
... ...
@@ -51,7 +49,6 @@ func TestReplaceValidCmd(t *testing.T) {
51 51
 			cmd:            dockercmd.Cmd,
52 52
 			replaceArgs:    "runme.sh",
53 53
 			fileData:       []byte(dockerFile),
54
-			edited:         false,
55 54
 			expectedOutput: "",
56 55
 			expectedErr:    replaceCmdErr,
57 56
 		},
... ...
@@ -60,8 +57,8 @@ func TestReplaceValidCmd(t *testing.T) {
60 60
 			cmd:            dockercmd.From,
61 61
 			replaceArgs:    "rhel",
62 62
 			fileData:       []byte(trSlashFile),
63
-			edited:         true,
64 63
 			expectedOutput: expectedtrSlashFile,
64
+			expectedDiffs:  1,
65 65
 			expectedErr:    nil,
66 66
 		},
67 67
 		{
... ...
@@ -69,8 +66,8 @@ func TestReplaceValidCmd(t *testing.T) {
69 69
 			cmd:            dockercmd.From,
70 70
 			replaceArgs:    "scratch",
71 71
 			fileData:       []byte(trickierFile),
72
-			edited:         true,
73 72
 			expectedOutput: expectedTrickierFile,
73
+			expectedDiffs:  1,
74 74
 			expectedErr:    nil,
75 75
 		},
76 76
 	}
... ...
@@ -106,12 +103,8 @@ func TestReplaceValidCmd(t *testing.T) {
106 106
 
107 107
 		diff := cmpASTs(original, edited)
108 108
 
109
-		// Note that these tests will probably fail for Dockerfiles where we have replaced
110
-		// multiline command arguments
111
-		if test.edited && diff != 1 {
112
-			t.Errorf("%s: Edit mismatch, expected one edit, got %d", test.name, diff)
113
-		} else if !test.edited && diff > 0 {
114
-			t.Errorf("%s: Edit mismatch, expected no edit, got %d", test.name, diff)
109
+		if diff != test.expectedDiffs {
110
+			t.Errorf("%s: Edit mismatch, expected %d edit(s), got %d", test.name, test.expectedDiffs, diff)
115 111
 		}
116 112
 	}
117 113
 }