183 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this') |
183 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this') |
184 |
184 |
185 class ExactMatcherTests(unittest.TestCase): |
185 class ExactMatcherTests(unittest.TestCase): |
186 |
186 |
187 def testVisitdir(self): |
187 def testVisitdir(self): |
188 m = matchmod.exact(b'x', b'', files=[b'dir/subdir/foo.txt']) |
188 m = matchmod.exact(files=[b'dir/subdir/foo.txt']) |
189 assert isinstance(m, matchmod.exactmatcher) |
189 assert isinstance(m, matchmod.exactmatcher) |
190 self.assertTrue(m.visitdir(b'.')) |
190 self.assertTrue(m.visitdir(b'.')) |
191 self.assertTrue(m.visitdir(b'dir')) |
191 self.assertTrue(m.visitdir(b'dir')) |
192 self.assertTrue(m.visitdir(b'dir/subdir')) |
192 self.assertTrue(m.visitdir(b'dir/subdir')) |
193 self.assertFalse(m.visitdir(b'dir/subdir/foo.txt')) |
193 self.assertFalse(m.visitdir(b'dir/subdir/foo.txt')) |
194 self.assertFalse(m.visitdir(b'dir/foo')) |
194 self.assertFalse(m.visitdir(b'dir/foo')) |
195 self.assertFalse(m.visitdir(b'dir/subdir/x')) |
195 self.assertFalse(m.visitdir(b'dir/subdir/x')) |
196 self.assertFalse(m.visitdir(b'folder')) |
196 self.assertFalse(m.visitdir(b'folder')) |
197 |
197 |
198 def testVisitchildrenset(self): |
198 def testVisitchildrenset(self): |
199 m = matchmod.exact(b'x', b'', files=[b'dir/subdir/foo.txt']) |
199 m = matchmod.exact(files=[b'dir/subdir/foo.txt']) |
200 assert isinstance(m, matchmod.exactmatcher) |
200 assert isinstance(m, matchmod.exactmatcher) |
201 self.assertEqual(m.visitchildrenset(b'.'), {b'dir'}) |
201 self.assertEqual(m.visitchildrenset(b'.'), {b'dir'}) |
202 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'}) |
202 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'}) |
203 self.assertEqual(m.visitchildrenset(b'dir/subdir'), {b'foo.txt'}) |
203 self.assertEqual(m.visitchildrenset(b'dir/subdir'), {b'foo.txt'}) |
204 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set()) |
204 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set()) |
205 self.assertEqual(m.visitchildrenset(b'dir/subdir/foo.txt'), set()) |
205 self.assertEqual(m.visitchildrenset(b'dir/subdir/foo.txt'), set()) |
206 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
206 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
207 |
207 |
208 def testVisitchildrensetFilesAndDirs(self): |
208 def testVisitchildrensetFilesAndDirs(self): |
209 m = matchmod.exact(b'x', b'', files=[b'rootfile.txt', |
209 m = matchmod.exact(files=[b'rootfile.txt', |
210 b'a/file1.txt', |
210 b'a/file1.txt', |
211 b'a/b/file2.txt', |
211 b'a/b/file2.txt', |
212 # no file in a/b/c |
212 # no file in a/b/c |
213 b'a/b/c/d/file4.txt']) |
213 b'a/b/c/d/file4.txt']) |
214 assert isinstance(m, matchmod.exactmatcher) |
214 assert isinstance(m, matchmod.exactmatcher) |
215 self.assertEqual(m.visitchildrenset(b'.'), {b'a', b'rootfile.txt'}) |
215 self.assertEqual(m.visitchildrenset(b'.'), {b'a', b'rootfile.txt'}) |
216 self.assertEqual(m.visitchildrenset(b'a'), {b'b', b'file1.txt'}) |
216 self.assertEqual(m.visitchildrenset(b'a'), {b'b', b'file1.txt'}) |
217 self.assertEqual(m.visitchildrenset(b'a/b'), {b'c', b'file2.txt'}) |
217 self.assertEqual(m.visitchildrenset(b'a/b'), {b'c', b'file2.txt'}) |
218 self.assertEqual(m.visitchildrenset(b'a/b/c'), {b'd'}) |
218 self.assertEqual(m.visitchildrenset(b'a/b/c'), {b'd'}) |