a 5êdg¬ã@s^ddlZddlZddlmZe d¡Ze eedƒd¡Gdd„dejƒƒZ e dkrZe  ¡dS) éN)ÚsupportÚpwdÚgetpwallzDoes not have getpwall()c@s$eZdZdd„Zdd„Zdd„ZdS)ÚPwdTestcCst ¡}|D]}| t|ƒd¡| |d|j¡| |jt¡| |d|j¡| |jt¡| |d|j¡| |jt ¡| |d|j ¡| |j t ¡| |d|j ¡|  t |j ƒtt dƒf¡| |d|j¡| |jt¡| |d|j¡| |jt¡q dS) Néréééééé)rrZ assertEqualÚlenÚpw_nameZassertIsInstanceÚstrÚ pw_passwdÚpw_uidÚintÚpw_gidÚpw_gecosÚassertInÚtypeÚpw_dirÚpw_shell)ÚselfÚentriesÚe©rú)/usr/local/lib/python3.9/test/test_pwd.pyÚ test_values s" zPwdTest.test_valuescCs°t ¡}i}i}t|ƒdkr&| d¡|D],}| |jg¡ |¡| |jg¡ |¡q*|D]N}|dr\|ddkrvq\| t  |j¡||j¡| t  |j¡||j¡q\dS)Nièz*passwd file is huge; extended test skippedrú+) rrr ZskipTestÚ setdefaultrÚappendrrÚgetpwnamÚgetpwuid)rrZ entriesbynameZ entriesbyuidrrrrÚtest_values_extended$s  zPwdTest.test_values_extendedcCs²| ttj¡| ttjd¡| ttj¡| ttjd¡| ttjd¡i}i}t ¡D]"\}}}}}}} |||<|||<q\t| ¡ƒ} d} | | } | |vrBt| ƒ} tt | ƒƒD]N}| |dkrÖd| |<q6q¶| |dkræq¶q¶t t | |ƒdƒ| |<q6q¶| d} z | | } Wnt y4YqBYn0d  | ¡} q˜| ttj| ¡tj}| ||¡| ttj|¡| ttjd ¡| ttjd d ¡| ttjd d  ¡dS) Ng…ëQ¸ @é*rÚzÚAÚZrÚéÿÿÿÿré€)Z assertRaisesÚ TypeErrorrr#r"rÚlistÚkeysÚranger ÚchrÚordÚ IndexErrorÚjoinÚKeyErrorÚsysÚmaxsizeZ assertNotIn)rZbynamesZbyuidsÚnÚpÚuÚgZgecosÚdÚsZallnamesZnameiZfakenameÚcharsÚiZfakeuidrrrÚ test_errors8sH         zPwdTest.test_errorsN)Ú__name__Ú __module__Ú __qualname__rr$r?rrrrrsrÚ__main__) r5ZunittestÚtestrÚ import_modulerZ skipUnlessÚhasattrZTestCaserr@ÚmainrrrrÚs  g