test_pwd.py

来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Python 代码 · 共 72 行

PY
72
字号
from test_support import verboseimport pwdprint 'pwd.getpwall()'entries = pwd.getpwall()for e in entries:    name = e[0]    uid = e[2]    if verbose:        print name, uid    print 'pwd.getpwuid()'    dbuid = pwd.getpwuid(uid)    if dbuid[0] != name:        print 'Mismatch in pwd.getpwuid()'    print 'pwd.getpwnam()'    dbname = pwd.getpwnam(name)    if dbname[2] != uid:        print 'Mismatch in pwd.getpwnam()'    else:        print 'name matches uid'    break# try to get some errorsbynames = {}byuids = {}for n, p, u, g, gecos, d, s in entries:    bynames[n] = u    byuids[u] = nallnames = bynames.keys()namei = 0fakename = allnames[namei]while bynames.has_key(fakename):    chars = map(None, fakename)    for i in range(len(chars)):        if chars[i] == 'z':            chars[i] = 'A'            break        elif chars[i] == 'Z':            continue        else:            chars[i] = chr(ord(chars[i]) + 1)            break    else:        namei = namei + 1        try:            fakename = allnames[namei]        except IndexError:            # should never happen... if so, just forget it            break    fakename = ''.join(map(None, chars))try:    pwd.getpwnam(fakename)except KeyError:    print 'caught expected exception'else:    print 'fakename', fakename, 'did not except pwd.getpwnam()'# Choose a non-existent uid.fakeuid = 4127while byuids.has_key(fakeuid):    fakeuid = (fakeuid * 3) % 0x10000try:    pwd.getpwuid(fakeuid)except KeyError:    print 'caught expected exception'else:    print 'fakeuid', fakeuid, 'did not except pwd.getpwuid()'

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?