\bg4HdZddlZddlZddlZddlZddlZddlZddlZddlZ ddl m Z ddl m Z ddl mZmZddlmZmZddlmZmZmZmZmZmZmZmZmZmZddlZejdd Zej !d Gd d Z"dS) zTests for distutils.util.N)copy) sysconfigutil)DistutilsByteCompileErrorDistutilsPlatformError) byte_compile change_root check_environ convert_pathget_host_platform get_platformgrok_environment_error rfc822_escape split_quoted strtoboolT)autousec|tdtj|tdtj|tdtj|tdtj|tjdtjj|tjdtjj |tjdtjj |tdttj dS) Nnameplatformversionsepjoinisabs splitdrive _config_vars)setattrosrsysrrrpathrrrrrr) monkeypatchs v/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/setuptools/_distutils/tests/test_util.py environmentr"sFBG,,,Z666Y 444E26***666"'-888rw/ABBB >4 8N3O3OPPPPPsave_envceZdZdZdZdZdZdZej ddZ dZ d Z d Zej d d d ededefddedfdddedededefgdZdZdZdS)TestUtilctjdd5tjdd5tdksJ dddn #1swxYwYtjdd5tdksJ dddn #1swxYwYdddn #1swxYwYtjdd 5ttjksJ ddddS#1swxYwYdS) Nos.namentz sys.versionz... [... (ARM64)] win-arm64z... [... (ARM)] win-arm32zsys.version_info) rfinalr)mockpatchr stdlib_sysconfigr selfs r!test_get_host_platformzTestUtil.test_get_host_platform-s Z 4 ( ( : :M+>?? : :(**k99999 : : : : : : : : : : : : : : :M+<== : :(**k99999 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Z*,A B B J J$&&*:*G*I*IIIIII J J J J J J J J J J J J J J J J J JsjB'A B'A B'A B'.B B'B B'B B''B+.B+&C;;C?C?ctjdd5tjdddi5tdksJ dddn #1swxYwYtjdddi5tdksJ dddn #1swxYwYtjddd i5td ksJ dddn #1swxYwYtjddd i5td ksJ dddn #1swxYwYddddS#1swxYwYdS) Nr(r)z os.environVSCMD_ARG_TGT_ARCHx86win32x64z win-amd64armr+arm64r*)r/r0dictr r2s r!test_get_platformzTestUtil.test_get_platform7s Z 4 ( ( 5 50De/LMM 1 1#~~00000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10De/LMM 5 5#~~44444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 50De/LMM 5 5#~~44444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 50Dg/NOO 5 5#~~44444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s#E A E A E "A #%E B* E *B. .E 1B. 2%E C9- E 9C= =E C= %E &E< E E E E E  E$'E$ctjd}td|ksJtt jd|ksJtdtjksJdS)N)hometomystuffz/home/to/my/stuff.)rrrr pathlibPathcurdir)r3expecteds r!test_convert_pathzTestUtil.test_convert_pathBsu6;;@AA/00H<<<<GL)<==>>(JJJJC  BI------r#cbdt_d}|tj_d}|tj_t dddksJt dddksJd t_d t_d }|tj_d }|tj_d }|tj_t dddksJt dddksJdt_tj t5t ddddddS#1swxYwYdS)Nposixc|ddkS)Nr/rs r!_isabsz)TestUtil.test_change_root.._isabsLs7c> !r#c,d|S)NrMrrOs r!_joinz(TestUtil.test_change_root.._joinQs88D>> !r#z/rootz /old/its/herez/root/old/its/herezits/herez/root/its/herer)\c,|dS)Nzc:\) startswithrOs r!rPz)TestUtil.test_change_root.._isabs]s??6** *r#cd|drd|ddfSd|fS)Nzc:r?)rVreplacerOs r! _splitdrivez.TestUtil.test_change_root.._splitdrivebs9t$$ 4DLLr2233: r#c,d|S)NrTrRrOs r!rSz(TestUtil.test_change_root.._joinis99T?? "r#zc:\rootzc:\old\its\herezc:\root\old\its\herezits\herezc:\root\its\here BugsBunny) rrrrrr rrpytestraisesr)r3rPrSrYs r!test_change_rootzTestUtil.test_change_rootHs " " "  " " " 7O448LLLLL7J//3CCCCC + + +     ) # # #   $8 9 9=W W W W W:{337LLLLL ]1 2 2 1 1  K 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1sD$$D(+D(ctjtjddttjdt ksJdS)NHOMEPLAT)rr cache_clearrenvironpopr r2s r!test_check_environzTestUtil.test_check_environzsX &&((( vt$$$z&!\^^333333r#zos.name != 'posix'ctjtjddddl}|d}tj |d|5ttjddksJ dddn #1swxYwYtjtjddtj |dt5tdtjvsJ ddddS#1swxYwYdS)Nr`r)NNNNN/home/distutilsNgetpwuid) return_valuerg) side_effect) rr rbrrcrdpwd struct_passwdr/r0objectKeyError)r3rkresults r!test_check_environ_getpwuidz$TestUtil.test_check_environ_getpwuids &&((( vt$$$ ""$   Z  sJV  D D ; ; OOO:f%):::::: ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; &&((( vt$$$Z  sJH  E E , , OOO+++++ , , , , , , , , , , , , , , , , , ,s$:'B..B25B2E  EEc4tdgdksJdS)Nz""one"" "two" 'three' \four)onetwothreefour)rr2s r!test_split_quotedzTestUtil.test_split_quoteds><==B B B       r#cfd}d}|D]}t|sJ|D]}t|rJdS)N) yYyesTruettruer{Onon1) nnoffalseoff0OffNoN)r)r3rzrrxrs r!test_strtoboolzTestUtil.test_strtobools]M D  AQ<<  <  $ $A || # ## # $ $r#z z given,wantedz hello world zhello  zworld z helloworldzhelloworld)r?r?zI am a poor lonesome header zI am a zpoor z lonesome zheader ct|}tjddd}t j5}d|d}tj|}tj|| || dtj |}dddn #1swxYwY||fD]v} | d ksJ| d d ksJt| d t|ksJw||ksJdS) a{ We want to ensure a multi-line header parses correctly. For interoperability, the escaped value should also "round-trip" over `email.generator.Generator.flatten` and `email.message_from_*` (see pypa/setuptools#4033). The main issue is that internally `email.policy.EmailPolicy` uses `splitlines` which will split on some control chars. If all the new lines are not prefixed with spaces, the parser will interrupt reading the current header and produce an incomplete value, while incorrectly interpreting the rest of the headers as part of the payload. TFr)utf8 mangle_from_max_line_lengthzheader: z other-header: 42 payload )policyNzpayload z other-header42header)remailr EmailPolicyioStringIOmessage_from_string generator Generatorflattenseekmessage_from_file get_payloadset splitlines) r3givenwantedresrbufferraworigregenmsgs r!test_rfc822_escapezTestUtil.test_rfc822_escapes6E""))*   []] 4fASAAAC,S11D O % %fV % < < D DT J J J KKNNN+F33E  4 4 4 4 4 4 4 4 4 4 4 4 4 4 4%= L LC??$$ 3333~&$....s8}//1122c#..:J:J6K6KKKKKKf}}}}}}sA8C  C C ctj}dt_ tjt5t gdddn #1swxYwY|t_dS#|t_wxYw)NT)rdont_write_bytecoder\r]rr)r3old_dont_write_bytecodes r!test_dont_write_bytecodez!TestUtil.test_dont_write_bytecodes#&"9"& >899 ! !R    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !'>C # # #&=C # = = = =s.A(A A(AA(AA((A6cRtd}t|}|dksJdS)NzUnable to find batch filez error: Unable to find batch file)OSErrorr)r3excrs r!test_grok_environment_errorz$TestUtil.test_grok_environment_errors5122$S))8888888r#N)__name__ __module__ __qualname__r4r=rIr^rer\markskipifrprvrindent parametrizerrrrNr#r!r&r&+soJJJ 5 5 5... .1.1.1d444 [,--,,.-,8   $$$F ["#Pv#P#P#P#P#P#P Q 86888 9 2S6SSSS6SS6SS    ""  "H > > >99999r#r&)#__doc__remail.generator email.policyrrrErrr1 unittest.mockr/r distutilsrdistutils.errorsrrdistutils.utilrr r r r r rrrrr\fixturer"r usefixturesr&rNr#r!rs   $$$$%%%%%%%%NNNNNNNN                         QQQ$$G9G9G9G9G9G9G9%$G9G9G9r#