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

Method test_mode

Lib/test/test_stat.py:118–164  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

116
117 @os_helper.skip_unless_working_chmod
118 def test_mode(self):
119 with open(TESTFN, 'w'):
120 pass
121 if os.name == 'posix':
122 os.chmod(TESTFN, 0o700)
123 st_mode, modestr = self.get_mode()
124 self.assertEqual(modestr, '-rwx------')
125 self.assertS_IS("REG", st_mode)
126 imode = self.statmod.S_IMODE(st_mode)
127 self.assertEqual(imode,
128 self.statmod.S_IRWXU)
129 self.assertEqual(self.statmod.filemode(imode),
130 '?rwx------')
131
132 os.chmod(TESTFN, 0o070)
133 st_mode, modestr = self.get_mode()
134 self.assertEqual(modestr, '----rwx---')
135 self.assertS_IS("REG", st_mode)
136 self.assertEqual(self.statmod.S_IMODE(st_mode),
137 self.statmod.S_IRWXG)
138
139 os.chmod(TESTFN, 0o007)
140 st_mode, modestr = self.get_mode()
141 self.assertEqual(modestr, '-------rwx')
142 self.assertS_IS("REG", st_mode)
143 self.assertEqual(self.statmod.S_IMODE(st_mode),
144 self.statmod.S_IRWXO)
145
146 os.chmod(TESTFN, 0o444)
147 st_mode, modestr = self.get_mode()
148 self.assertS_IS("REG", st_mode)
149 self.assertEqual(modestr, '-r--r--r--')
150 self.assertEqual(self.statmod.S_IMODE(st_mode), 0o444)
151 else:
152 os.chmod(TESTFN, 0o500)
153 st_mode, modestr = self.get_mode()
154 self.assertEqual(modestr[:3], '-r-')
155 self.assertS_IS("REG", st_mode)
156 self.assertEqual(self.statmod.S_IMODE(st_mode), 0o444)
157
158 os.chmod(TESTFN, 0o700)
159 st_mode, modestr = self.get_mode()
160 self.assertStartsWith(modestr, '-rw')
161 self.assertS_IS("REG", st_mode)
162 self.assertEqual(self.statmod.S_IFMT(st_mode),
163 self.statmod.S_IFREG)
164 self.assertEqual(self.statmod.S_IMODE(st_mode), 0o666)
165
166 def test_filemode_does_not_misclassify_random_bits(self):
167 # gh-144050 regression test

Callers

nothing calls this directly

Calls 6

get_modeMethod · 0.95
assertS_ISMethod · 0.95
assertStartsWithMethod · 0.80
openFunction · 0.50
chmodMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected