(self)
| 196 | self.assertEqual(p.parent.parent.parent.parent, P('/')) |
| 197 | |
| 198 | def test_parents(self): |
| 199 | # Relative |
| 200 | P = self.cls |
| 201 | p = P('a/b/c') |
| 202 | par = p.parents |
| 203 | self.assertEqual(len(par), 3) |
| 204 | self.assertEqual(par[0], P('a/b')) |
| 205 | self.assertEqual(par[1], P('a')) |
| 206 | self.assertEqual(par[2], P('')) |
| 207 | self.assertEqual(par[-1], P('')) |
| 208 | self.assertEqual(par[-2], P('a')) |
| 209 | self.assertEqual(par[-3], P('a/b')) |
| 210 | self.assertEqual(par[0:1], (P('a/b'),)) |
| 211 | self.assertEqual(par[:2], (P('a/b'), P('a'))) |
| 212 | self.assertEqual(par[:-1], (P('a/b'), P('a'))) |
| 213 | self.assertEqual(par[1:], (P('a'), P(''))) |
| 214 | self.assertEqual(par[::2], (P('a/b'), P(''))) |
| 215 | self.assertEqual(par[::-1], (P(''), P('a'), P('a/b'))) |
| 216 | self.assertEqual(list(par), [P('a/b'), P('a'), P('')]) |
| 217 | with self.assertRaises(IndexError): |
| 218 | par[-4] |
| 219 | with self.assertRaises(IndexError): |
| 220 | par[3] |
| 221 | with self.assertRaises(TypeError): |
| 222 | par[0] = p |
| 223 | # Anchored |
| 224 | p = P('/a/b/c') |
| 225 | par = p.parents |
| 226 | self.assertEqual(len(par), 3) |
| 227 | self.assertEqual(par[0], P('/a/b')) |
| 228 | self.assertEqual(par[1], P('/a')) |
| 229 | self.assertEqual(par[2], P('/')) |
| 230 | self.assertEqual(par[-1], P('/')) |
| 231 | self.assertEqual(par[-2], P('/a')) |
| 232 | self.assertEqual(par[-3], P('/a/b')) |
| 233 | self.assertEqual(par[0:1], (P('/a/b'),)) |
| 234 | self.assertEqual(par[:2], (P('/a/b'), P('/a'))) |
| 235 | self.assertEqual(par[:-1], (P('/a/b'), P('/a'))) |
| 236 | self.assertEqual(par[1:], (P('/a'), P('/'))) |
| 237 | self.assertEqual(par[::2], (P('/a/b'), P('/'))) |
| 238 | self.assertEqual(par[::-1], (P('/'), P('/a'), P('/a/b'))) |
| 239 | self.assertEqual(list(par), [P('/a/b'), P('/a'), P('/')]) |
| 240 | with self.assertRaises(IndexError): |
| 241 | par[-4] |
| 242 | with self.assertRaises(IndexError): |
| 243 | par[3] |
| 244 | |
| 245 | def test_anchor(self): |
| 246 | P = self.cls |
nothing calls this directly
no test coverage detected