def test_heritage(self): self.assertEqual( list(Path("a", "b", "c", "d").heritage()), [ Path("a"), Path("a", "b"), Path("a", "b", "c"), Path("a", "b", "c", "d"), ], )
def test_from_string_repeated_separator(self): self.assertEqual( Path.from_string( (os.sep * 3 + "a" + os.sep * 2 + "b" + os.sep + "c"), ), Path("", "", "a", "", "b", "c"), )
def test_from_string_multiple_trailing_slashes(self): self.assertEqual( Path.from_string(os.sep + os.sep.join("ab") + os.sep + os.sep), Path("a", "b"), )
def test_from_string(self): self.assertEqual( Path.from_string(os.sep + os.sep.join("abc")), Path("a", "b", "c"), )
def test_relative_to(self): self.assertEqual( Path("a", "b", "c").relative_to(Path("d", "e")), Path("a", "b", "c"), )
def test_parent(self): self.assertEqual(Path("a", "b").parent(), Path("a"))
def test_sibling(self): self.assertEqual(Path("a", "b").sibling("c"), Path("a", "c"))
def test_repr(self): self.assertEqual(repr(Path("a", "b", "c")), "<Path /a/b/c>")
def test_multi_descendant(self): self.assertEqual(Path("a").descendant("b", "c"), Path("a", "b", "c"))
def test_div_nonsense(self): with self.assertRaises(TypeError): Path("a") / object()
def test_root_dirname(self): self.assertEqual(Path().dirname(), os.sep)
def test_dirname(self): self.assertEqual( Path("a", "b", "c").dirname(), os.path.join(os.sep, "a", "b"), )
def test_root_basename(self): self.assertEqual(Path().basename(), "")
def test_basename(self): self.assertEqual(Path("a", "b").basename(), "b")
def test_root(self): self.assertEqual(Path.root(), Path())
def test_div(self): self.assertEqual(Path("a") / "b" / "c", Path("a", "b", "c"))