a 5êdgÙã@sbddlZddlZddlZddlZddlZddlZddlmZGdd„dejƒZ e dkr^e  ¡dS)éN)Úsupportc@s°eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z d)dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Ze ejdkd¡d d!„ƒZd"d#„Zd$d%„Zd&d'„Zd(S)*Ú NetrcTestCasecCs|t |¡}d}tjdkr |d7}t ¡\}}tj||d}| |¡Wdƒn1sZ0Y|  tj |¡t   |¡S)NÚwÚcygwinÚt)Úmode) ÚtextwrapÚdedentÚsysÚplatformÚtempfileÚmkstempÚosÚfdopenÚwriteÚ addCleanupÚunlinkÚnetrc)ÚselfZ test_datarZtemp_fdZ temp_filenameÚfp©rú+/usr/local/lib/python3.9/test/test_netrc.pyÚmake_nrcs   (zNetrcTestCase.make_nrccCsP| d¡}| |jdd¡| |jdd¡| | ¡¡}| |j|j¡dS)Nz‡ machine host1.domain.com login log1 password pass1 account acct1 default login log2 password pass2 zhost1.domain.com)Zlog1Zacct1Zpass1Údefault)Úlog2NZpass2)rÚ assertEqualÚhostsÚ__repr__)rÚnrcZnrc2rrrÚ test_defaults  ÿzNetrcTestCase.test_defaultcCs*| d¡}| |jddgddgdœ¡dS)Nz‰ macdef macro1 line1 line2 macdef macro2 line3 line4 zline1 zline2 zline3 zline4 )Zmacro1Zmacro2)rrZmacros)rrrrrÚ test_macross ÿzNetrcTestCase.test_macroscCs&| |¡}| |jddd|f¡dS)Nzhost.domain.comÚlogZacct©rrr©rrÚpasswdrrrÚ_test_passwords+s zNetrcTestCase._test_passwordscCs| dd¡dS)NzV machine host.domain.com login log password #pass account acct ú#pass©r%©rrrrÚtest_password_with_leading_hash/sþz-NetrcTestCase.test_password_with_leading_hashcCs| dd¡dS)NzV machine host.domain.com login log password pass# account acct zpass#r'r(rrrÚ test_password_with_trailing_hash4sþz.NetrcTestCase.test_password_with_trailing_hashcCs| dd¡dS)NzV machine host.domain.com login log password pa#ss account acct zpa#ssr'r(rrrÚ test_password_with_internal_hash9sþz.NetrcTestCase.test_password_with_internal_hashÚpasscCs8| |¡}| |jddd|f¡| |jdd¡dS)Núfoo.domain.comÚbarzbar.domain.com)ZfooNr,r"r#rrrÚ _test_comment>s zNetrcTestCase._test_commentcCs| d¡dS)Nz˜ # comment machine foo.domain.com login bar password pass machine bar.domain.com login foo password pass ©r/r(rrrÚ test_comment_before_machine_lineCsz.NetrcTestCase.test_comment_before_machine_linecCs| d¡dS)Nz— #comment machine foo.domain.com login bar password pass machine bar.domain.com login foo password pass r0r(rrrÚ)test_comment_before_machine_line_no_spaceJsz7NetrcTestCase.test_comment_before_machine_line_no_spacecCs| d¡dS)Nz # machine foo.domain.com login bar password pass machine bar.domain.com login foo password pass r0r(rrrÚ*test_comment_before_machine_line_hash_onlyQsz8NetrcTestCase.test_comment_before_machine_line_hash_onlycCs| d¡dS)NzŒ machine foo.domain.com login bar password pass # comment machine bar.domain.com login foo password pass r0r(rrrÚ#test_comment_at_end_of_machine_lineXsz1NetrcTestCase.test_comment_at_end_of_machine_linecCs| d¡dS)Nz‹ machine foo.domain.com login bar password pass #comment machine bar.domain.com login foo password pass r0r(rrrÚ,test_comment_at_end_of_machine_line_no_space^sz:NetrcTestCase.test_comment_at_end_of_machine_line_no_spacecCs| dd¡dS)NzŒ machine foo.domain.com login bar password #pass #comment machine bar.domain.com login foo password pass r&r0r(rrrÚ1test_comment_at_end_of_machine_line_pass_has_hashdsýz?NetrcTestCase.test_comment_at_end_of_machine_line_pass_has_hashÚposixzPOSIX only testcCsÚtj}t |¡| tj|¡tj |d¡}t|dƒ}|  d¡Wdƒn1sV0Yt  ¡^}|  d|¡t  |d¡t   ¡}| |jdd¡t  |d¡| t jt j ¡Wdƒn1sÌ0YdS) Nú.netrcZwtz machine foo.domain.com login bar password pass default login foo password pass ÚHOMEé€r-)r.Nr,i’)rÚTESTFNrÚmkdirrÚrmtreeÚpathÚjoinÚopenrÚEnvironmentVarGuardÚsetÚchmodrrrÚ assertRaisesZNetrcParseError)rÚdÚfnÚfÚenvironrrrrÚ test_securityks  (    ÿ zNetrcTestCase.test_securitycCsdtj}t |¡| tj|¡t ¡*}| d|¡| t t j ¡Wdƒn1sV0YdS)Nr9) rr;rr<rr=rArBrDÚFileNotFoundErrorr)rrErHrrrÚtest_file_not_found_in_homes    z)NetrcTestCase.test_file_not_found_in_homecCs|jttjdddS)NZunlikely_netrc)Úfile)rDrJrr(rrrÚtest_file_not_found_explicit‰s ÿz*NetrcTestCase.test_file_not_found_explicitcsêtj‰t ˆ¡| tjˆ¡tj ˆd¡}t|dƒ}|  d¡Wdƒn1sV0Yt  |d¡tjj ‰g‰‡‡‡fdd„}t  tjd|¡4t   ¡}| d¡\}}}| |d ¡Wdƒn1sÒ0Y| ˆ¡dS) Nr8rz.machine foo.domain.com login bar password passr:csZˆ |¡t ¡4}| dˆ¡| dˆ¡ˆ|ƒ}|WdƒS1sL0YdS)Nr9Ú USERPROFILE)ÚappendrrArB)ÚsrHÚresult©ZcalledZ fake_homeZorig_expanduserrrÚfake_expanduser™s     z8NetrcTestCase.test_home_not_set..fake_expanduserÚ expanduserr-r.)rr;rr<rr=r>r?r@rrCrTZ swap_attrrZauthenticatorsrZ assertTrue)rZfake_netrc_pathrGrSrZloginZaccountÚpasswordrrRrÚtest_home_not_sets  ( *zNetrcTestCase.test_home_not_setN)r,)Ú__name__Ú __module__Ú __qualname__rrr r%r)r*r+r/r1r2r3r4r5r6ÚunittestZ skipUnlessrÚnamerIrKrMrVrrrrrs&     rÚ__main__) rrrZr r rÚtestrZTestCaserrWÚmainrrrrÚs 0 %