Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9be3413

Browse files
[3.14] Clean up test_posixpath (GH-134315) (GH-134316)
* Ensure that created files and dirs are always removed after test. Now addCleanup() does not conflict with tearDown().* Use os_helper.unlink() and os_helper.rmdir().* Import TESTFN from os_helper.(cherry picked from commite29171b)Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
1 parent90aa13a commit9be3413

File tree

1 file changed

+41
-45
lines changed

1 file changed

+41
-45
lines changed

‎Lib/test/test_posixpath.py

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
fromtestimporttest_genericpath
1010
fromtest.supportimportimport_helper
1111
fromtest.supportimportos_helper
12-
fromtest.support.os_helperimportFakePath
12+
fromtest.support.os_helperimportFakePath,TESTFN
1313
fromunittestimportmock
1414

1515
try:
@@ -21,7 +21,7 @@
2121
# An absolute path to a temporary filename for testing. We can't rely on TESTFN
2222
# being an absolute path, so we need this.
2323

24-
ABSTFN=abspath(os_helper.TESTFN)
24+
ABSTFN=abspath(TESTFN)
2525

2626
defskip_if_ABSTFN_contains_backslash(test):
2727
"""
@@ -33,21 +33,11 @@ def skip_if_ABSTFN_contains_backslash(test):
3333
msg="ABSTFN is not a posix path - tests fail"
3434
return [test,unittest.skip(msg)(test)][found_backslash]
3535

36-
defsafe_rmdir(dirname):
37-
try:
38-
os.rmdir(dirname)
39-
exceptOSError:
40-
pass
41-
4236
classPosixPathTest(unittest.TestCase):
4337

4438
defsetUp(self):
45-
self.tearDown()
46-
47-
deftearDown(self):
4839
forsuffixin ["","1","2"]:
49-
os_helper.unlink(os_helper.TESTFN+suffix)
50-
safe_rmdir(os_helper.TESTFN+suffix)
40+
self.assertFalse(posixpath.lexists(ABSTFN+suffix))
5141

5242
deftest_join(self):
5343
fn=posixpath.join
@@ -194,25 +184,28 @@ def test_dirname(self):
194184
self.assertEqual(posixpath.dirname(b"//foo//bar"),b"//foo")
195185

196186
deftest_islink(self):
197-
self.assertIs(posixpath.islink(os_helper.TESTFN+"1"),False)
198-
self.assertIs(posixpath.lexists(os_helper.TESTFN+"2"),False)
187+
self.assertIs(posixpath.islink(TESTFN+"1"),False)
188+
self.assertIs(posixpath.lexists(TESTFN+"2"),False)
199189

200-
withopen(os_helper.TESTFN+"1","wb")asf:
190+
self.addCleanup(os_helper.unlink,TESTFN+"1")
191+
withopen(TESTFN+"1","wb")asf:
201192
f.write(b"foo")
202-
self.assertIs(posixpath.islink(os_helper.TESTFN+"1"),False)
193+
self.assertIs(posixpath.islink(TESTFN+"1"),False)
203194

204195
ifos_helper.can_symlink():
205-
os.symlink(os_helper.TESTFN+"1",os_helper.TESTFN+"2")
206-
self.assertIs(posixpath.islink(os_helper.TESTFN+"2"),True)
207-
os.remove(os_helper.TESTFN+"1")
208-
self.assertIs(posixpath.islink(os_helper.TESTFN+"2"),True)
209-
self.assertIs(posixpath.exists(os_helper.TESTFN+"2"),False)
210-
self.assertIs(posixpath.lexists(os_helper.TESTFN+"2"),True)
211-
212-
self.assertIs(posixpath.islink(os_helper.TESTFN+"\udfff"),False)
213-
self.assertIs(posixpath.islink(os.fsencode(os_helper.TESTFN)+b"\xff"),False)
214-
self.assertIs(posixpath.islink(os_helper.TESTFN+"\x00"),False)
215-
self.assertIs(posixpath.islink(os.fsencode(os_helper.TESTFN)+b"\x00"),False)
196+
self.addCleanup(os_helper.unlink,TESTFN+"2")
197+
os.symlink(TESTFN+"1",TESTFN+"2")
198+
self.assertIs(posixpath.islink(TESTFN+"2"),True)
199+
os.remove(TESTFN+"1")
200+
self.assertIs(posixpath.islink(TESTFN+"2"),True)
201+
self.assertIs(posixpath.exists(TESTFN+"2"),False)
202+
self.assertIs(posixpath.lexists(TESTFN+"2"),True)
203+
204+
deftest_islink_invalid_paths(self):
205+
self.assertIs(posixpath.islink(TESTFN+"\udfff"),False)
206+
self.assertIs(posixpath.islink(os.fsencode(TESTFN)+b"\xff"),False)
207+
self.assertIs(posixpath.islink(TESTFN+"\x00"),False)
208+
self.assertIs(posixpath.islink(os.fsencode(TESTFN)+b"\x00"),False)
216209

217210
deftest_ismount(self):
218211
self.assertIs(posixpath.ismount("/"),True)
@@ -227,7 +220,7 @@ def test_ismount_non_existent(self):
227220
os.mkdir(ABSTFN)
228221
self.assertIs(posixpath.ismount(ABSTFN),False)
229222
finally:
230-
safe_rmdir(ABSTFN)
223+
os_helper.rmdir(ABSTFN)
231224

232225
self.assertIs(posixpath.ismount('/\udfff'),False)
233226
self.assertIs(posixpath.ismount(b'/\xff'),False)
@@ -241,7 +234,7 @@ def test_ismount_symlinks(self):
241234
os.symlink("/",ABSTFN)
242235
self.assertIs(posixpath.ismount(ABSTFN),False)
243236
finally:
244-
os.unlink(ABSTFN)
237+
os_helper.unlink(ABSTFN)
245238

246239
@unittest.skipIf(posixisNone,"Test requires posix module")
247240
deftest_ismount_different_device(self):
@@ -502,10 +495,10 @@ def test_realpath_relative(self):
502495
@skip_if_ABSTFN_contains_backslash
503496
deftest_realpath_missing_pardir(self):
504497
try:
505-
os.symlink(os_helper.TESTFN+"1",os_helper.TESTFN)
506-
self.assertEqual(realpath("nonexistent/../"+os_helper.TESTFN),ABSTFN+"1")
498+
os.symlink(TESTFN+"1",TESTFN)
499+
self.assertEqual(realpath("nonexistent/../"+TESTFN),ABSTFN+"1")
507500
finally:
508-
os_helper.unlink(os_helper.TESTFN)
501+
os_helper.unlink(TESTFN)
509502

510503
@os_helper.skip_unless_symlink
511504
@skip_if_ABSTFN_contains_backslash
@@ -601,7 +594,7 @@ def test_realpath_repeated_indirect_symlinks(self):
601594
finally:
602595
os_helper.unlink(ABSTFN+'/self')
603596
os_helper.unlink(ABSTFN+'/link')
604-
safe_rmdir(ABSTFN)
597+
os_helper.rmdir(ABSTFN)
605598

606599
@os_helper.skip_unless_symlink
607600
@skip_if_ABSTFN_contains_backslash
@@ -620,7 +613,7 @@ def test_realpath_deep_recursion(self):
620613
finally:
621614
foriinrange(depth+1):
622615
os_helper.unlink(ABSTFN+'/%d'%i)
623-
safe_rmdir(ABSTFN)
616+
os_helper.rmdir(ABSTFN)
624617

625618
@os_helper.skip_unless_symlink
626619
@skip_if_ABSTFN_contains_backslash
@@ -638,8 +631,8 @@ def test_realpath_resolve_parents(self):
638631
self.assertEqual(realpath("a"),ABSTFN+"/y/a")
639632
finally:
640633
os_helper.unlink(ABSTFN+"/k")
641-
safe_rmdir(ABSTFN+"/y")
642-
safe_rmdir(ABSTFN)
634+
os_helper.rmdir(ABSTFN+"/y")
635+
os_helper.rmdir(ABSTFN)
643636

644637
@os_helper.skip_unless_symlink
645638
@skip_if_ABSTFN_contains_backslash
@@ -665,9 +658,9 @@ def test_realpath_resolve_before_normalizing(self):
665658
ABSTFN+"/k")
666659
finally:
667660
os_helper.unlink(ABSTFN+"/link-y")
668-
safe_rmdir(ABSTFN+"/k/y")
669-
safe_rmdir(ABSTFN+"/k")
670-
safe_rmdir(ABSTFN)
661+
os_helper.rmdir(ABSTFN+"/k/y")
662+
os_helper.rmdir(ABSTFN+"/k")
663+
os_helper.rmdir(ABSTFN)
671664

672665
@os_helper.skip_unless_symlink
673666
@skip_if_ABSTFN_contains_backslash
@@ -685,8 +678,8 @@ def test_realpath_resolve_first(self):
685678
self.assertEqual(realpath(base+"link/k"),ABSTFN+"/k")
686679
finally:
687680
os_helper.unlink(ABSTFN+"link")
688-
safe_rmdir(ABSTFN+"/k")
689-
safe_rmdir(ABSTFN)
681+
os_helper.rmdir(ABSTFN+"/k")
682+
os_helper.rmdir(ABSTFN)
690683

691684
@os_helper.skip_unless_symlink
692685
@skip_if_ABSTFN_contains_backslash
@@ -704,7 +697,7 @@ def test_realpath_unreadable_symlink(self):
704697
realpath(ABSTFN,strict=True)
705698
finally:
706699
os.chmod(ABSTFN,0o755,follow_symlinks=False)
707-
os.unlink(ABSTFN)
700+
os_helper.unlink(ABSTFN)
708701

709702
@skip_if_ABSTFN_contains_backslash
710703
deftest_realpath_nonterminal_file(self):
@@ -743,6 +736,7 @@ def test_realpath_nonterminal_symlink_to_file(self):
743736
self.assertRaises(NotADirectoryError,realpath,ABSTFN+"/subdir",strict=True)
744737
finally:
745738
os_helper.unlink(ABSTFN)
739+
os_helper.unlink(ABSTFN+"1")
746740

747741
@os_helper.skip_unless_symlink
748742
@skip_if_ABSTFN_contains_backslash
@@ -764,6 +758,8 @@ def test_realpath_nonterminal_symlink_to_symlinks_to_file(self):
764758
self.assertRaises(NotADirectoryError,realpath,ABSTFN+"/subdir",strict=True)
765759
finally:
766760
os_helper.unlink(ABSTFN)
761+
os_helper.unlink(ABSTFN+"1")
762+
os_helper.unlink(ABSTFN+"2")
767763

768764
deftest_relpath(self):
769765
(real_getcwd,os.getcwd)= (os.getcwd,lambda:r"/home/user/bar")
@@ -889,8 +885,8 @@ class PathLikeTests(unittest.TestCase):
889885
path=posixpath
890886

891887
defsetUp(self):
892-
self.file_name=os_helper.TESTFN
893-
self.file_path=FakePath(os_helper.TESTFN)
888+
self.file_name=TESTFN
889+
self.file_path=FakePath(TESTFN)
894890
self.addCleanup(os_helper.unlink,self.file_name)
895891
withopen(self.file_name,'xb',0)asfile:
896892
file.write(b"test_posixpath.PathLikeTests")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp