a 5êdg,ã@sDddlZddlmZe d¡ZGdd„dejƒZedkr@e ¡dS)éN)ÚsupportÚgrpc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) ÚGroupDatabaseTestCasecCs”| t|ƒd¡| |d|j¡| |jt¡| |d|j¡| |jt¡| |d|j¡| |jt¡| |d|j¡| |jt ¡dS)Nérééé) Ú assertEqualÚlenÚgr_nameZassertIsInstanceÚstrÚ gr_passwdÚgr_gidÚintÚgr_memÚlist)ÚselfÚvalue©rú)/usr/local/lib/python3.9/test/test_grp.pyÚ check_value sz!GroupDatabaseTestCase.check_valuecCs t ¡}|D]}| |¡q dS)N)rÚgetgrallr)rÚentriesÚerrrÚ test_valuessz!GroupDatabaseTestCase.test_valuescCs˜t ¡}t|ƒdkr| d¡|D]p}t |j¡}| |¡| |j|j¡|j}|  d¡s"|  d¡rhq"t  |¡}| |¡| |j  ¡|  ¡¡q"dS)Nièz&huge group file, extended test skippedú+ú-) rrr ÚskipTestÚgetgrgidrrr r Ú startswithÚgetgrnamÚlower)rrrÚe2ÚnamerrrÚtest_values_extendeds      z*GroupDatabaseTestCase.test_values_extendedc Cs|| ttj¡| ttj¡| ttjd¡| ttjd¡i}i}t ¡D]*\}}}}|rL|dkrfqL|||<|||<qLt| ¡ƒ}d}||} | |vr:t| ƒ} t t | ƒƒD]N} | | dkrÎd| | <q.q®| | dkrÞq®q®t t | | ƒdƒ| | <q.q®|d}z ||} Wnt y,Yq:Yn0d  | ¡} q| ttj| ¡d } | |vrh| d d } qN| ttj| ¡dS) Né*zabrrÚzÚAÚZrÚiri)Z assertRaisesÚ TypeErrorrrr rÚ ValueErrorrÚkeysÚranger ÚchrÚordÚ IndexErrorÚjoinÚKeyError) rZbynamesZbygidsÚnÚpÚgZmemZallnamesZnameiZfakenameÚcharsÚiZfakegidrrrÚ test_errors1sF          z!GroupDatabaseTestCase.test_errorscCsNt ¡}|s| d¡|dd}| ttjt|ƒ¡| ttjt|ƒ¡dS)Nz no groupsrr)rrrZ assertWarnsÚDeprecationWarningrÚfloatr )rrÚgidrrrÚtest_noninteger_gidas   z)GroupDatabaseTestCase.test_noninteger_gidN)Ú__name__Ú __module__Ú __qualname__rrr$r8r<rrrrrs  0rÚ__main__) ZunittestÚtestrÚ import_modulerZTestCaserr=ÚmainrrrrÚs   c