##// END OF EJS Templates
tests: finally fix up test-fuzz-targets.t...
tests: finally fix up test-fuzz-targets.t It's been failing on my workstation for a while, since I have a new enough LLVM that I had the fuzzer goo, but not so new that I actually had FuzzedDataProvider. This is a better solution all around in my opinion. I _believe_ this should let us run these tests on most systems, even those using GCC instead of clang. That said, my one attempt to test this on my macOS laptop failed miserably, and I don't feel like doing more work on this right now. Differential Revision: https://phab.mercurial-scm.org/D7566

File last commit:

r43692:c2c3ee87 stable
r44267:19da643d default
Show More
test-match.py
840 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 )
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
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)
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.
Martin von Zweigbergk
match: drop unnecessary adding of '' to set of dirs...
r42533 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'))
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)
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())
Martin von Zweigbergk
match: drop unnecessary adding of '' to set of dirs...
r42533 # FIXME: These should probably be {'dir'}, {'subdir'} and 'this',
# respectively, or at least 'this' for all three.
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())
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
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
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):
Augie Fackler
formatting: blacken the codebase...
r43346 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())
Augie Fackler
formatting: blacken the codebase...
r43346
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.
Martin von Zweigbergk
tests: fix typo "includfe"...
r43692 def testVisitdirIncludeInclude(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
Augie Fackler
formatting: blacken the codebase...
r43346
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.
Martin von Zweigbergk
tests: fix typo "includfe"...
r43692 def testVisitdirIncludeInclude(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
Augie Fackler
formatting: blacken the codebase...
r43346
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.
Martin von Zweigbergk
tests: fix typo "includfe"...
r43692 def testVisitdirIncludeInclude(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
Augie Fackler
formatting: blacken the codebase...
r43346
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
Augie Fackler
formatting: blacken the codebase...
r43346
spectral
match: add tests for visitdir functionality...
r38988 class PrefixdirMatcherTests(unittest.TestCase):
def testVisitdir(self):
Augie Fackler
formatting: blacken the codebase...
r43346 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
formatting: blacken the codebase...
r43346 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
Augie Fackler
formatting: blacken the codebase...
r43346
Martin von Zweigbergk
match: override visitdir() in nevermatcher to return False...
r33583 if __name__ == '__main__':
silenttestrunner.main(__name__)