mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 10:44:36 +08:00
Update stat.py from 3.14.3
This commit is contained in:
1 parent
ecc59cfdcd
commit
da38088413
2 files changed
+16
-6
No files matched your search
Vendored
+8
-3
@@ -166,9 +166,14 @@ def filemode(mode):
|
||||
perm = []
|
||||
for index, table in enumerate(_filemode_table):
|
||||
for bit, char in table:
|
||||
if mode & bit == bit:
|
||||
perm.append(char)
|
||||
break
|
||||
if index == 0:
|
||||
if S_IFMT(mode) == bit:
|
||||
perm.append(char)
|
||||
break
|
||||
else:
|
||||
if mode & bit == bit:
|
||||
perm.append(char)
|
||||
break
|
||||
else:
|
||||
if index == 0:
|
||||
# Unknown filetype
|
||||
|
||||
Vendored
+8
-3
@@ -157,12 +157,17 @@ class TestFilemode:
|
||||
|
||||
os.chmod(TESTFN, 0o700)
|
||||
st_mode, modestr = self.get_mode()
|
||||
self.assertEqual(modestr[:3], '-rw')
|
||||
self.assertStartsWith(modestr, '-rw')
|
||||
self.assertS_IS("REG", st_mode)
|
||||
self.assertEqual(self.statmod.S_IFMT(st_mode),
|
||||
self.statmod.S_IFREG)
|
||||
self.assertEqual(self.statmod.S_IMODE(st_mode), 0o666)
|
||||
|
||||
def test_filemode_does_not_misclassify_random_bits(self):
|
||||
# gh-144050 regression test
|
||||
self.assertEqual(self.statmod.filemode(0o77777)[0], "?")
|
||||
self.assertEqual(self.statmod.filemode(0o177777)[0], "?")
|
||||
|
||||
@os_helper.skip_unless_working_chmod
|
||||
def test_directory(self):
|
||||
os.mkdir(TESTFN)
|
||||
@@ -256,7 +261,7 @@ class TestFilemode:
|
||||
"FILE_ATTRIBUTE_* constants are Win32 specific")
|
||||
def test_file_attribute_constants(self):
|
||||
for key, value in sorted(self.file_attributes.items()):
|
||||
self.assertTrue(hasattr(self.statmod, key), key)
|
||||
self.assertHasAttr(self.statmod, key)
|
||||
modvalue = getattr(self.statmod, key)
|
||||
self.assertEqual(value, modvalue, key)
|
||||
|
||||
@@ -314,7 +319,7 @@ class TestFilemode:
|
||||
self.assertEqual(self.statmod.S_ISGID, 0o002000)
|
||||
self.assertEqual(self.statmod.S_ISVTX, 0o001000)
|
||||
|
||||
self.assertFalse(hasattr(self.statmod, "S_ISTXT"))
|
||||
self.assertNotHasAttr(self.statmod, "S_ISTXT")
|
||||
self.assertEqual(self.statmod.S_IREAD, self.statmod.S_IRUSR)
|
||||
self.assertEqual(self.statmod.S_IWRITE, self.statmod.S_IWUSR)
|
||||
self.assertEqual(self.statmod.S_IEXEC, self.statmod.S_IXUSR)
|
||||
|
||||
Reference in new issue
Block a user