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

Method _check_complex_symlinks

Lib/test/test_pathlib/test_pathlib.py:1798–1838  ·  view source on GitHub ↗
(self, link0_target)

Source from the content-addressed store, hash-verified

1796 self._check_complex_symlinks(self.parser.join('dirA', '..'))
1797
1798 def _check_complex_symlinks(self, link0_target):
1799 # Test solving a non-looping chain of symlinks (issue #19887).
1800 parser = self.parser
1801 P = self.cls(self.base)
1802 P.joinpath('link1').symlink_to(parser.join('link0', 'link0'), target_is_directory=True)
1803 P.joinpath('link2').symlink_to(parser.join('link1', 'link1'), target_is_directory=True)
1804 P.joinpath('link3').symlink_to(parser.join('link2', 'link2'), target_is_directory=True)
1805 P.joinpath('link0').symlink_to(link0_target, target_is_directory=True)
1806
1807 # Resolve absolute paths.
1808 p = (P / 'link0').resolve()
1809 self.assertEqual(p, P)
1810 self.assertEqualNormCase(str(p), self.base)
1811 p = (P / 'link1').resolve()
1812 self.assertEqual(p, P)
1813 self.assertEqualNormCase(str(p), self.base)
1814 p = (P / 'link2').resolve()
1815 self.assertEqual(p, P)
1816 self.assertEqualNormCase(str(p), self.base)
1817 p = (P / 'link3').resolve()
1818 self.assertEqual(p, P)
1819 self.assertEqualNormCase(str(p), self.base)
1820
1821 # Resolve relative paths.
1822 old_path = os.getcwd()
1823 os.chdir(self.base)
1824 try:
1825 p = self.cls('link0').resolve()
1826 self.assertEqual(p, P)
1827 self.assertEqualNormCase(str(p), self.base)
1828 p = self.cls('link1').resolve()
1829 self.assertEqual(p, P)
1830 self.assertEqualNormCase(str(p), self.base)
1831 p = self.cls('link2').resolve()
1832 self.assertEqual(p, P)
1833 self.assertEqualNormCase(str(p), self.base)
1834 p = self.cls('link3').resolve()
1835 self.assertEqual(p, P)
1836 self.assertEqualNormCase(str(p), self.base)
1837 finally:
1838 os.chdir(old_path)
1839
1840 def _check_resolve(self, p, expected, strict=True):
1841 q = p.resolve(strict)

Calls 8

assertEqualNormCaseMethod · 0.95
strFunction · 0.85
clsMethod · 0.45
symlink_toMethod · 0.45
joinpathMethod · 0.45
joinMethod · 0.45
resolveMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected