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

Method test_expanduser_posix

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

Source from the content-addressed store, hash-verified

3219 "no home directory on VxWorks")
3220 @needs_posix
3221 def test_expanduser_posix(self):
3222 P = self.cls
3223 import_helper.import_module('pwd')
3224 import pwd
3225 pwdent = pwd.getpwuid(os.getuid())
3226 username = pwdent.pw_name
3227 userhome = pwdent.pw_dir.rstrip('/') or '/'
3228 # Find arbitrary different user (if exists).
3229 for pwdent in pwd.getpwall():
3230 othername = pwdent.pw_name
3231 otherhome = pwdent.pw_dir.rstrip('/')
3232 if othername != username and otherhome:
3233 break
3234 else:
3235 othername = username
3236 otherhome = userhome
3237
3238 fakename = 'fakeuser'
3239 # This user can theoretically exist on a test runner. Create unique name:
3240 try:
3241 while pwd.getpwnam(fakename):
3242 fakename += '1'
3243 except KeyError:
3244 pass # Non-existent name found
3245
3246 p1 = P('~/Documents')
3247 p2 = P(f'~{username}/Documents')
3248 p3 = P(f'~{othername}/Documents')
3249 p4 = P(f'../~{username}/Documents')
3250 p5 = P(f'/~{username}/Documents')
3251 p6 = P('')
3252 p7 = P(f'~{fakename}/Documents')
3253
3254 with os_helper.EnvironmentVarGuard() as env:
3255 env.unset('HOME')
3256
3257 self.assertEqual(p1.expanduser(), P(userhome) / 'Documents')
3258 self.assertEqual(p2.expanduser(), P(userhome) / 'Documents')
3259 self.assertEqual(p3.expanduser(), P(otherhome) / 'Documents')
3260 self.assertEqual(p4.expanduser(), p4)
3261 self.assertEqual(p5.expanduser(), p5)
3262 self.assertEqual(p6.expanduser(), p6)
3263 self.assertRaises(RuntimeError, p7.expanduser)
3264
3265 env['HOME'] = '/tmp'
3266 self.assertEqual(p1.expanduser(), P('/tmp/Documents'))
3267 self.assertEqual(p2.expanduser(), P(userhome) / 'Documents')
3268 self.assertEqual(p3.expanduser(), P(otherhome) / 'Documents')
3269 self.assertEqual(p4.expanduser(), p4)
3270 self.assertEqual(p5.expanduser(), p5)
3271 self.assertEqual(p6.expanduser(), p6)
3272 self.assertRaises(RuntimeError, p7.expanduser)
3273
3274 @unittest.skipIf(sys.platform != "darwin",
3275 "Bad file descriptor in /dev/fd affects only macOS")

Callers

nothing calls this directly

Calls 7

unsetMethod · 0.80
expanduserMethod · 0.80
PClass · 0.70
import_moduleMethod · 0.45
rstripMethod · 0.45
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected