MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_expanduser_posix

Method test_expanduser_posix

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

Source from the content-addressed store, hash-verified

3228 "no home directory on VxWorks")
3229 @needs_posix
3230 def test_expanduser_posix(self):
3231 P = self.cls
3232 import_helper.import_module('pwd')
3233 import pwd
3234 pwdent = pwd.getpwuid(os.getuid())
3235 username = pwdent.pw_name
3236 userhome = pwdent.pw_dir.rstrip('/') or '/'
3237 # Find arbitrary different user (if exists).
3238 for pwdent in pwd.getpwall():
3239 othername = pwdent.pw_name
3240 otherhome = pwdent.pw_dir.rstrip('/')
3241 if othername != username and otherhome:
3242 break
3243 else:
3244 othername = username
3245 otherhome = userhome
3246
3247 fakename = 'fakeuser'
3248 # This user can theoretically exist on a test runner. Create unique name:
3249 try:
3250 while pwd.getpwnam(fakename):
3251 fakename += '1'
3252 except KeyError:
3253 pass # Non-existent name found
3254
3255 p1 = P('~/Documents')
3256 p2 = P(f'~{username}/Documents')
3257 p3 = P(f'~{othername}/Documents')
3258 p4 = P(f'../~{username}/Documents')
3259 p5 = P(f'/~{username}/Documents')
3260 p6 = P('')
3261 p7 = P(f'~{fakename}/Documents')
3262
3263 with os_helper.EnvironmentVarGuard() as env:
3264 env.unset('HOME')
3265
3266 self.assertEqual(p1.expanduser(), P(userhome) / '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 env['HOME'] = '/tmp'
3275 self.assertEqual(p1.expanduser(), P('/tmp/Documents'))
3276 self.assertEqual(p2.expanduser(), P(userhome) / 'Documents')
3277 self.assertEqual(p3.expanduser(), P(otherhome) / 'Documents')
3278 self.assertEqual(p4.expanduser(), p4)
3279 self.assertEqual(p5.expanduser(), p5)
3280 self.assertEqual(p6.expanduser(), p6)
3281 self.assertRaises(RuntimeError, p7.expanduser)
3282
3283 @unittest.skipIf(sys.platform != "darwin",
3284 "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