##// END OF EJS Templates
match: use '' instead of '.' for root directory (API)...
match: use '' instead of '.' for root directory (API) I think '' is generally a better value for the root directory than '.' is. For example, os.path.join('', 'foo') => 'foo', while os.path.join('.', 'foo') => './foo'. This patch mostly makes it so we use '' internally in match.py. However, it also affects the API in visitdir(), visitchildrenset() and files(). The two former now also accept '' as input. I've updated the callers of these methods. I've also added a deprecation warning for passing '.' (for external callers). The only caller I could find that was affected by files() returning '' instead of '.' was in dirstate.walk(). I've updated that. The next few patches show some workarounds we can remove by using '' instead of '.'. Differential Revision: https://phab.mercurial-scm.org/D6401

File last commit:

r42528:27d6956d default
r42528:27d6956d default
Show More
test-match.py
832 lines | 40.6 KiB | text/x-python | PythonLexer
Martin von Zweigbergk
match: override visitdir() in nevermatcher to return False...
r33583 from __future__ import absolute_import
import unittest
import silenttestrunner
from mercurial import (
match as matchmod,
spectral
match: add tests for visitdir functionality...
r38988 util,
Martin von Zweigbergk
match: override visitdir() in nevermatcher to return False...
r33583 )
spectral
match: add tests for visitdir functionality...
r38988 class BaseMatcherTests(unittest.TestCase):
def testVisitdir(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.basematcher()
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.basematcher()
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class AlwaysMatcherTests(unittest.TestCase):
def testVisitdir(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.alwaysmatcher()
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitdir(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitdir(b'dir'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.alwaysmatcher()
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
Martin von Zweigbergk
match: override visitdir() in nevermatcher to return False...
r33583 class NeverMatcherTests(unittest.TestCase):
def testVisitdir(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.nevermatcher()
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertFalse(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(m.visitdir(b'dir'))
Martin von Zweigbergk
match: override visitdir() in nevermatcher to return False...
r33583
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.nevermatcher()
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), set())
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class PredicateMatcherTests(unittest.TestCase):
# predicatematcher does not currently define either of these methods, so
# this is equivalent to BaseMatcherTests.
def testVisitdir(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.predicatematcher(lambda *a: False)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m = matchmod.predicatematcher(lambda *a: False)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class PatternMatcherTests(unittest.TestCase):
def testVisitdirPrefix(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', patterns=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.patternmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
self.assertEqual(m.visitdir(b'dir/subdir'), b'all')
spectral
match: add tests for visitdir functionality...
r38988 # OPT: This should probably be 'all' if its parent is?
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir/subdir/x'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetPrefix(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', patterns=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.patternmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), b'this')
self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: This should probably be 'all' if its parent is?
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this')
self.assertEqual(m.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirRootfilesin(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', patterns=[b'rootfilesin:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.patternmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(m.visitdir(b'dir/subdir/x'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988 # FIXME: These should probably be True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(m.visitdir(b'dir'))
self.assertFalse(m.visitdir(b'dir/subdir'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetRootfilesin(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', patterns=[b'rootfilesin:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.patternmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set())
self.assertEqual(m.visitchildrenset(b'folder'), set())
Kyle Lippincott
match: add missing "return set()", add FIXME to test to doc a bug...
r38993 # FIXME: These should probably be {'subdir'} and 'this', respectively,
# or at least 'this' and 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), set())
self.assertEqual(m.visitchildrenset(b'dir/subdir'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirGlob(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', patterns=[b'glob:dir/z*'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.patternmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: these should probably be False.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir/subdir'))
self.assertTrue(m.visitdir(b'dir/subdir/x'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetGlob(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', patterns=[b'glob:dir/z*'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.patternmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'folder'), set())
self.assertEqual(m.visitchildrenset(b'dir'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: these should probably be set().
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this')
self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class IncludeMatcherTests(unittest.TestCase):
def testVisitdirPrefix(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', include=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.includematcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
self.assertEqual(m.visitdir(b'dir/subdir'), b'all')
spectral
match: add tests for visitdir functionality...
r38988 # OPT: This should probably be 'all' if its parent is?
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir/subdir/x'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetPrefix(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', include=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.includematcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: This should probably be 'all' if its parent is?
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this')
self.assertEqual(m.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirRootfilesin(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', include=[b'rootfilesin:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.includematcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
self.assertTrue(m.visitdir(b'dir/subdir'))
self.assertFalse(m.visitdir(b'dir/subdir/x'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetRootfilesin(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', include=[b'rootfilesin:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.includematcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this')
self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set())
self.assertEqual(m.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirGlob(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', include=[b'glob:dir/z*'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.includematcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: these should probably be False.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir/subdir'))
self.assertTrue(m.visitdir(b'dir/subdir/x'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetGlob(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'x', b'', include=[b'glob:dir/z*'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.includematcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'folder'), set())
self.assertEqual(m.visitchildrenset(b'dir'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: these should probably be set().
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this')
self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class ExactMatcherTests(unittest.TestCase):
def testVisitdir(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments from {always,never,exact}() (API)...
r41825 m = matchmod.exact(files=[b'dir/subdir/foo.txt'])
spectral
match: add tests for visitdir functionality...
r38988 assert isinstance(m, matchmod.exactmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertTrue(m.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertTrue(m.visitdir(b'dir'))
self.assertTrue(m.visitdir(b'dir/subdir'))
self.assertFalse(m.visitdir(b'dir/subdir/foo.txt'))
self.assertFalse(m.visitdir(b'dir/foo'))
self.assertFalse(m.visitdir(b'dir/subdir/x'))
self.assertFalse(m.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments from {always,never,exact}() (API)...
r41825 m = matchmod.exact(files=[b'dir/subdir/foo.txt'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 assert isinstance(m, matchmod.exactmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'})
Kyle Lippincott
match: make exactmatcher.visitchildrenset return file children as well...
r39297 self.assertEqual(m.visitchildrenset(b'dir/subdir'), {b'foo.txt'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set())
self.assertEqual(m.visitchildrenset(b'dir/subdir/foo.txt'), set())
self.assertEqual(m.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
Kyle Lippincott
match: make exactmatcher.visitchildrenset return file children as well...
r39297 def testVisitchildrensetFilesAndDirs(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments from {always,never,exact}() (API)...
r41825 m = matchmod.exact(files=[b'rootfile.txt',
b'a/file1.txt',
b'a/b/file2.txt',
# no file in a/b/c
b'a/b/c/d/file4.txt'])
Kyle Lippincott
match: make exactmatcher.visitchildrenset return file children as well...
r39297 assert isinstance(m, matchmod.exactmatcher)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), {b'a', b'rootfile.txt'})
Kyle Lippincott
match: make exactmatcher.visitchildrenset return file children as well...
r39297 self.assertEqual(m.visitchildrenset(b'a'), {b'b', b'file1.txt'})
self.assertEqual(m.visitchildrenset(b'a/b'), {b'c', b'file2.txt'})
self.assertEqual(m.visitchildrenset(b'a/b/c'), {b'd'})
self.assertEqual(m.visitchildrenset(b'a/b/c/d'), {b'file4.txt'})
self.assertEqual(m.visitchildrenset(b'a/b/c/d/e'), set())
self.assertEqual(m.visitchildrenset(b'folder'), set())
spectral
match: add tests for visitdir functionality...
r38988 class DifferenceMatcherTests(unittest.TestCase):
def testVisitdirM2always(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add tests for visitdir functionality...
r38988 dm = matchmod.differencematcher(m1, m2)
# dm should be equivalent to a nevermatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertFalse(dm.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(dm.visitdir(b'dir'))
self.assertFalse(dm.visitdir(b'dir/subdir'))
self.assertFalse(dm.visitdir(b'dir/subdir/z'))
self.assertFalse(dm.visitdir(b'dir/foo'))
self.assertFalse(dm.visitdir(b'dir/subdir/x'))
self.assertFalse(dm.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2always(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 dm = matchmod.differencematcher(m1, m2)
# dm should be equivalent to a nevermatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitchildrenset(b''), set())
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitchildrenset(b'dir'), set())
self.assertEqual(dm.visitchildrenset(b'dir/subdir'), set())
self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), set())
self.assertEqual(dm.visitchildrenset(b'dir/foo'), set())
self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), set())
self.assertEqual(dm.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM2never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.nevermatcher()
spectral
match: add tests for visitdir functionality...
r38988 dm = matchmod.differencematcher(m1, m2)
Pulkit Goyal
match: teach diffmatcher.visitdir() to return 'all' if possible...
r41669 # dm should be equivalent to a alwaysmatcher.
spectral
match: add tests for visitdir functionality...
r38988 #
# We're testing Equal-to-True instead of just 'assertTrue' since
# assertTrue does NOT verify that it's a bool, just that it's truthy.
# While we may want to eventually make these return 'all', they should
# not currently do so.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitdir(b''), b'all')
Augie Fackler
tests: fix test-match.py on Python3...
r41671 self.assertEqual(dm.visitdir(b'dir'), b'all')
self.assertEqual(dm.visitdir(b'dir/subdir'), b'all')
self.assertEqual(dm.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(dm.visitdir(b'dir/foo'), b'all')
self.assertEqual(dm.visitdir(b'dir/subdir/x'), b'all')
self.assertEqual(dm.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.nevermatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 dm = matchmod.differencematcher(m1, m2)
# dm should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitchildrenset(b'dir'), b'all')
self.assertEqual(dm.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(dm.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), b'all')
self.assertEqual(dm.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM2SubdirPrefix(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 dm = matchmod.differencematcher(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitdir(b'dir'), True)
self.assertFalse(dm.visitdir(b'dir/subdir'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: We should probably return False for these; we don't because
# patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of
# an 'all' pattern, just True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True)
self.assertEqual(dm.visitdir(b'dir/subdir/x'), True)
Augie Fackler
tests: fix test-match.py on Python3...
r41671 self.assertEqual(dm.visitdir(b'dir/foo'), b'all')
self.assertEqual(dm.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2SubdirPrefix(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 dm = matchmod.differencematcher(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitchildrenset(b'dir'), b'this')
self.assertEqual(dm.visitchildrenset(b'dir/subdir'), set())
self.assertEqual(dm.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(dm.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: We should probably return set() for these; we don't because
# patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of
# an 'all' pattern, just 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), b'this')
self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeIncludfe(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
spectral
match: add tests for visitdir functionality...
r38988 dm = matchmod.differencematcher(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitdir(b'dir'), True)
Augie Fackler
tests: fix test-match.py on Python3...
r41671 self.assertEqual(dm.visitdir(b'dir/subdir'), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(dm.visitdir(b'dir/foo'))
self.assertFalse(dm.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: We should probably return False for these; we don't because
# patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of
# an 'all' pattern, just True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True)
self.assertEqual(dm.visitdir(b'dir/subdir/x'), True)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 dm = matchmod.differencematcher(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(dm.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(dm.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(dm.visitchildrenset(b'dir/foo'), set())
self.assertEqual(dm.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: We should probably return set() for these; we don't because
# patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of
# an 'all' pattern, just 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), b'this')
self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class IntersectionMatcherTests(unittest.TestCase):
def testVisitdirM2always(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
# im should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitdir(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir'), b'all')
self.assertEqual(im.visitdir(b'dir/subdir'), b'all')
self.assertEqual(im.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(im.visitdir(b'dir/foo'), b'all')
self.assertEqual(im.visitdir(b'dir/subdir/x'), b'all')
self.assertEqual(im.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2always(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
# im should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), b'all')
self.assertEqual(im.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(im.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'all')
self.assertEqual(im.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM2never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.nevermatcher()
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
# im should be equivalent to a nevermatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertFalse(im.visitdir(b''))
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(im.visitdir(b'dir'))
self.assertFalse(im.visitdir(b'dir/subdir'))
self.assertFalse(im.visitdir(b'dir/subdir/z'))
self.assertFalse(im.visitdir(b'dir/foo'))
self.assertFalse(im.visitdir(b'dir/subdir/x'))
self.assertFalse(im.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.nevermatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
# im should be equivalent to a nevermqtcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), set())
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
self.assertEqual(im.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM2SubdirPrefix(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir'), True)
self.assertEqual(im.visitdir(b'dir/subdir'), b'all')
self.assertFalse(im.visitdir(b'dir/foo'))
self.assertFalse(im.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: We should probably return 'all' for these; we don't because
# patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of
# an 'all' pattern, just True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir/subdir/z'), True)
self.assertEqual(im.visitdir(b'dir/subdir/x'), True)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2SubdirPrefix(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(im.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
self.assertEqual(im.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: We should probably return 'all' for these
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), b'this')
self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeIncludfe(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir'), True)
self.assertFalse(im.visitdir(b'dir/subdir'))
self.assertFalse(im.visitdir(b'dir/foo'))
self.assertFalse(im.visitdir(b'folder'))
self.assertFalse(im.visitdir(b'dir/subdir/z'))
self.assertFalse(im.visitdir(b'dir/subdir/x'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), b'this')
self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
self.assertEqual(im.visitchildrenset(b'folder'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeInclude2(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'path:folder'])
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
# FIXME: is True correct here?
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertFalse(im.visitdir(b'dir'))
self.assertFalse(im.visitdir(b'dir/subdir'))
self.assertFalse(im.visitdir(b'dir/foo'))
self.assertFalse(im.visitdir(b'folder'))
self.assertFalse(im.visitdir(b'dir/subdir/z'))
self.assertFalse(im.visitdir(b'dir/subdir/x'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude2(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'path:folder'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
# FIXME: is set() correct here?
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), set())
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
self.assertEqual(im.visitchildrenset(b'folder'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeInclude3(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir'), True)
self.assertEqual(im.visitdir(b'dir/subdir'), True)
self.assertFalse(im.visitdir(b'dir/foo'))
self.assertFalse(im.visitdir(b'folder'))
self.assertFalse(im.visitdir(b'dir/subdir/z'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: this should probably be 'all' not True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir/subdir/x'), True)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude3(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(im.visitchildrenset(b'dir/subdir'), {b'x'})
self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
self.assertEqual(im.visitchildrenset(b'folder'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: this should probably be 'all' not 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeInclude4(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir/z'])
spectral
match: add tests for visitdir functionality...
r38988 im = matchmod.intersectmatchers(m1, m2)
# OPT: these next three could probably be False as well.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitdir(b'dir'), True)
self.assertEqual(im.visitdir(b'dir/subdir'), True)
self.assertFalse(im.visitdir(b'dir/foo'))
self.assertFalse(im.visitdir(b'folder'))
self.assertFalse(im.visitdir(b'dir/subdir/z'))
self.assertFalse(im.visitdir(b'dir/subdir/x'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude4(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir/z'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 im = matchmod.intersectmatchers(m1, m2)
# OPT: these next two could probably be set() as well.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(im.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(im.visitchildrenset(b'dir/subdir'), set())
self.assertEqual(im.visitchildrenset(b'dir/foo'), set())
self.assertEqual(im.visitchildrenset(b'folder'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set())
self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class UnionMatcherTests(unittest.TestCase):
def testVisitdirM2always(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
# um should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitdir(b'dir/foo'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
self.assertEqual(um.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2always(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
# um should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
self.assertEqual(um.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM1never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.nevermatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
# um should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitdir(b'dir/foo'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
self.assertEqual(um.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM1never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.nevermatcher()
m2 = matchmod.alwaysmatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
# um should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
self.assertEqual(um.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM2never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.nevermatcher()
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
# um should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitdir(b'dir/foo'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
self.assertEqual(um.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2never(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
m2 = matchmod.nevermatcher()
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
# um should be equivalent to a alwaysmatcher.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
self.assertEqual(um.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 def testVisitdirM2SubdirPrefix(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m2 = matchmod.match(b'', b'', patterns=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertEqual(um.visitdir(b'dir/foo'), b'all')
self.assertEqual(um.visitdir(b'folder'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetM2SubdirPrefix(self):
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 m1 = matchmod.alwaysmatcher()
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), b'all')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all')
self.assertEqual(um.visitchildrenset(b'folder'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeIncludfe(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), True)
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertFalse(um.visitdir(b'dir/foo'))
self.assertFalse(um.visitdir(b'folder'))
spectral
match: add tests for visitdir functionality...
r38988 # OPT: These two should probably be 'all' not True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir/subdir/z'), True)
self.assertEqual(um.visitdir(b'dir/subdir/x'), True)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'rootfilesin:dir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), b'this')
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
self.assertEqual(um.visitchildrenset(b'folder'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: These next two could be 'all' instead of 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeInclude2(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'path:folder'])
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), True)
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertFalse(um.visitdir(b'dir/foo'))
self.assertEqual(um.visitdir(b'folder'), b'all')
spectral
match: add tests for visitdir functionality...
r38988 # OPT: These should probably be 'all' not True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir/subdir/z'), True)
self.assertEqual(um.visitdir(b'dir/subdir/x'), True)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude2(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
m2 = matchmod.match(b'', b'', include=[b'path:folder'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), {b'folder', b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
self.assertEqual(um.visitchildrenset(b'folder'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: These next two could be 'all' instead of 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeInclude3(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), True)
self.assertEqual(um.visitdir(b'dir/subdir'), b'all')
self.assertFalse(um.visitdir(b'dir/foo'))
self.assertFalse(um.visitdir(b'folder'))
self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
spectral
match: add tests for visitdir functionality...
r38988 # OPT: this should probably be 'all' not True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir/subdir/z'), True)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude3(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
self.assertEqual(um.visitchildrenset(b'folder'), set())
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: this should probably be 'all' not 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 # We're using includematcher instead of patterns because it behaves slightly
# better (giving narrower results) than patternmatcher.
def testVisitdirIncludeInclude4(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir/z'])
spectral
match: add tests for visitdir functionality...
r38988 um = matchmod.unionmatcher([m1, m2])
# OPT: these next three could probably be False as well.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitdir(b'dir'), True)
self.assertEqual(um.visitdir(b'dir/subdir'), True)
self.assertFalse(um.visitdir(b'dir/foo'))
self.assertFalse(um.visitdir(b'folder'))
self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all')
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrensetIncludeInclude4(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m1 = matchmod.match(b'', b'', include=[b'path:dir/subdir/x'])
m2 = matchmod.match(b'', b'', include=[b'path:dir/subdir/z'])
spectral
match: add visitchildrenset complement to visitdir...
r38990 um = matchmod.unionmatcher([m1, m2])
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(um.visitchildrenset(b''), {b'dir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'})
self.assertEqual(um.visitchildrenset(b'dir/subdir'), {b'x', b'z'})
self.assertEqual(um.visitchildrenset(b'dir/foo'), set())
self.assertEqual(um.visitchildrenset(b'folder'), set())
self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all')
self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class SubdirMatcherTests(unittest.TestCase):
def testVisitdir(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
sm = matchmod.subdirmatcher(b'dir', m)
spectral
match: add tests for visitdir functionality...
r38988
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(sm.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(sm.visitdir(b'subdir'), b'all')
spectral
match: add tests for visitdir functionality...
r38988 # OPT: These next two should probably be 'all' not True.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(sm.visitdir(b'subdir/x'), True)
self.assertEqual(sm.visitdir(b'subdir/z'), True)
self.assertFalse(sm.visitdir(b'foo'))
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(b'', b'', include=[b'path:dir/subdir'])
sm = matchmod.subdirmatcher(b'dir', m)
spectral
match: add visitchildrenset complement to visitdir...
r38990
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(sm.visitchildrenset(b''), {b'subdir'})
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(sm.visitchildrenset(b'subdir'), b'all')
spectral
match: add visitchildrenset complement to visitdir...
r38990 # OPT: These next two should probably be 'all' not 'this'.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(sm.visitchildrenset(b'subdir/x'), b'this')
self.assertEqual(sm.visitchildrenset(b'subdir/z'), b'this')
self.assertEqual(sm.visitchildrenset(b'foo'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
spectral
match: add tests for visitdir functionality...
r38988 class PrefixdirMatcherTests(unittest.TestCase):
def testVisitdir(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(util.localpath(b'root/d'), b'e/f',
[b'../a.txt', b'b.txt'])
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 pm = matchmod.prefixdirmatcher(b'd', m)
spectral
match: add tests for visitdir functionality...
r38988
# `m` elides 'd' because it's part of the root, and the rest of the
# patterns are relative.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(bool(m(b'a.txt')), False)
self.assertEqual(bool(m(b'b.txt')), False)
self.assertEqual(bool(m(b'e/a.txt')), True)
self.assertEqual(bool(m(b'e/b.txt')), False)
self.assertEqual(bool(m(b'e/f/b.txt')), True)
spectral
match: add tests for visitdir functionality...
r38988
# The prefix matcher re-adds 'd' to the paths, so they need to be
# specified when using the prefixdirmatcher.
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(bool(pm(b'a.txt')), False)
self.assertEqual(bool(pm(b'b.txt')), False)
self.assertEqual(bool(pm(b'd/e/a.txt')), True)
self.assertEqual(bool(pm(b'd/e/b.txt')), False)
self.assertEqual(bool(pm(b'd/e/f/b.txt')), True)
spectral
match: add tests for visitdir functionality...
r38988
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitdir(b'e'), True)
self.assertEqual(m.visitdir(b'e/f'), True)
self.assertEqual(m.visitdir(b'e/f/g'), False)
spectral
match: add tests for visitdir functionality...
r38988
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(pm.visitdir(b''), True)
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(pm.visitdir(b'd'), True)
self.assertEqual(pm.visitdir(b'd/e'), True)
self.assertEqual(pm.visitdir(b'd/e/f'), True)
self.assertEqual(pm.visitdir(b'd/e/f/g'), False)
spectral
match: add tests for visitdir functionality...
r38988
spectral
match: add visitchildrenset complement to visitdir...
r38990 def testVisitchildrenset(self):
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 m = matchmod.match(util.localpath(b'root/d'), b'e/f',
[b'../a.txt', b'b.txt'])
Martin von Zweigbergk
match: delete unused root and cwd arguments to constructors (API)...
r41824 pm = matchmod.prefixdirmatcher(b'd', m)
spectral
match: add visitchildrenset complement to visitdir...
r38990
# OPT: visitchildrenset could possibly return {'e'} and {'f'} for these
# next two, respectively; patternmatcher does not have this
# optimization.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(m.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(m.visitchildrenset(b'e'), b'this')
self.assertEqual(m.visitchildrenset(b'e/f'), b'this')
self.assertEqual(m.visitchildrenset(b'e/f/g'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
# OPT: visitchildrenset could possibly return {'d'}, {'e'}, and {'f'}
# for these next three, respectively; patternmatcher does not have this
# optimization.
Martin von Zweigbergk
match: use '' instead of '.' for root directory (API)...
r42528 self.assertEqual(pm.visitchildrenset(b''), b'this')
Augie Fackler
tests: make all the string constants in test-match.py be bytes...
r38999 self.assertEqual(pm.visitchildrenset(b'd'), b'this')
self.assertEqual(pm.visitchildrenset(b'd/e'), b'this')
self.assertEqual(pm.visitchildrenset(b'd/e/f'), b'this')
self.assertEqual(pm.visitchildrenset(b'd/e/f/g'), set())
spectral
match: add visitchildrenset complement to visitdir...
r38990
Martin von Zweigbergk
match: override visitdir() in nevermatcher to return False...
r33583 if __name__ == '__main__':
silenttestrunner.main(__name__)