102
102
assert sf2(self.makeext("what/ever.py")) == 0
103
103
assert sf2(self.makeext("what/ever.py/foo")) == 0
105
def testFilelistInclude(self):
106
"""Test included filelist"""
107
fp = StringIO.StringIO("""
110
testfiles/select/1/2/3
111
testfiles/select/3/3/2""")
112
sf = self.Select.filelist_get_sf(fp, 1, "test")
113
assert sf(self.root) == 1
114
assert sf(self.makeext("1")) == 1
115
assert sf(self.makeext("1/1")) is None
116
assert sf(self.makeext("1/2/3")) == 1
117
assert sf(self.makeext("2/2")) is None
118
assert sf(self.makeext("3")) == 1
119
assert sf(self.makeext("3/3")) == 1
120
assert sf(self.makeext("3/3/3")) is None
122
def test_filelist_include_1_trailing_white_space(self):
123
"""Test trailing whitespace is ignored in included filelist (1 space)"""
124
fp = StringIO.StringIO("testfiles/select/1/2\n"
125
"testfiles/select/1 \n"
126
"testfiles/select/1/2/3\n"
127
"testfiles/select/3/3/2")
128
sf = self.Select.filelist_get_sf(fp, 1, "test")
129
assert sf(self.root) == 1
130
assert sf(self.makeext("1")) == 1
131
assert sf(self.makeext("1/1")) is None
132
assert sf(self.makeext("1/2/3")) == 1
133
assert sf(self.makeext("2/2")) is None
134
assert sf(self.makeext("3")) == 1
135
assert sf(self.makeext("3/3")) == 1
136
assert sf(self.makeext("3/3/3")) is None
138
def test_filelist_include_2_trailing_white_spaces(self):
139
"""Test trailing whitespace is ignored in included filelist (2 space)"""
140
fp = StringIO.StringIO("testfiles/select/1/2\n"
141
"testfiles/select/1\n"
142
"testfiles/select/1/2/3 \n"
143
"testfiles/select/3/3/2")
144
sf = self.Select.filelist_get_sf(fp, 1, "test")
145
assert sf(self.root) == 1
146
assert sf(self.makeext("1")) == 1
147
assert sf(self.makeext("1/1")) is None
148
assert sf(self.makeext("1/2/3")) == 1
149
assert sf(self.makeext("2/2")) is None
150
assert sf(self.makeext("3")) == 1
151
assert sf(self.makeext("3/3")) == 1
152
assert sf(self.makeext("3/3/3")) is None
154
def test_filelist_include_1_leading_white_space(self):
155
"""Test leading whitespace is ignored in included filelist (1 space)"""
156
fp = StringIO.StringIO(" testfiles/select/1/2\n"
157
"testfiles/select/1\n"
158
"testfiles/select/1/2/3\n"
159
"testfiles/select/3/3/2")
160
sf = self.Select.filelist_get_sf(fp, 1, "test")
161
assert sf(self.root) == 1
162
assert sf(self.makeext("1")) == 1
163
assert sf(self.makeext("1/1")) is None
164
assert sf(self.makeext("1/2/3")) == 1
165
assert sf(self.makeext("2/2")) is None
166
assert sf(self.makeext("3")) == 1
167
assert sf(self.makeext("3/3")) == 1
168
assert sf(self.makeext("3/3/3")) is None
170
def test_filelist_include_2_leading_white_spaces(self):
171
"""Test leading whitespace is ignored in included filelist (1 space)"""
172
fp = StringIO.StringIO("testfiles/select/1/2\n"
173
"testfiles/select/1\n"
174
"testfiles/select/1/2/3\n"
175
" testfiles/select/3/3/2")
176
sf = self.Select.filelist_get_sf(fp, 1, "test")
177
assert sf(self.root) == 1
178
assert sf(self.makeext("1")) == 1
179
assert sf(self.makeext("1/1")) is None
180
assert sf(self.makeext("1/2/3")) == 1
181
assert sf(self.makeext("2/2")) is None
182
assert sf(self.makeext("3")) == 1
183
assert sf(self.makeext("3/3")) == 1
184
assert sf(self.makeext("3/3/3")) is None
186
def testFilelistIncludeNullSep(self):
187
"""Test included filelist but with null_separator set"""
188
fp = StringIO.StringIO("""\0testfiles/select/1/2\0testfiles/select/1\0testfiles/select/1/2/3\0testfiles/select/3/3/2\0testfiles/select/hello\nthere\0""")
189
self.set_global('null_separator', 1)
190
sf = self.Select.filelist_get_sf(fp, 1, "test")
191
assert sf(self.root) == 1
192
assert sf(self.makeext("1")) == 1
193
assert sf(self.makeext("1/1")) is None
194
assert sf(self.makeext("1/2/3")) == 1
195
assert sf(self.makeext("2/2")) is None
196
assert sf(self.makeext("3")) == 1
197
assert sf(self.makeext("3/3")) == 1
198
assert sf(self.makeext("3/3/3")) is None
199
assert sf(self.makeext("hello\nthere")) == 1
201
def testFilelistExclude(self):
202
"""Test included filelist"""
203
fp = StringIO.StringIO("""
206
this is a badly formed line which should be ignored
208
testfiles/select/1/2/3
209
testfiles/select/3/3/2""")
210
sf = self.Select.filelist_get_sf(fp, 0, "test")
211
assert sf(self.root) is None
212
assert sf(self.makeext("1")) == 0
213
assert sf(self.makeext("1/1")) == 0
214
assert sf(self.makeext("1/2/3")) == 0
215
assert sf(self.makeext("2/2")) is None
216
assert sf(self.makeext("3")) is None
217
assert sf(self.makeext("3/3/2")) == 0
218
assert sf(self.makeext("3/3/3")) is None
220
def testFilelistInclude2(self):
221
"""testFilelistInclude2 - with modifiers"""
222
fp = StringIO.StringIO("""
224
- testfiles/select/1/2
225
+ testfiles/select/1/3
226
- testfiles/select/3""")
227
sf = self.Select.filelist_get_sf(fp, 1, "test1")
228
assert sf(self.makeext("1")) == 1
229
assert sf(self.makeext("1/1")) == 1
230
assert sf(self.makeext("1/1/2")) is None
231
assert sf(self.makeext("1/2")) == 0
232
assert sf(self.makeext("1/2/3")) == 0
233
assert sf(self.makeext("1/3")) == 1
234
assert sf(self.makeext("2")) is None
235
assert sf(self.makeext("3")) == 0
237
def testFilelistInclude3(self):
238
"""testFilelistInclude3 - with modifiers to check - works as expected"""
239
fp = StringIO.StringIO("""
241
- testfiles/select/1/2
242
+ testfiles/select/1/3
243
testfiles/select/1""")
244
sf = self.Select.filelist_get_sf(fp, 1, "test1")
245
assert sf(self.makeext("1")) == 1
246
assert sf(self.makeext("1/1")) == 1
247
assert sf(self.makeext("1/1/2")) is None
248
assert sf(self.makeext("1/2")) == 0
249
assert sf(self.makeext("1/2/3")) == 0
250
assert sf(self.makeext("1/3")) == 1
251
assert sf(self.makeext("2")) is None
252
assert sf(self.makeext("3")) is None
254
# def test_filelist_include_excluded_folder_with_included_contents(self):
255
# """Check that excluded folder is included if subfolder is included at higher priority. """
256
# # ToDo - currently fails. 1/2 should be included (scanned) because 1/2/1 is. Commandline --include/--exclude
257
# # ToDo - and globbing filelists work this way
258
# fp = StringIO.StringIO("""
259
# + testfiles/select/1/2/1
260
# - testfiles/select/1/2
261
# + testfiles/select/1/3
262
# testfiles/select/1""")
263
# sf = self.Select.filelist_get_sf(fp, 1, "test1")
264
# assert sf(self.makeext("1")) == 1
265
# assert sf(self.makeext("1/1")) is None
266
# assert sf(self.makeext("1/2/1")) == 1
267
# assert sf(self.makeext("1/2")) == 0 # ToDo - what should this return?
268
# assert sf(self.makeext("1/2/3")) == 0
269
# assert sf(self.makeext("1/3")) == 1
270
# assert sf(self.makeext("2")) is None
271
# assert sf(self.makeext("3")) is None
273
def testFilelistExclude2(self):
274
"""testFilelistExclude2 - with modifiers"""
275
fp = StringIO.StringIO("""
277
- testfiles/select/1/2
278
+ testfiles/select/1/3
279
- testfiles/select/3""")
280
sf = self.Select.filelist_get_sf(fp, 0, "test1")
281
sf_val1 = sf(self.root)
282
assert sf_val1 == 1 or sf_val1 is None # either is OK
283
sf_val2 = sf(self.makeext("1"))
284
assert sf_val2 == 1 or sf_val2 is None
285
assert sf(self.makeext("1/1")) == 0
286
assert sf(self.makeext("1/1/2")) == 0
287
assert sf(self.makeext("1/2")) == 0
288
assert sf(self.makeext("1/2/3")) == 0
289
assert sf(self.makeext("1/3")) == 1
290
assert sf(self.makeext("2")) is None
291
assert sf(self.makeext("3")) == 0
293
def test_filelist_exclude_2_with_trailing_white_space(self):
294
"""testFilelistExclude2 with modifiers - test trailing whitespace is ignored (1 and 2 spaces)"""
295
fp = StringIO.StringIO("testfiles/select/1/1\n"
296
"- testfiles/select/1/2 \n"
297
"+ testfiles/select/1/3 \n"
298
"- testfiles/select/3")
299
sf = self.Select.filelist_get_sf(fp, 0, "test1")
300
sf_val1 = sf(self.root)
301
assert sf_val1 == 1 or sf_val1 is None # either is OK
302
sf_val2 = sf(self.makeext("1"))
303
assert sf_val2 == 1 or sf_val2 is None
304
assert sf(self.makeext("1/1")) == 0
305
assert sf(self.makeext("1/1/2")) == 0
306
assert sf(self.makeext("1/2")) == 0
307
assert sf(self.makeext("1/2/3")) == 0
308
assert sf(self.makeext("1/3")) == 1
309
assert sf(self.makeext("2")) is None
310
assert sf(self.makeext("3")) == 0
312
def test_filelist_exclude_with_single_quotes(self):
313
"""testFilelistExclude2 with modifiers - test unnecessary single quotes are ignored"""
314
fp = StringIO.StringIO("testfiles/select/1/1\n"
315
"- testfiles/select/1/2\n"
316
"+ 'testfiles/select/1/3'\n"
317
"- testfiles/select/3")
318
sf = self.Select.filelist_get_sf(fp, 0, "test1")
319
sf_val1 = sf(self.root)
320
assert sf_val1 == 1 or sf_val1 is None # either is OK
321
sf_val2 = sf(self.makeext("1"))
322
assert sf_val2 == 1 or sf_val2 is None
323
assert sf(self.makeext("1/1")) == 0
324
assert sf(self.makeext("1/1/2")) == 0
325
assert sf(self.makeext("1/2")) == 0
326
assert sf(self.makeext("1/2/3")) == 0
327
assert sf(self.makeext("1/3")) == 1
328
assert sf(self.makeext("2")) is None
329
assert sf(self.makeext("3")) == 0
331
def test_filelist_exclude_with_full_line_comment(self):
332
"""testFilelistExclude2 with modifiers - test full-line comment is ignored"""
333
fp = StringIO.StringIO("testfiles/select/1/1\n"
334
"- testfiles/select/1/2\n"
335
"# This is a full-line comment\n"
336
"+ testfiles/select/1/3\n"
337
"- testfiles/select/3")
338
sf = self.Select.filelist_get_sf(fp, 0, "test1")
339
sf_val1 = sf(self.root)
340
assert sf_val1 == 1 or sf_val1 is None # either is OK
341
sf_val2 = sf(self.makeext("1"))
342
assert sf_val2 == 1 or sf_val2 is None
343
assert sf(self.makeext("1/1")) == 0
344
assert sf(self.makeext("1/1/2")) == 0
345
assert sf(self.makeext("1/2")) == 0
346
assert sf(self.makeext("1/2/3")) == 0
347
assert sf(self.makeext("1/3")) == 1
348
assert sf(self.makeext("2")) is None
349
assert sf(self.makeext("3")) == 0
351
def test_filelist_exclude_with_blank_line(self):
352
"""testFilelistExclude2 with modifiers - test blank line is ignored"""
353
fp = StringIO.StringIO("testfiles/select/1/1\n"
354
"- testfiles/select/1/2\n"
356
"+ testfiles/select/1/3\n"
357
"- testfiles/select/3")
358
sf = self.Select.filelist_get_sf(fp, 0, "test1")
359
sf_val1 = sf(self.root)
360
assert sf_val1 == 1 or sf_val1 is None # either is OK
361
sf_val2 = sf(self.makeext("1"))
362
assert sf_val2 == 1 or sf_val2 is None
363
assert sf(self.makeext("1/1")) == 0
364
assert sf(self.makeext("1/1/2")) == 0
365
assert sf(self.makeext("1/2")) == 0
366
assert sf(self.makeext("1/2/3")) == 0
367
assert sf(self.makeext("1/3")) == 1
368
assert sf(self.makeext("2")) is None
369
assert sf(self.makeext("3")) == 0
371
def test_filelist_exclude_with_blank_line_and_whitespace(self):
372
"""testFilelistExclude2 with modifiers - test blank line with whitespace is ignored"""
373
fp = StringIO.StringIO("testfiles/select/1/1\n"
374
"- testfiles/select/1/2\n"
376
"+ testfiles/select/1/3\n"
377
"- testfiles/select/3")
378
sf = self.Select.filelist_get_sf(fp, 0, "test1")
379
sf_val1 = sf(self.root)
380
assert sf_val1 == 1 or sf_val1 is None # either is OK
381
sf_val2 = sf(self.makeext("1"))
382
assert sf_val2 == 1 or sf_val2 is None
383
assert sf(self.makeext("1/1")) == 0
384
assert sf(self.makeext("1/1/2")) == 0
385
assert sf(self.makeext("1/2")) == 0
386
assert sf(self.makeext("1/2/3")) == 0
387
assert sf(self.makeext("1/3")) == 1
388
assert sf(self.makeext("2")) is None
389
assert sf(self.makeext("3")) == 0
391
def test_filelist_exclude_with_double_quotes(self):
392
"""testFilelistExclude2 with modifiers - test unnecessary double quotes are ignored"""
393
fp = StringIO.StringIO('testfiles/select/1/1\n'
394
'- testfiles/select/1/2\n'
395
'+ "testfiles/select/1/3"\n'
396
'- testfiles/select/3')
397
sf = self.Select.filelist_get_sf(fp, 0, "test1")
398
sf_val1 = sf(self.root)
399
assert sf_val1 == 1 or sf_val1 is None # either is OK
400
sf_val2 = sf(self.makeext("1"))
401
assert sf_val2 == 1 or sf_val2 is None
402
assert sf(self.makeext("1/1")) == 0
403
assert sf(self.makeext("1/1/2")) == 0
404
assert sf(self.makeext("1/2")) == 0
405
assert sf(self.makeext("1/2/3")) == 0
406
assert sf(self.makeext("1/3")) == 1
407
assert sf(self.makeext("2")) is None
408
assert sf(self.makeext("3")) == 0
410
105
def testGlobRE(self):
411
106
"""testGlobRE - test translation of shell pattern to regular exp"""
412
107
assert self.Select.glob_to_re("hello") == "hello"