new_contents: import pwd
  import string
  
  verbose = 0
  if __name__ == '__main__':
      verbose = 1
  
  entries = pwd.getpwall()
  
  for e in entries:
      name = e[0]
      uid = e[2]
      if verbose:
  	print name, uid
      dbuid = pwd.getpwuid(uid)
      if dbuid[0] <> name:
  	print 'Mismatch in pwd.getpwuid()'
      dbname = pwd.getpwnam(name)
      if dbname[2] <> uid:
  	print 'Mismatch in pwd.getpwnam()'
      break
  
  # try to get some errors
  bynames = {}
  byuids = {}
  for n, p, u, g, gecos, d, s in entries:
      bynames[n] = u
      byuids[u] = n
  
  allnames = bynames.keys()
  namei = 0
  fakename = 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 = string.join(map(None, chars), '')
      
  try:
      pwd.getpwnam(fakename)
  except KeyError:
      pass
  else:
      print 'fakename', fakename, 'did not except pwd.getpwnam()'
  
  uids = byuids.keys()
  uids.sort()
  uids.reverse()
  fakeuid = uids[0] + 1
  
  try:
      pwd.getpwuid(fakeuid)
  except KeyError:
      pass
  else:
      print 'fakeuid', fakeuid, 'did not except pwd.getpwuid()'
  
subject: Test of the pwd module