Mercurial > hg
annotate tests/test-match.py @ 43949:8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
The `root` argument should already be an absolute path, but we had
tests that passed a relative path. This patch fixes up the tests and
adds an assertion.
This assumes that `os.path.isabs('/repo')` will be `True` on all
platforms we care to run tests on. Augie tested for me that it does
work on Windows, so that's good enough for me.
Differential Revision: https://phab.mercurial-scm.org/D7649
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 13 Dec 2019 11:21:31 -0800 |
parents | c2c3ee8794dd |
children | 8f67735344ae |
rev | line source |
---|---|
33582
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
1 from __future__ import absolute_import |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
2 |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
3 import unittest |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
4 |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
5 import silenttestrunner |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
6 |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
7 from mercurial import ( |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
8 match as matchmod, |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
9 util, |
33582
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
10 ) |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
11 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
12 |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
13 noop_auditor = lambda name: None |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
14 |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
15 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
16 class BaseMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
17 def testVisitdir(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
18 m = matchmod.basematcher() |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
19 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
20 self.assertTrue(m.visitdir(b'dir')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
21 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
22 def testVisitchildrenset(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
23 m = matchmod.basematcher() |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
24 self.assertEqual(m.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
25 self.assertEqual(m.visitchildrenset(b'dir'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
26 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
27 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
28 class AlwaysMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
29 def testVisitdir(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
30 m = matchmod.alwaysmatcher() |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
31 self.assertEqual(m.visitdir(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
32 self.assertEqual(m.visitdir(b'dir'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
33 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
34 def testVisitchildrenset(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
35 m = matchmod.alwaysmatcher() |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
36 self.assertEqual(m.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
37 self.assertEqual(m.visitchildrenset(b'dir'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
38 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
39 |
33582
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
40 class NeverMatcherTests(unittest.TestCase): |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
41 def testVisitdir(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
42 m = matchmod.nevermatcher() |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
43 self.assertFalse(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
44 self.assertFalse(m.visitdir(b'dir')) |
33582
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
45 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
46 def testVisitchildrenset(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
47 m = matchmod.nevermatcher() |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
48 self.assertEqual(m.visitchildrenset(b''), set()) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
49 self.assertEqual(m.visitchildrenset(b'dir'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
50 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
51 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
52 class PredicateMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
53 # predicatematcher does not currently define either of these methods, so |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
54 # this is equivalent to BaseMatcherTests. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
55 |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
56 def testVisitdir(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
57 m = matchmod.predicatematcher(lambda *a: False) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
58 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
59 self.assertTrue(m.visitdir(b'dir')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
60 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
61 def testVisitchildrenset(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
62 m = matchmod.predicatematcher(lambda *a: False) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
63 self.assertEqual(m.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
64 self.assertEqual(m.visitchildrenset(b'dir'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
65 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
66 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
67 class PatternMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
68 def testVisitdirPrefix(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
69 m = matchmod.match(b'/repo', b'', patterns=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
70 assert isinstance(m, matchmod.patternmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
71 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
72 self.assertTrue(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
73 self.assertEqual(m.visitdir(b'dir/subdir'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
74 # OPT: This should probably be 'all' if its parent is? |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
75 self.assertTrue(m.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
76 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
77 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
78 def testVisitchildrensetPrefix(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
79 m = matchmod.match(b'/repo', b'', patterns=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
80 assert isinstance(m, matchmod.patternmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
81 self.assertEqual(m.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
82 self.assertEqual(m.visitchildrenset(b'dir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
83 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
84 # OPT: This should probably be 'all' if its parent is? |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
85 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
86 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
87 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
88 def testVisitdirRootfilesin(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
89 m = matchmod.match(b'/repo', b'', patterns=[b'rootfilesin:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
90 assert isinstance(m, matchmod.patternmatcher) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
91 self.assertFalse(m.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
92 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
93 # FIXME: These should probably be True. |
42346
38d85ec06552
match: drop unnecessary adding of '' to set of dirs
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
94 self.assertFalse(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
95 self.assertFalse(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
96 self.assertFalse(m.visitdir(b'dir/subdir')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
97 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
98 def testVisitchildrensetRootfilesin(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
99 m = matchmod.match(b'/repo', b'', patterns=[b'rootfilesin:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
100 assert isinstance(m, matchmod.patternmatcher) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
101 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
102 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
42346
38d85ec06552
match: drop unnecessary adding of '' to set of dirs
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
103 # FIXME: These should probably be {'dir'}, {'subdir'} and 'this', |
38d85ec06552
match: drop unnecessary adding of '' to set of dirs
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
104 # respectively, or at least 'this' for all three. |
38d85ec06552
match: drop unnecessary adding of '' to set of dirs
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
105 self.assertEqual(m.visitchildrenset(b''), set()) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
106 self.assertEqual(m.visitchildrenset(b'dir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
107 self.assertEqual(m.visitchildrenset(b'dir/subdir'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
108 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
109 def testVisitdirGlob(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
110 m = matchmod.match(b'/repo', b'', patterns=[b'glob:dir/z*']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
111 assert isinstance(m, matchmod.patternmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
112 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
113 self.assertTrue(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
114 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
115 # OPT: these should probably be False. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
116 self.assertTrue(m.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
117 self.assertTrue(m.visitdir(b'dir/subdir/x')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
118 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
119 def testVisitchildrensetGlob(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
120 m = matchmod.match(b'/repo', b'', patterns=[b'glob:dir/z*']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
121 assert isinstance(m, matchmod.patternmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
122 self.assertEqual(m.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
123 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
124 self.assertEqual(m.visitchildrenset(b'dir'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
125 # OPT: these should probably be set(). |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
126 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
127 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
128 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
129 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
130 class IncludeMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
131 def testVisitdirPrefix(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
132 m = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
133 assert isinstance(m, matchmod.includematcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
134 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
135 self.assertTrue(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
136 self.assertEqual(m.visitdir(b'dir/subdir'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
137 # OPT: This should probably be 'all' if its parent is? |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
138 self.assertTrue(m.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
139 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
140 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
141 def testVisitchildrensetPrefix(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
142 m = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
143 assert isinstance(m, matchmod.includematcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
144 self.assertEqual(m.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
145 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
146 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
147 # OPT: This should probably be 'all' if its parent is? |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
148 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
149 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
150 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
151 def testVisitdirRootfilesin(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
152 m = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
153 assert isinstance(m, matchmod.includematcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
154 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
155 self.assertTrue(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
156 self.assertTrue(m.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
157 self.assertFalse(m.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
158 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
159 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
160 def testVisitchildrensetRootfilesin(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
161 m = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
162 assert isinstance(m, matchmod.includematcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
163 self.assertEqual(m.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
164 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
165 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
166 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
167 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
168 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
169 def testVisitdirGlob(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
170 m = matchmod.match(b'/repo', b'', include=[b'glob:dir/z*']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
171 assert isinstance(m, matchmod.includematcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
172 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
173 self.assertTrue(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
174 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
175 # OPT: these should probably be False. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
176 self.assertTrue(m.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
177 self.assertTrue(m.visitdir(b'dir/subdir/x')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
178 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
179 def testVisitchildrensetGlob(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
180 m = matchmod.match(b'/repo', b'', include=[b'glob:dir/z*']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
181 assert isinstance(m, matchmod.includematcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
182 self.assertEqual(m.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
183 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
184 self.assertEqual(m.visitchildrenset(b'dir'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
185 # OPT: these should probably be set(). |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
186 self.assertEqual(m.visitchildrenset(b'dir/subdir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
187 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
188 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
189 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
190 class ExactMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
191 def testVisitdir(self): |
41676
0531dff73d0b
match: delete unused root and cwd arguments from {always,never,exact}() (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41675
diff
changeset
|
192 m = matchmod.exact(files=[b'dir/subdir/foo.txt']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
193 assert isinstance(m, matchmod.exactmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
194 self.assertTrue(m.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
195 self.assertTrue(m.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
196 self.assertTrue(m.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
197 self.assertFalse(m.visitdir(b'dir/subdir/foo.txt')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
198 self.assertFalse(m.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
199 self.assertFalse(m.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
200 self.assertFalse(m.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
201 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
202 def testVisitchildrenset(self): |
41676
0531dff73d0b
match: delete unused root and cwd arguments from {always,never,exact}() (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41675
diff
changeset
|
203 m = matchmod.exact(files=[b'dir/subdir/foo.txt']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
204 assert isinstance(m, matchmod.exactmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
205 self.assertEqual(m.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
206 self.assertEqual(m.visitchildrenset(b'dir'), {b'subdir'}) |
39261
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
207 self.assertEqual(m.visitchildrenset(b'dir/subdir'), {b'foo.txt'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
208 self.assertEqual(m.visitchildrenset(b'dir/subdir/x'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
209 self.assertEqual(m.visitchildrenset(b'dir/subdir/foo.txt'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
210 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
211 |
39261
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
212 def testVisitchildrensetFilesAndDirs(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
213 m = matchmod.exact( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
214 files=[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
215 b'rootfile.txt', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
216 b'a/file1.txt', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
217 b'a/b/file2.txt', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
218 # no file in a/b/c |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
219 b'a/b/c/d/file4.txt', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
220 ] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
221 ) |
39261
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
222 assert isinstance(m, matchmod.exactmatcher) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
223 self.assertEqual(m.visitchildrenset(b''), {b'a', b'rootfile.txt'}) |
39261
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
224 self.assertEqual(m.visitchildrenset(b'a'), {b'b', b'file1.txt'}) |
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
225 self.assertEqual(m.visitchildrenset(b'a/b'), {b'c', b'file2.txt'}) |
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
226 self.assertEqual(m.visitchildrenset(b'a/b/c'), {b'd'}) |
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
227 self.assertEqual(m.visitchildrenset(b'a/b/c/d'), {b'file4.txt'}) |
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
228 self.assertEqual(m.visitchildrenset(b'a/b/c/d/e'), set()) |
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
229 self.assertEqual(m.visitchildrenset(b'folder'), set()) |
c9a3f7f5c023
match: make exactmatcher.visitchildrenset return file children as well
Kyle Lippincott <spectral@google.com>
parents:
38963
diff
changeset
|
230 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
231 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
232 class DifferenceMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
233 def testVisitdirM2always(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
234 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
235 m2 = matchmod.alwaysmatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
236 dm = matchmod.differencematcher(m1, m2) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
237 # dm should be equivalent to a nevermatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
238 self.assertFalse(dm.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
239 self.assertFalse(dm.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
240 self.assertFalse(dm.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
241 self.assertFalse(dm.visitdir(b'dir/subdir/z')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
242 self.assertFalse(dm.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
243 self.assertFalse(dm.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
244 self.assertFalse(dm.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
245 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
246 def testVisitchildrensetM2always(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
247 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
248 m2 = matchmod.alwaysmatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
249 dm = matchmod.differencematcher(m1, m2) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
250 # dm should be equivalent to a nevermatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
251 self.assertEqual(dm.visitchildrenset(b''), set()) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
252 self.assertEqual(dm.visitchildrenset(b'dir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
253 self.assertEqual(dm.visitchildrenset(b'dir/subdir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
254 self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
255 self.assertEqual(dm.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
256 self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
257 self.assertEqual(dm.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
258 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
259 def testVisitdirM2never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
260 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
261 m2 = matchmod.nevermatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
262 dm = matchmod.differencematcher(m1, m2) |
41528
b7a0efb3c370
match: teach diffmatcher.visitdir() to return 'all' if possible
Pulkit Goyal <pulkit@yandex-team.ru>
parents:
39261
diff
changeset
|
263 # dm should be equivalent to a alwaysmatcher. |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
264 # |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
265 # We're testing Equal-to-True instead of just 'assertTrue' since |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
266 # assertTrue does NOT verify that it's a bool, just that it's truthy. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
267 # While we may want to eventually make these return 'all', they should |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
268 # not currently do so. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
269 self.assertEqual(dm.visitdir(b''), b'all') |
41530
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
270 self.assertEqual(dm.visitdir(b'dir'), b'all') |
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
271 self.assertEqual(dm.visitdir(b'dir/subdir'), b'all') |
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
272 self.assertEqual(dm.visitdir(b'dir/subdir/z'), b'all') |
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
273 self.assertEqual(dm.visitdir(b'dir/foo'), b'all') |
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
274 self.assertEqual(dm.visitdir(b'dir/subdir/x'), b'all') |
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
275 self.assertEqual(dm.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
276 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
277 def testVisitchildrensetM2never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
278 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
279 m2 = matchmod.nevermatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
280 dm = matchmod.differencematcher(m1, m2) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
281 # dm should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
282 self.assertEqual(dm.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
283 self.assertEqual(dm.visitchildrenset(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
284 self.assertEqual(dm.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
285 self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
286 self.assertEqual(dm.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
287 self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
288 self.assertEqual(dm.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
289 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
290 def testVisitdirM2SubdirPrefix(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
291 m1 = matchmod.alwaysmatcher() |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
292 m2 = matchmod.match(b'/repo', b'', patterns=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
293 dm = matchmod.differencematcher(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
294 self.assertEqual(dm.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
295 self.assertEqual(dm.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
296 self.assertFalse(dm.visitdir(b'dir/subdir')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
297 # OPT: We should probably return False for these; we don't because |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
298 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
299 # an 'all' pattern, just True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
300 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
301 self.assertEqual(dm.visitdir(b'dir/subdir/x'), True) |
41530
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
302 self.assertEqual(dm.visitdir(b'dir/foo'), b'all') |
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
303 self.assertEqual(dm.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
304 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
305 def testVisitchildrensetM2SubdirPrefix(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
306 m1 = matchmod.alwaysmatcher() |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
307 m2 = matchmod.match(b'/repo', b'', patterns=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
308 dm = matchmod.differencematcher(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
309 self.assertEqual(dm.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
310 self.assertEqual(dm.visitchildrenset(b'dir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
311 self.assertEqual(dm.visitchildrenset(b'dir/subdir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
312 self.assertEqual(dm.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
313 self.assertEqual(dm.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
314 # OPT: We should probably return set() for these; we don't because |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
315 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
316 # an 'all' pattern, just 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
317 self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
318 self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
319 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
320 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
321 # better (giving narrower results) than patternmatcher. |
43375
c2c3ee8794dd
tests: fix typo "includfe"
Martin von Zweigbergk <martinvonz@google.com>
parents:
43076
diff
changeset
|
322 def testVisitdirIncludeInclude(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
323 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
324 m2 = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
325 dm = matchmod.differencematcher(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
326 self.assertEqual(dm.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
327 self.assertEqual(dm.visitdir(b'dir'), True) |
41530
4dd07bf84608
tests: fix test-match.py on Python3
Augie Fackler <augie@google.com>
parents:
41528
diff
changeset
|
328 self.assertEqual(dm.visitdir(b'dir/subdir'), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
329 self.assertFalse(dm.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
330 self.assertFalse(dm.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
331 # OPT: We should probably return False for these; we don't because |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
332 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
333 # an 'all' pattern, just True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
334 self.assertEqual(dm.visitdir(b'dir/subdir/z'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
335 self.assertEqual(dm.visitdir(b'dir/subdir/x'), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
336 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
337 def testVisitchildrensetIncludeInclude(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
338 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
339 m2 = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
340 dm = matchmod.differencematcher(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
341 self.assertEqual(dm.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
342 self.assertEqual(dm.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
343 self.assertEqual(dm.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
344 self.assertEqual(dm.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
345 self.assertEqual(dm.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
346 # OPT: We should probably return set() for these; we don't because |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
347 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
348 # an 'all' pattern, just 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
349 self.assertEqual(dm.visitchildrenset(b'dir/subdir/z'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
350 self.assertEqual(dm.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
351 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
352 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
353 class IntersectionMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
354 def testVisitdirM2always(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
355 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
356 m2 = matchmod.alwaysmatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
357 im = matchmod.intersectmatchers(m1, m2) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
358 # im should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
359 self.assertEqual(im.visitdir(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
360 self.assertEqual(im.visitdir(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
361 self.assertEqual(im.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
362 self.assertEqual(im.visitdir(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
363 self.assertEqual(im.visitdir(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
364 self.assertEqual(im.visitdir(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
365 self.assertEqual(im.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
366 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
367 def testVisitchildrensetM2always(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
368 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
369 m2 = matchmod.alwaysmatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
370 im = matchmod.intersectmatchers(m1, m2) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
371 # im should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
372 self.assertEqual(im.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
373 self.assertEqual(im.visitchildrenset(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
374 self.assertEqual(im.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
375 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
376 self.assertEqual(im.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
377 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
378 self.assertEqual(im.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
379 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
380 def testVisitdirM2never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
381 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
382 m2 = matchmod.nevermatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
383 im = matchmod.intersectmatchers(m1, m2) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
384 # im should be equivalent to a nevermatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
385 self.assertFalse(im.visitdir(b'')) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
386 self.assertFalse(im.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
387 self.assertFalse(im.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
388 self.assertFalse(im.visitdir(b'dir/subdir/z')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
389 self.assertFalse(im.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
390 self.assertFalse(im.visitdir(b'dir/subdir/x')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
391 self.assertFalse(im.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
392 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
393 def testVisitchildrensetM2never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
394 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
395 m2 = matchmod.nevermatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
396 im = matchmod.intersectmatchers(m1, m2) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
397 # im should be equivalent to a nevermqtcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
398 self.assertEqual(im.visitchildrenset(b''), set()) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
399 self.assertEqual(im.visitchildrenset(b'dir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
400 self.assertEqual(im.visitchildrenset(b'dir/subdir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
401 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
402 self.assertEqual(im.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
403 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
404 self.assertEqual(im.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
405 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
406 def testVisitdirM2SubdirPrefix(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
407 m1 = matchmod.alwaysmatcher() |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
408 m2 = matchmod.match(b'/repo', b'', patterns=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
409 im = matchmod.intersectmatchers(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
410 self.assertEqual(im.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
411 self.assertEqual(im.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
412 self.assertEqual(im.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
413 self.assertFalse(im.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
414 self.assertFalse(im.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
415 # OPT: We should probably return 'all' for these; we don't because |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
416 # patternmatcher.visitdir() (our m2) doesn't return 'all' for subdirs of |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
417 # an 'all' pattern, just True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
418 self.assertEqual(im.visitdir(b'dir/subdir/z'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
419 self.assertEqual(im.visitdir(b'dir/subdir/x'), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
420 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
421 def testVisitchildrensetM2SubdirPrefix(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
422 m1 = matchmod.alwaysmatcher() |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
423 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
424 im = matchmod.intersectmatchers(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
425 self.assertEqual(im.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
426 self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
427 self.assertEqual(im.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
428 self.assertEqual(im.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
429 self.assertEqual(im.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
430 # OPT: We should probably return 'all' for these |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
431 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
432 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
433 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
434 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
435 # better (giving narrower results) than patternmatcher. |
43375
c2c3ee8794dd
tests: fix typo "includfe"
Martin von Zweigbergk <martinvonz@google.com>
parents:
43076
diff
changeset
|
436 def testVisitdirIncludeInclude(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
437 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
438 m2 = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
439 im = matchmod.intersectmatchers(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
440 self.assertEqual(im.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
441 self.assertEqual(im.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
442 self.assertFalse(im.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
443 self.assertFalse(im.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
444 self.assertFalse(im.visitdir(b'folder')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
445 self.assertFalse(im.visitdir(b'dir/subdir/z')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
446 self.assertFalse(im.visitdir(b'dir/subdir/x')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
447 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
448 def testVisitchildrensetIncludeInclude(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
449 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
450 m2 = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
451 im = matchmod.intersectmatchers(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
452 self.assertEqual(im.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
453 self.assertEqual(im.visitchildrenset(b'dir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
454 self.assertEqual(im.visitchildrenset(b'dir/subdir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
455 self.assertEqual(im.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
456 self.assertEqual(im.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
457 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
458 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
459 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
460 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
461 # better (giving narrower results) than patternmatcher. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
462 def testVisitdirIncludeInclude2(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
463 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
464 m2 = matchmod.match(b'/repo', b'', include=[b'path:folder']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
465 im = matchmod.intersectmatchers(m1, m2) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
466 # FIXME: is True correct here? |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
467 self.assertEqual(im.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
468 self.assertFalse(im.visitdir(b'dir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
469 self.assertFalse(im.visitdir(b'dir/subdir')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
470 self.assertFalse(im.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
471 self.assertFalse(im.visitdir(b'folder')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
472 self.assertFalse(im.visitdir(b'dir/subdir/z')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
473 self.assertFalse(im.visitdir(b'dir/subdir/x')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
474 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
475 def testVisitchildrensetIncludeInclude2(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
476 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
477 m2 = matchmod.match(b'/repo', b'', include=[b'path:folder']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
478 im = matchmod.intersectmatchers(m1, m2) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
479 # FIXME: is set() correct here? |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
480 self.assertEqual(im.visitchildrenset(b''), set()) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
481 self.assertEqual(im.visitchildrenset(b'dir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
482 self.assertEqual(im.visitchildrenset(b'dir/subdir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
483 self.assertEqual(im.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
484 self.assertEqual(im.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
485 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
486 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
487 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
488 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
489 # better (giving narrower results) than patternmatcher. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
490 def testVisitdirIncludeInclude3(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
491 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
492 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
493 im = matchmod.intersectmatchers(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
494 self.assertEqual(im.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
495 self.assertEqual(im.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
496 self.assertEqual(im.visitdir(b'dir/subdir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
497 self.assertFalse(im.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
498 self.assertFalse(im.visitdir(b'folder')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
499 self.assertFalse(im.visitdir(b'dir/subdir/z')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
500 # OPT: this should probably be 'all' not True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
501 self.assertEqual(im.visitdir(b'dir/subdir/x'), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
502 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
503 def testVisitchildrensetIncludeInclude3(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
504 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
505 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
506 im = matchmod.intersectmatchers(m1, m2) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
507 self.assertEqual(im.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
508 self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
509 self.assertEqual(im.visitchildrenset(b'dir/subdir'), {b'x'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
510 self.assertEqual(im.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
511 self.assertEqual(im.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
512 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
513 # OPT: this should probably be 'all' not 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
514 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
515 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
516 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
517 # better (giving narrower results) than patternmatcher. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
518 def testVisitdirIncludeInclude4(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
519 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
520 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/z']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
521 im = matchmod.intersectmatchers(m1, m2) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
522 # OPT: these next three could probably be False as well. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
523 self.assertEqual(im.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
524 self.assertEqual(im.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
525 self.assertEqual(im.visitdir(b'dir/subdir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
526 self.assertFalse(im.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
527 self.assertFalse(im.visitdir(b'folder')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
528 self.assertFalse(im.visitdir(b'dir/subdir/z')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
529 self.assertFalse(im.visitdir(b'dir/subdir/x')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
530 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
531 def testVisitchildrensetIncludeInclude4(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
532 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
533 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/z']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
534 im = matchmod.intersectmatchers(m1, m2) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
535 # OPT: these next two could probably be set() as well. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
536 self.assertEqual(im.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
537 self.assertEqual(im.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
538 self.assertEqual(im.visitchildrenset(b'dir/subdir'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
539 self.assertEqual(im.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
540 self.assertEqual(im.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
541 self.assertEqual(im.visitchildrenset(b'dir/subdir/z'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
542 self.assertEqual(im.visitchildrenset(b'dir/subdir/x'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
543 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
544 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
545 class UnionMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
546 def testVisitdirM2always(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
547 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
548 m2 = matchmod.alwaysmatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
549 um = matchmod.unionmatcher([m1, m2]) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
550 # um should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
551 self.assertEqual(um.visitdir(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
552 self.assertEqual(um.visitdir(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
553 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
554 self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
555 self.assertEqual(um.visitdir(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
556 self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
557 self.assertEqual(um.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
558 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
559 def testVisitchildrensetM2always(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
560 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
561 m2 = matchmod.alwaysmatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
562 um = matchmod.unionmatcher([m1, m2]) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
563 # um should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
564 self.assertEqual(um.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
565 self.assertEqual(um.visitchildrenset(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
566 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
567 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
568 self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
569 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
570 self.assertEqual(um.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
571 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
572 def testVisitdirM1never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
573 m1 = matchmod.nevermatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
574 m2 = matchmod.alwaysmatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
575 um = matchmod.unionmatcher([m1, m2]) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
576 # um should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
577 self.assertEqual(um.visitdir(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
578 self.assertEqual(um.visitdir(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
579 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
580 self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
581 self.assertEqual(um.visitdir(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
582 self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
583 self.assertEqual(um.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
584 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
585 def testVisitchildrensetM1never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
586 m1 = matchmod.nevermatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
587 m2 = matchmod.alwaysmatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
588 um = matchmod.unionmatcher([m1, m2]) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
589 # um should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
590 self.assertEqual(um.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
591 self.assertEqual(um.visitchildrenset(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
592 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
593 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
594 self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
595 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
596 self.assertEqual(um.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
597 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
598 def testVisitdirM2never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
599 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
600 m2 = matchmod.nevermatcher() |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
601 um = matchmod.unionmatcher([m1, m2]) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
602 # um should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
603 self.assertEqual(um.visitdir(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
604 self.assertEqual(um.visitdir(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
605 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
606 self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
607 self.assertEqual(um.visitdir(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
608 self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
609 self.assertEqual(um.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
610 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
611 def testVisitchildrensetM2never(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
612 m1 = matchmod.alwaysmatcher() |
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
613 m2 = matchmod.nevermatcher() |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
614 um = matchmod.unionmatcher([m1, m2]) |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
615 # um should be equivalent to a alwaysmatcher. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
616 self.assertEqual(um.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
617 self.assertEqual(um.visitchildrenset(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
618 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
619 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
620 self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
621 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
622 self.assertEqual(um.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
623 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
624 def testVisitdirM2SubdirPrefix(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
625 m1 = matchmod.alwaysmatcher() |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
626 m2 = matchmod.match(b'/repo', b'', patterns=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
627 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
628 self.assertEqual(um.visitdir(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
629 self.assertEqual(um.visitdir(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
630 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
631 self.assertEqual(um.visitdir(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
632 self.assertEqual(um.visitdir(b'folder'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
633 self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
634 self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
635 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
636 def testVisitchildrensetM2SubdirPrefix(self): |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
637 m1 = matchmod.alwaysmatcher() |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
638 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
639 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
640 self.assertEqual(um.visitchildrenset(b''), b'all') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
641 self.assertEqual(um.visitchildrenset(b'dir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
642 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
643 self.assertEqual(um.visitchildrenset(b'dir/foo'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
644 self.assertEqual(um.visitchildrenset(b'folder'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
645 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
646 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
647 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
648 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
649 # better (giving narrower results) than patternmatcher. |
43375
c2c3ee8794dd
tests: fix typo "includfe"
Martin von Zweigbergk <martinvonz@google.com>
parents:
43076
diff
changeset
|
650 def testVisitdirIncludeInclude(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
651 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
652 m2 = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
653 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
654 self.assertEqual(um.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
655 self.assertEqual(um.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
656 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
657 self.assertFalse(um.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
658 self.assertFalse(um.visitdir(b'folder')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
659 # OPT: These two should probably be 'all' not True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
660 self.assertEqual(um.visitdir(b'dir/subdir/z'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
661 self.assertEqual(um.visitdir(b'dir/subdir/x'), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
662 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
663 def testVisitchildrensetIncludeInclude(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
664 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
665 m2 = matchmod.match(b'/repo', b'', include=[b'rootfilesin:dir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
666 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
667 self.assertEqual(um.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
668 self.assertEqual(um.visitchildrenset(b'dir'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
669 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
670 self.assertEqual(um.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
671 self.assertEqual(um.visitchildrenset(b'folder'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
672 # OPT: These next two could be 'all' instead of 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
673 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
674 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
675 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
676 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
677 # better (giving narrower results) than patternmatcher. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
678 def testVisitdirIncludeInclude2(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
679 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
680 m2 = matchmod.match(b'/repo', b'', include=[b'path:folder']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
681 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
682 self.assertEqual(um.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
683 self.assertEqual(um.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
684 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
685 self.assertFalse(um.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
686 self.assertEqual(um.visitdir(b'folder'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
687 # OPT: These should probably be 'all' not True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
688 self.assertEqual(um.visitdir(b'dir/subdir/z'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
689 self.assertEqual(um.visitdir(b'dir/subdir/x'), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
690 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
691 def testVisitchildrensetIncludeInclude2(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
692 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
693 m2 = matchmod.match(b'/repo', b'', include=[b'path:folder']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
694 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
695 self.assertEqual(um.visitchildrenset(b''), {b'folder', b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
696 self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
697 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
698 self.assertEqual(um.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
699 self.assertEqual(um.visitchildrenset(b'folder'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
700 # OPT: These next two could be 'all' instead of 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
701 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
702 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
703 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
704 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
705 # better (giving narrower results) than patternmatcher. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
706 def testVisitdirIncludeInclude3(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
707 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
708 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
709 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
710 self.assertEqual(um.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
711 self.assertEqual(um.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
712 self.assertEqual(um.visitdir(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
713 self.assertFalse(um.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
714 self.assertFalse(um.visitdir(b'folder')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
715 self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
716 # OPT: this should probably be 'all' not True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
717 self.assertEqual(um.visitdir(b'dir/subdir/z'), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
718 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
719 def testVisitchildrensetIncludeInclude3(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
720 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
721 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
722 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
723 self.assertEqual(um.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
724 self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
725 self.assertEqual(um.visitchildrenset(b'dir/subdir'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
726 self.assertEqual(um.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
727 self.assertEqual(um.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
728 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
729 # OPT: this should probably be 'all' not 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
730 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'this') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
731 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
732 # We're using includematcher instead of patterns because it behaves slightly |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
733 # better (giving narrower results) than patternmatcher. |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
734 def testVisitdirIncludeInclude4(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
735 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
736 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/z']) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
737 um = matchmod.unionmatcher([m1, m2]) |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
738 # OPT: these next three could probably be False as well. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
739 self.assertEqual(um.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
740 self.assertEqual(um.visitdir(b'dir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
741 self.assertEqual(um.visitdir(b'dir/subdir'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
742 self.assertFalse(um.visitdir(b'dir/foo')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
743 self.assertFalse(um.visitdir(b'folder')) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
744 self.assertEqual(um.visitdir(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
745 self.assertEqual(um.visitdir(b'dir/subdir/x'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
746 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
747 def testVisitchildrensetIncludeInclude4(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
748 m1 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/x']) |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
749 m2 = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir/z']) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
750 um = matchmod.unionmatcher([m1, m2]) |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
751 self.assertEqual(um.visitchildrenset(b''), {b'dir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
752 self.assertEqual(um.visitchildrenset(b'dir'), {b'subdir'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
753 self.assertEqual(um.visitchildrenset(b'dir/subdir'), {b'x', b'z'}) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
754 self.assertEqual(um.visitchildrenset(b'dir/foo'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
755 self.assertEqual(um.visitchildrenset(b'folder'), set()) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
756 self.assertEqual(um.visitchildrenset(b'dir/subdir/z'), b'all') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
757 self.assertEqual(um.visitchildrenset(b'dir/subdir/x'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
758 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
759 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
760 class SubdirMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
761 def testVisitdir(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
762 m = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
763 sm = matchmod.subdirmatcher(b'dir', m) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
764 |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
765 self.assertEqual(sm.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
766 self.assertEqual(sm.visitdir(b'subdir'), b'all') |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
767 # OPT: These next two should probably be 'all' not True. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
768 self.assertEqual(sm.visitdir(b'subdir/x'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
769 self.assertEqual(sm.visitdir(b'subdir/z'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
770 self.assertFalse(sm.visitdir(b'foo')) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
771 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
772 def testVisitchildrenset(self): |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
773 m = matchmod.match(b'/repo', b'', include=[b'path:dir/subdir']) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
774 sm = matchmod.subdirmatcher(b'dir', m) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
775 |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
776 self.assertEqual(sm.visitchildrenset(b''), {b'subdir'}) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
777 self.assertEqual(sm.visitchildrenset(b'subdir'), b'all') |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
778 # OPT: These next two should probably be 'all' not 'this'. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
779 self.assertEqual(sm.visitchildrenset(b'subdir/x'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
780 self.assertEqual(sm.visitchildrenset(b'subdir/z'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
781 self.assertEqual(sm.visitchildrenset(b'foo'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
782 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
783 |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
784 class PrefixdirMatcherTests(unittest.TestCase): |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
785 def testVisitdir(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
786 m = matchmod.match( |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
787 util.localpath(b'/root/d'), |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
788 b'e/f', |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
789 [b'../a.txt', b'b.txt'], |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
790 auditor=noop_auditor, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
791 ) |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
792 pm = matchmod.prefixdirmatcher(b'd', m) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
793 |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
794 # `m` elides 'd' because it's part of the root, and the rest of the |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
795 # patterns are relative. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
796 self.assertEqual(bool(m(b'a.txt')), False) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
797 self.assertEqual(bool(m(b'b.txt')), False) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
798 self.assertEqual(bool(m(b'e/a.txt')), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
799 self.assertEqual(bool(m(b'e/b.txt')), False) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
800 self.assertEqual(bool(m(b'e/f/b.txt')), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
801 |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
802 # The prefix matcher re-adds 'd' to the paths, so they need to be |
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
803 # specified when using the prefixdirmatcher. |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
804 self.assertEqual(bool(pm(b'a.txt')), False) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
805 self.assertEqual(bool(pm(b'b.txt')), False) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
806 self.assertEqual(bool(pm(b'd/e/a.txt')), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
807 self.assertEqual(bool(pm(b'd/e/b.txt')), False) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
808 self.assertEqual(bool(pm(b'd/e/f/b.txt')), True) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
809 |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
810 self.assertEqual(m.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
811 self.assertEqual(m.visitdir(b'e'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
812 self.assertEqual(m.visitdir(b'e/f'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
813 self.assertEqual(m.visitdir(b'e/f/g'), False) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
814 |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
815 self.assertEqual(pm.visitdir(b''), True) |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
816 self.assertEqual(pm.visitdir(b'd'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
817 self.assertEqual(pm.visitdir(b'd/e'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
818 self.assertEqual(pm.visitdir(b'd/e/f'), True) |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
819 self.assertEqual(pm.visitdir(b'd/e/f/g'), False) |
38953
987d3a4b989f
match: add tests for visitdir functionality
spectral <spectral@google.com>
parents:
33582
diff
changeset
|
820 |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
821 def testVisitchildrenset(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
822 m = matchmod.match( |
43949
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
823 util.localpath(b'/root/d'), |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
824 b'e/f', |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
825 [b'../a.txt', b'b.txt'], |
8b1a9ba375e5
match: make sure `root` argument is always an absolute path (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
43375
diff
changeset
|
826 auditor=noop_auditor, |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
827 ) |
41675
ddbebce94665
match: delete unused root and cwd arguments to constructors (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41621
diff
changeset
|
828 pm = matchmod.prefixdirmatcher(b'd', m) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
829 |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
830 # OPT: visitchildrenset could possibly return {'e'} and {'f'} for these |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
831 # next two, respectively; patternmatcher does not have this |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
832 # optimization. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
833 self.assertEqual(m.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
834 self.assertEqual(m.visitchildrenset(b'e'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
835 self.assertEqual(m.visitchildrenset(b'e/f'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
836 self.assertEqual(m.visitchildrenset(b'e/f/g'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
837 |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
838 # OPT: visitchildrenset could possibly return {'d'}, {'e'}, and {'f'} |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
839 # for these next three, respectively; patternmatcher does not have this |
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
840 # optimization. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
41676
diff
changeset
|
841 self.assertEqual(pm.visitchildrenset(b''), b'this') |
38963
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
842 self.assertEqual(pm.visitchildrenset(b'd'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
843 self.assertEqual(pm.visitchildrenset(b'd/e'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
844 self.assertEqual(pm.visitchildrenset(b'd/e/f'), b'this') |
467b5c1df72d
tests: make all the string constants in test-match.py be bytes
Augie Fackler <augie@google.com>
parents:
38958
diff
changeset
|
845 self.assertEqual(pm.visitchildrenset(b'd/e/f/g'), set()) |
38955
081cc9a95b65
match: add visitchildrenset complement to visitdir
spectral <spectral@google.com>
parents:
38953
diff
changeset
|
846 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
42346
diff
changeset
|
847 |
33582
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
848 if __name__ == '__main__': |
44bc181b9835
match: override visitdir() in nevermatcher to return False
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
849 silenttestrunner.main(__name__) |