--- a/tests/test-match.py Sun Jun 18 00:09:39 2023 +0200
+++ b/tests/test-match.py Mon Jun 12 16:51:08 2023 +0200
@@ -140,6 +140,28 @@
self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this')
self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this')
+ def testVisitdirFilepath(self):
+ m = matchmod.match(
+ util.localpath(b'/repo'), b'', patterns=[b'filepath:dir/z']
+ )
+ assert isinstance(m, matchmod.patternmatcher)
+ self.assertTrue(m.visitdir(b''))
+ self.assertTrue(m.visitdir(b'dir'))
+ self.assertFalse(m.visitdir(b'folder'))
+ self.assertFalse(m.visitdir(b'dir/subdir'))
+ self.assertFalse(m.visitdir(b'dir/subdir/x'))
+
+ def testVisitchildrensetFilepath(self):
+ m = matchmod.match(
+ util.localpath(b'/repo'), b'', patterns=[b'filepath:dir/z']
+ )
+ assert isinstance(m, matchmod.patternmatcher)
+ self.assertEqual(m.visitchildrenset(b''), b'this')
+ self.assertEqual(m.visitchildrenset(b'folder'), set())
+ self.assertEqual(m.visitchildrenset(b'dir'), b'this')
+ self.assertEqual(m.visitchildrenset(b'dir/subdir'), set())
+ self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set())
+
class IncludeMatcherTests(unittest.TestCase):
def testVisitdirPrefix(self):
@@ -212,6 +234,28 @@
self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this')
self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this')
+ def testVisitdirFilepath(self):
+ m = matchmod.match(
+ util.localpath(b'/repo'), b'', include=[b'filepath:dir/z']
+ )
+ assert isinstance(m, matchmod.includematcher)
+ self.assertTrue(m.visitdir(b''))
+ self.assertTrue(m.visitdir(b'dir'))
+ self.assertFalse(m.visitdir(b'folder'))
+ self.assertFalse(m.visitdir(b'dir/subdir'))
+ self.assertFalse(m.visitdir(b'dir/subdir/x'))
+
+ def testVisitchildrensetFilepath(self):
+ m = matchmod.match(
+ util.localpath(b'/repo'), b'', include=[b'filepath:dir/z']
+ )
+ assert isinstance(m, matchmod.includematcher)
+ self.assertEqual(m.visitchildrenset(b''), {b'dir'})
+ self.assertEqual(m.visitchildrenset(b'folder'), set())
+ self.assertEqual(m.visitchildrenset(b'dir'), {b'z'})
+ self.assertEqual(m.visitchildrenset(b'dir/subdir'), set())
+ self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set())
+
class ExactMatcherTests(unittest.TestCase):
def testVisitdir(self):