@@ -24,6 +24,7 @@ import (
24
24
"io/ioutil"
25
25
apierrs "k8s.io/apimachinery/pkg/api/errors"
26
26
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
27
+ "os"
27
28
"sigs.k8s.io/controller-runtime/pkg/client"
28
29
"time"
29
30
)
@@ -146,6 +147,18 @@ func CompareResources(uc UtilContext, path string) {
146
147
Expect (result ).Should (BeTrue ())
147
148
}
148
149
150
+ // DirExists checks whether dir at path exists
151
+ func DirExists (path string ) (bool , error ) {
152
+ _ , err := os .Stat (path )
153
+ if err == nil {
154
+ return true , nil
155
+ }
156
+ if os .IsNotExist (err ) {
157
+ return false , nil
158
+ }
159
+ return false , err
160
+ }
161
+
149
162
// GenerateDeclarativeTestCases dynamically generate
150
163
// testcases based on resources located in the testdata
151
164
// directory.
@@ -166,18 +179,27 @@ func GenerateDeclarativeTestCases() []Case {
166
179
}
167
180
168
181
caseCreateDir := fmt .Sprintf ("%s/expected/created" , caseDir )
169
- toCreate , err := ioutil . ReadDir (caseCreateDir )
182
+ caseCreationsFound , err := DirExists (caseCreateDir )
170
183
Expect (err ).ToNot (HaveOccurred (), "Failed to read 'create' dir." )
171
- for _ , f := range toCreate {
172
- newCase .Expected .Created = append (newCase .Expected .Created , fmt .Sprintf ("%s/%s" , caseCreateDir , f .Name ()))
184
+ if caseCreationsFound {
185
+ toCreate , err := ioutil .ReadDir (caseCreateDir )
186
+ Expect (err ).ToNot (HaveOccurred (), "Failed to read 'create' dir." )
187
+ for _ , f := range toCreate {
188
+ newCase .Expected .Created = append (newCase .Expected .Created , fmt .Sprintf ("%s/%s" , caseCreateDir , f .Name ()))
189
+ }
173
190
}
174
191
175
192
caseNotCreateDir := fmt .Sprintf ("%s/expected/not_created" , caseDir )
176
- toNotCreate , err := ioutil . ReadDir (caseNotCreateDir )
193
+ caseNoCreationsFound , err := DirExists (caseNotCreateDir )
177
194
Expect (err ).ToNot (HaveOccurred (), "Failed to read 'not_create' dir." )
178
- for _ , f := range toNotCreate {
179
- newCase .Expected .NotCreated = append (newCase .Expected .NotCreated , fmt .Sprintf ("%s/%s" , caseNotCreateDir , f .Name ()))
195
+ if caseNoCreationsFound {
196
+ toNotCreate , err := ioutil .ReadDir (caseNotCreateDir )
197
+ Expect (err ).ToNot (HaveOccurred (), "Failed to read 'not_create' dir." )
198
+ for _ , f := range toNotCreate {
199
+ newCase .Expected .NotCreated = append (newCase .Expected .NotCreated , fmt .Sprintf ("%s/%s" , caseNotCreateDir , f .Name ()))
200
+ }
180
201
}
202
+
181
203
newCase .Description = fmt .Sprintf ("[%s] - When a DSPA is deployed" , caseName )
182
204
183
205
newCase .Config = fmt .Sprintf ("%s/config.yaml" , caseDir )
0 commit comments