a ze@s^ddlZddlZddlmZedZeeeddGdddejZ e dkrZe dS) N)supportpwdgetpwallzDoes not have getpwall()c@s$eZdZddZddZddZdS)PwdTestcCst}|D]}|t|d||d|j||jt||d|j||jt||d|j||jt ||d|j ||j t ||d|j | t |j tt df||d|j||jt||d|j||jtq dS) Nr)rrZ assertEquallenpw_nameZassertIsInstancestr pw_passwdpw_uidintpw_gidpw_gecosassertIntypepw_dirpw_shell)selfentrieserA/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_pwd.py test_values s" zPwdTest.test_valuescCst}i}i}t|dkr&|d|D],}||jg|||jg|q*|D]N}|dr\|ddkrvq\|t |j||j|t |j||jq\dS)Niz*passwd file is huge; extended test skippedr+) rrr ZskipTest setdefaultrappendrrgetpwnamgetpwuid)rrZ entriesbynameZ entriesbyuidrrrrtest_values_extended$s  zPwdTest.test_values_extendedcCs|ttj|ttjd|ttj|ttjd|ttjdi}i}tD]"\}}}}}}} |||<|||<q\t|} d} | | } | |vrBt| } tt | D]N}| |dkrd| |<q6q| |dkrqqt t | |d| |<q6q| d} z | | } Wnt y4YqBYn0d | } q|ttj| tj}||||ttj||ttjd |ttjd d |ttjd d  dS) NgQ @*rzAZrr)Z assertRaises TypeErrorrr#r"rlistkeysranger chrord IndexErrorjoinKeyErrorsysmaxsizeZ assertNotIn)rZbynamesZbyuidsnpugZgecosdsZallnamesZnameiZfakenamecharsiZfakeuidrrr test_errors8sH         zPwdTest.test_errorsN)__name__ __module__ __qualname__rr$r?rrrrrsr__main__) r5Zunittesttestr import_modulerZ skipUnlesshasattrZTestCaserr@mainrrrrs  g