(self)
| 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('**/*')) |
nothing calls this directly
no test coverage detected