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

Method test_relative_to_common

Lib/test/test_pathlib/test_pathlib.py:837–910  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

835 self.assertTrue(P('//?/UNC/spam').is_absolute())
836
837 def test_relative_to_common(self):
838 P = self.cls
839 p = P('a/b')
840 self.assertRaises(TypeError, p.relative_to)
841 self.assertRaises(TypeError, p.relative_to, b'a')
842 self.assertEqual(p.relative_to(P('')), P('a/b'))
843 self.assertEqual(p.relative_to(''), P('a/b'))
844 self.assertEqual(p.relative_to(P('a')), P('b'))
845 self.assertEqual(p.relative_to('a'), P('b'))
846 self.assertEqual(p.relative_to('a/'), P('b'))
847 self.assertEqual(p.relative_to(P('a/b')), P(''))
848 self.assertEqual(p.relative_to('a/b'), P(''))
849 self.assertEqual(p.relative_to(P(''), walk_up=True), P('a/b'))
850 self.assertEqual(p.relative_to('', walk_up=True), P('a/b'))
851 self.assertEqual(p.relative_to(P('a'), walk_up=True), P('b'))
852 self.assertEqual(p.relative_to('a', walk_up=True), P('b'))
853 self.assertEqual(p.relative_to('a/', walk_up=True), P('b'))
854 self.assertEqual(p.relative_to(P('a/b'), walk_up=True), P(''))
855 self.assertEqual(p.relative_to('a/b', walk_up=True), P(''))
856 self.assertEqual(p.relative_to(P('a/c'), walk_up=True), P('../b'))
857 self.assertEqual(p.relative_to('a/c', walk_up=True), P('../b'))
858 self.assertEqual(p.relative_to(P('a/b/c'), walk_up=True), P('..'))
859 self.assertEqual(p.relative_to('a/b/c', walk_up=True), P('..'))
860 self.assertEqual(p.relative_to(P('c'), walk_up=True), P('../a/b'))
861 self.assertEqual(p.relative_to('c', walk_up=True), P('../a/b'))
862 # Unrelated paths.
863 self.assertRaises(ValueError, p.relative_to, P('c'))
864 self.assertRaises(ValueError, p.relative_to, P('a/b/c'))
865 self.assertRaises(ValueError, p.relative_to, P('a/c'))
866 self.assertRaises(ValueError, p.relative_to, P('/a'))
867 self.assertRaises(ValueError, p.relative_to, P("../a"))
868 self.assertRaises(ValueError, p.relative_to, P("a/.."))
869 self.assertRaises(ValueError, p.relative_to, P("/a/.."))
870 self.assertRaises(ValueError, p.relative_to, P('/'), walk_up=True)
871 self.assertRaises(ValueError, p.relative_to, P('/a'), walk_up=True)
872 self.assertRaises(ValueError, p.relative_to, P("../a"), walk_up=True)
873 self.assertRaises(ValueError, p.relative_to, P("a/.."), walk_up=True)
874 self.assertRaises(ValueError, p.relative_to, P("/a/.."), walk_up=True)
875 p = P('/a/b')
876 self.assertEqual(p.relative_to(P('/')), P('a/b'))
877 self.assertEqual(p.relative_to('/'), P('a/b'))
878 self.assertEqual(p.relative_to(P('/a')), P('b'))
879 self.assertEqual(p.relative_to('/a'), P('b'))
880 self.assertEqual(p.relative_to('/a/'), P('b'))
881 self.assertEqual(p.relative_to(P('/a/b')), P(''))
882 self.assertEqual(p.relative_to('/a/b'), P(''))
883 self.assertEqual(p.relative_to(P('/'), walk_up=True), P('a/b'))
884 self.assertEqual(p.relative_to('/', walk_up=True), P('a/b'))
885 self.assertEqual(p.relative_to(P('/a'), walk_up=True), P('b'))
886 self.assertEqual(p.relative_to('/a', walk_up=True), P('b'))
887 self.assertEqual(p.relative_to('/a/', walk_up=True), P('b'))
888 self.assertEqual(p.relative_to(P('/a/b'), walk_up=True), P(''))
889 self.assertEqual(p.relative_to('/a/b', walk_up=True), P(''))
890 self.assertEqual(p.relative_to(P('/a/c'), walk_up=True), P('../b'))
891 self.assertEqual(p.relative_to('/a/c', walk_up=True), P('../b'))
892 self.assertEqual(p.relative_to(P('/a/b/c'), walk_up=True), P('..'))
893 self.assertEqual(p.relative_to('/a/b/c', walk_up=True), P('..'))
894 self.assertEqual(p.relative_to(P('/c'), walk_up=True), P('../a/b'))

Callers

nothing calls this directly

Calls 4

PClass · 0.70
assertRaisesMethod · 0.45
assertEqualMethod · 0.45
relative_toMethod · 0.45

Tested by

no test coverage detected