MCPcopy Index your code
hub / github.com/python/cpython / test_full_match

Method test_full_match

Lib/test/test_pathlib/test_join.py:85–149  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

83 self.assertEqual(pp, P(f'{sep}c'))
84
85 def test_full_match(self):
86 P = self.cls
87 # Simple relative pattern.
88 self.assertTrue(P('b.py').full_match('b.py'))
89 self.assertFalse(P('a/b.py').full_match('b.py'))
90 self.assertFalse(P('/a/b.py').full_match('b.py'))
91 self.assertFalse(P('a.py').full_match('b.py'))
92 self.assertFalse(P('b/py').full_match('b.py'))
93 self.assertFalse(P('/a.py').full_match('b.py'))
94 self.assertFalse(P('b.py/c').full_match('b.py'))
95 # Wildcard relative pattern.
96 self.assertTrue(P('b.py').full_match('*.py'))
97 self.assertFalse(P('a/b.py').full_match('*.py'))
98 self.assertFalse(P('/a/b.py').full_match('*.py'))
99 self.assertFalse(P('b.pyc').full_match('*.py'))
100 self.assertFalse(P('b./py').full_match('*.py'))
101 self.assertFalse(P('b.py/c').full_match('*.py'))
102 # Multi-part relative pattern.
103 self.assertTrue(P('ab/c.py').full_match('a*/*.py'))
104 self.assertFalse(P('/d/ab/c.py').full_match('a*/*.py'))
105 self.assertFalse(P('a.py').full_match('a*/*.py'))
106 self.assertFalse(P('/dab/c.py').full_match('a*/*.py'))
107 self.assertFalse(P('ab/c.py/d').full_match('a*/*.py'))
108 # Absolute pattern.
109 self.assertTrue(P('/b.py').full_match('/*.py'))
110 self.assertFalse(P('b.py').full_match('/*.py'))
111 self.assertFalse(P('a/b.py').full_match('/*.py'))
112 self.assertFalse(P('/a/b.py').full_match('/*.py'))
113 # Multi-part absolute pattern.
114 self.assertTrue(P('/a/b.py').full_match('/a/*.py'))
115 self.assertFalse(P('/ab.py').full_match('/a/*.py'))
116 self.assertFalse(P('/a/b/c.py').full_match('/a/*.py'))
117 # Multi-part glob-style pattern.
118 self.assertTrue(P('a').full_match('**'))
119 self.assertTrue(P('c.py').full_match('**'))
120 self.assertTrue(P('a/b/c.py').full_match('**'))
121 self.assertTrue(P('/a/b/c.py').full_match('**'))
122 self.assertTrue(P('/a/b/c.py').full_match('/**'))
123 self.assertTrue(P('/a/b/c.py').full_match('/a/**'))
124 self.assertTrue(P('/a/b/c.py').full_match('**/*.py'))
125 self.assertTrue(P('/a/b/c.py').full_match('/**/*.py'))
126 self.assertTrue(P('/a/b/c.py').full_match('/a/**/*.py'))
127 self.assertTrue(P('/a/b/c.py').full_match('/a/b/**/*.py'))
128 self.assertTrue(P('/a/b/c.py').full_match('/**/**/**/**/*.py'))
129 self.assertFalse(P('c.py').full_match('**/a.py'))
130 self.assertFalse(P('c.py').full_match('c/**'))
131 self.assertFalse(P('a/b/c.py').full_match('**/a'))
132 self.assertFalse(P('a/b/c.py').full_match('**/a/b'))
133 self.assertFalse(P('a/b/c.py').full_match('**/a/b/c'))
134 self.assertFalse(P('a/b/c.py').full_match('**/a/b/c.'))
135 self.assertFalse(P('a/b/c.py').full_match('**/a/b/c./**'))
136 self.assertFalse(P('a/b/c.py').full_match('**/a/b/c./**'))
137 self.assertFalse(P('a/b/c.py').full_match('/a/b/c.py/**'))
138 self.assertFalse(P('a/b/c.py').full_match('/**/a/b/c.py'))
139 # Matching against empty path
140 self.assertFalse(P('').full_match('*'))
141 self.assertTrue(P('').full_match('**'))
142 self.assertFalse(P('').full_match('**/*'))

Callers

nothing calls this directly

Calls 4

assertTrueMethod · 0.80
assertFalseMethod · 0.80
PClass · 0.70
full_matchMethod · 0.45

Tested by

no test coverage detected