253 |
253 |
254 def testVisitdirM2never(self): |
254 def testVisitdirM2never(self): |
255 m1 = matchmod.alwaysmatcher(b'', b'') |
255 m1 = matchmod.alwaysmatcher(b'', b'') |
256 m2 = matchmod.nevermatcher(b'', b'') |
256 m2 = matchmod.nevermatcher(b'', b'') |
257 dm = matchmod.differencematcher(m1, m2) |
257 dm = matchmod.differencematcher(m1, m2) |
258 # dm should be equivalent to a alwaysmatcher. OPT: if m2 is a |
258 # dm should be equivalent to a alwaysmatcher. |
259 # nevermatcher, we could return 'all' for these. |
|
260 # |
259 # |
261 # We're testing Equal-to-True instead of just 'assertTrue' since |
260 # We're testing Equal-to-True instead of just 'assertTrue' since |
262 # assertTrue does NOT verify that it's a bool, just that it's truthy. |
261 # assertTrue does NOT verify that it's a bool, just that it's truthy. |
263 # While we may want to eventually make these return 'all', they should |
262 # While we may want to eventually make these return 'all', they should |
264 # not currently do so. |
263 # not currently do so. |
265 self.assertEqual(dm.visitdir(b'.'), True) |
264 self.assertEqual(dm.visitdir(b'.'), 'all') |
266 self.assertEqual(dm.visitdir(b'dir'), True) |
265 self.assertEqual(dm.visitdir(b'dir'), 'all') |
267 self.assertEqual(dm.visitdir(b'dir/subdir'), True) |
266 self.assertEqual(dm.visitdir(b'dir/subdir'), 'all') |
268 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True) |
267 self.assertEqual(dm.visitdir(b'dir/subdir/z'), 'all') |
269 self.assertEqual(dm.visitdir(b'dir/foo'), True) |
268 self.assertEqual(dm.visitdir(b'dir/foo'), 'all') |
270 self.assertEqual(dm.visitdir(b'dir/subdir/x'), True) |
269 self.assertEqual(dm.visitdir(b'dir/subdir/x'), 'all') |
271 self.assertEqual(dm.visitdir(b'folder'), True) |
270 self.assertEqual(dm.visitdir(b'folder'), 'all') |
272 |
271 |
273 def testVisitchildrensetM2never(self): |
272 def testVisitchildrensetM2never(self): |
274 m1 = matchmod.alwaysmatcher(b'', b'') |
273 m1 = matchmod.alwaysmatcher(b'', b'') |
275 m2 = matchmod.nevermatcher(b'', b'') |
274 m2 = matchmod.nevermatcher(b'', b'') |
276 dm = matchmod.differencematcher(m1, m2) |
275 dm = matchmod.differencematcher(m1, m2) |
293 # OPT: We should probably return False for these; we don't because |
292 # OPT: We should probably return False for these; we don't because |
294 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
293 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
295 # an 'all' pattern, just True. |
294 # an 'all' pattern, just True. |
296 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True) |
295 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True) |
297 self.assertEqual(dm.visitdir(b'dir/subdir/x'), True) |
296 self.assertEqual(dm.visitdir(b'dir/subdir/x'), True) |
298 # OPT: We could return 'all' for these. |
297 self.assertEqual(dm.visitdir(b'dir/foo'), 'all') |
299 self.assertEqual(dm.visitdir(b'dir/foo'), True) |
298 self.assertEqual(dm.visitdir(b'folder'), 'all') |
300 self.assertEqual(dm.visitdir(b'folder'), True) |
|
301 |
299 |
302 def testVisitchildrensetM2SubdirPrefix(self): |
300 def testVisitchildrensetM2SubdirPrefix(self): |
303 m1 = matchmod.alwaysmatcher(b'', b'') |
301 m1 = matchmod.alwaysmatcher(b'', b'') |
304 m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir']) |
302 m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir']) |
305 dm = matchmod.differencematcher(m1, m2) |
303 dm = matchmod.differencematcher(m1, m2) |
320 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir']) |
318 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir']) |
321 m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir']) |
319 m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir']) |
322 dm = matchmod.differencematcher(m1, m2) |
320 dm = matchmod.differencematcher(m1, m2) |
323 self.assertEqual(dm.visitdir(b'.'), True) |
321 self.assertEqual(dm.visitdir(b'.'), True) |
324 self.assertEqual(dm.visitdir(b'dir'), True) |
322 self.assertEqual(dm.visitdir(b'dir'), True) |
325 self.assertEqual(dm.visitdir(b'dir/subdir'), True) |
323 self.assertEqual(dm.visitdir(b'dir/subdir'), 'all') |
326 self.assertFalse(dm.visitdir(b'dir/foo')) |
324 self.assertFalse(dm.visitdir(b'dir/foo')) |
327 self.assertFalse(dm.visitdir(b'folder')) |
325 self.assertFalse(dm.visitdir(b'folder')) |
328 # OPT: We should probably return False for these; we don't because |
326 # OPT: We should probably return False for these; we don't because |
329 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
327 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
330 # an 'all' pattern, just True. |
328 # an 'all' pattern, just True. |