Ë
    Ç[;jIY  ã                   óà   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 ddl
mZ ddlmZ dd	lmZmZmZ e j$                  j&                  Zd
„ Z ed e	e¬«      ¬«       G d„ de«      «       Zy)é    N)ÚStringIO)ÚTestCase)ÚpatchÚMocké   )ÚOptions)Úparse_command_lineé   )Úbackup_OptionsÚrestore_OptionsÚcheck_global_optionsc           
      ó¬   — | dt         j                  j                  dd«      t         j                  j                  dd«      dddddd	f	v ry
t        | «      S )Nú
source.pyxú	/work/dirÚmy_working_pathúfile.pyxú	file1.pyxú	file2.pyxú	file3.pyxúfoo.pyxúbar.pyxT)ÚosÚpathÚjoinÚunpatched_exists)r   s    újG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/Tests/TestCmdLine.pyÚpatched_existsr      sY   € àØÜ
�‰�‰�[ ,Ó/Ü
�‰�‰Ð&¨Ó5ØØØØØØð
ñ 
ð Ü˜DÓ!Ð!ó    zos.path.exists)Úside_effect)Únewc                   ód  — e Zd Zd„ Zd„ Zg fd„Zg fd„Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1d0„ Z2d1„ Z3d2„ Z4d3„ Z5d4„ Z6d5„ Z7d6„ Z8d7„ Z9d8„ Z:y9):ÚCmdLineParserTestc                 ó"   — t        «       | _        y ©N)r   Ú_options_backup©Úselfs    r   ÚsetUpzCmdLineParserTest.setUp!   s   € Ü-Ó/ˆÕr   c                 ó.   — t        | j                  «       y r$   )r   r%   r&   s    r   ÚtearDownzCmdLineParserTest.tearDown$   s   € Ü˜×,Ñ,Õ-r   c                 óP   — | j                  t        | j                  |«      d«       y )NÚ )ÚassertEqualr   r%   )r'   Ú
white_lists     r   Úcheck_default_global_optionsz.CmdLineParserTest.check_default_global_options'   s!   € Ø×ÑÔ-¨d×.BÑ.BÀJÓOÐQSÕTr   c                 óþ   — t        j                  t         j                  «      }t        «       }|j                  j                  «       D ]3  }||vsŒ| j                  t        |||«      t        ||«      d|z   ¬«       Œ5 y )Nzerror in option )Úmsg)r   ÚCompilationOptionsÚdefault_optionsÚobjectÚ__dict__Úkeysr-   Úgetattr)r'   Úoptionsr.   r3   Úno_valueÚnames         r   Úcheck_default_optionsz'CmdLineParserTest.check_default_options*   sx   € Ü!×4Ñ4´W×5LÑ5LÓMˆÜ“8ˆØ#×,Ñ,×1Ñ1Ö3ˆDØ˜:Ò%Ø× Ñ ¤¨°$¸Ó!AÄ7È?Ð\`ÓCaÐgyð  }Añ  hAÐ õ  Bñ 4r   c                 ó6  — t        g d¢«      \  }}| j                  |«       | j                  |j                  «       | j                  |j                  «       | j                  |j
                  «       | j                  |j                  «       | j                  |j                  dk\  «       | j                  t        j                  «       | j                  t        j                  «       | j                  t        j                  «       | j                  |j                  d«       t        g d¢«      \  }}| j                  |«       | j                  t        |«      dk(  «       | j                  |j                  «       | j                  |j                  d«       y )N)ú-Vz-lz-+z-tú-vr>   r>   z-pz-Dú-az-3é   )z-fz-2r   r
   r   )r	   ÚassertFalseÚ
assertTrueÚshow_versionÚuse_listing_fileÚcplusÚ
timestampsÚverboser   Úembed_pos_in_docstringÚ
docstringsÚannotater-   Úlanguage_levelÚlen©r'   r8   Úsourcess      r   Útest_short_optionsz$CmdLineParserTest.test_short_options1   s0  € Ü-ò /
ó Ñˆ�ð 	×Ñ˜Ô!Ø�‰˜×,Ñ,Ô-Ø�‰˜×0Ñ0Ô1Ø�‰˜Ÿ™Ô&Ø�‰˜×*Ñ*Ô+Ø�‰˜Ÿ™¨1Ñ,Ô-Ø�‰œ×6Ñ6Ô7Ø×Ñœ×+Ñ+Ô,Ø�‰œ×(Ñ(Ô)Ø×Ñ˜×/Ñ/°Ô3ä-ò /
ó Ñˆ�ð 	�‰˜Ô Ø�‰œ˜G›¨Ñ)Ô*Ø×Ñ˜×+Ñ+Ô,Ø×Ñ˜×/Ñ/°Õ3r   c                 ó‚  — t        g d¢«      \  }}| j                  |«       | j                  |j                  «       | j                  |j                  «       | j                  |j
                  «       | j                  t        j                  d«       | j                  |j                  «       | j                  |j                  dk\  «       | j                  t        j                  «       | j                  t        j                  «       | j                  t        j                  «       | j                  t        j                  «       | j                  t        j                  «       t        ddg«      \  }}| j                  |«       | j                  t!        |«      dk(  «       | j                  |j                  «       y )N)z	--versionz--create-listingz--cplusú--embedú--timestampsú	--verboserS   rS   z--embed-positionsz--no-docstringsú
--annotatez	--lenientÚmainr@   z--forcer   r
   )r	   rA   rB   rC   rD   rE   r-   r   ÚembedrF   rG   rH   rI   rJ   Úerror_on_unknown_namesÚerror_on_uninitializedrL   rM   s      r   Útest_long_optionsz#CmdLineParserTest.test_long_optionsH   sE  € Ü-ò /
ó Ñˆ�ð
 	×Ñ˜Ô!Ø�‰˜×,Ñ,Ô-Ø�‰˜×0Ñ0Ô1Ø�‰˜Ÿ™Ô&Ø×ÑœŸ™¨Ô/Ø�‰˜×*Ñ*Ô+Ø�‰˜Ÿ™¨1Ñ,Ô-Ø�‰œ×6Ñ6Ô7Ø×Ñœ×+Ñ+Ô,Ø�‰œ×(Ñ(Ô)Ø×Ñœ×7Ñ7Ô8Ø×Ñœ×7Ñ7Ô8ä-Ø�|ð/
ó Ñˆ�ð 	�‰˜Ô Ø�‰œ˜G›¨Ñ)Ô*Ø×Ñ˜×+Ñ+Õ,r   c                 ó  — t        g d¢«      \  }}| j                  |dg«       | j                  t        j                  d«       | j                  |j                  g d¢«       | j                  |j
                  d«       | j                  |j                  d«       | j                  t        j                  d«       | j                  t        j                  d«       | j                  t        j                  «       | j                  t        j                  d	«       | j                  |j                  «       | j                  |j                  d
«       | j                  |j                  d   d«       | j                  |j                  d«       y )N)ú--embed=huhuz-I/test/include/dir1z --include-dir=/test/include/dir2z--include-dirú/test/include/dir3z--working=/work/dirr   z--output-file=/output/dirz--pre-import=/pre/importz--cleanup=3z--annotate-coverage=cov.xmlz--gdb-outdir=/gdb/outdirz--directive=wraparound=falsez--shared=foo.sharedr   Úhuhu)z/test/include/dir1z/test/include/dir2r\   r   z/output/dirz/pre/importr@   zcov.xmlz/gdb/outdirÚ
wraparoundFz
foo.shared)r	   r-   r   rV   Úinclude_pathÚworking_pathÚoutput_fileÚ
pre_importÚgenerate_cleanup_coderB   rJ   Úannotate_coverage_xmlÚ	gdb_debugÚ
output_dirÚcompiler_directivesÚshared_utility_qualified_namerM   s      r   Útest_options_with_valuesz*CmdLineParserTest.test_options_with_valuesb   s.  € Ü-ò /
ó Ñˆ�ð 	×Ñ˜ < .Ô1Ø×ÑœŸ™¨Ô/Ø×Ñ˜×-Ñ-Ò/qÔrØ×Ñ˜×-Ñ-¨{Ô;Ø×Ñ˜×,Ñ,¨mÔ<Ø×Ñœ×+Ñ+¨]Ô;Ø×Ñœ×6Ñ6¸Ô:Ø�‰œ×(Ñ(Ô)Ø×Ñœ×6Ñ6¸	ÔBØ�‰˜×)Ñ)Ô*Ø×Ñ˜×+Ñ+¨]Ô;Ø×Ñ˜×4Ñ4°\ÑBÀEÔJØ×Ñ˜×>Ñ>ÀÕMr   c                 óŠ   — t        ddg«      \  }}| j                  |dg«       | j                  t        j                  d«       y )NrQ   r   rU   ©r	   r-   r   rV   rM   s      r   Útest_embed_before_positionalz.CmdLineParserTest.test_embed_before_positional   sD   € Ü-ØØð/
ó Ñˆ�ð 	×Ñ˜ < .Ô1Ø×ÑœŸ™¨Õ/r   c                 óŠ   — t        g d¢«      \  }}| j                  |dg«       | j                  t        j                  d«       y )N)rQ   r[   r   r   r]   rk   rM   s      r   Útest_two_embedsz!CmdLineParserTest.test_two_embeds‡   ó>   € Ü-ò /
ó Ñˆ�ð 	×Ñ˜ < .Ô1Ø×ÑœŸ™¨Õ/r   c                 óŠ   — t        g d¢«      \  }}| j                  |dg«       | j                  t        j                  d«       y )N)r[   rQ   r   r   rU   rk   rM   s      r   Útest_two_embeds2z"CmdLineParserTest.test_two_embeds2�   ro   r   c                 ób   — t        ddg«      \  }}| j                  t        j                  «       y )Nr[   r   )r	   rA   r   rJ   rM   s      r   Útest_no_annotatez"CmdLineParserTest.test_no_annotate—   s1   € Ü-Ø˜Lð/
ó Ñˆ�ð 	×Ñœ×)Ñ)Õ*r   c                 ód   — t        ddg«      \  }}| j                  t        j                  d«       y )Nr?   r   Údefault©r	   r-   r   rJ   rM   s      r   Útest_annotate_shortz%CmdLineParserTest.test_annotate_short�   s4   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×)Ñ)¨9Õ5r   c                 ód   — t        ddg«      \  }}| j                  t        j                  d«       y )NrT   r   ru   rv   rM   s      r   Útest_annotate_longz$CmdLineParserTest.test_annotate_long¤   s4   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×)Ñ)¨9Õ5r   c                 ód   — t        ddg«      \  }}| j                  t        j                  d«       y )Nú--annotate-fullcr   Úfullcrv   rM   s      r   Útest_annotate_fullcz%CmdLineParserTest.test_annotate_fullc«   s4   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×)Ñ)¨7Õ3r   c                 ó¢   — t        g d¢«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )N)z-wr   r   r   r`   )r	   r-   r`   r/   r;   rM   s      r   Útest_short_wzCmdLineParserTest.test_short_w²   sN   € Ü-ò /
ó Ñˆ�ð 	×Ñ˜×-Ñ-Ð/@ÔAØ×)Ñ)Ô+Ø×"Ñ" 7¨^Ð,<Õ=r   c                 ó¢   — t        g d¢«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )N)z-oÚ	my_outputr   r�   ra   )r	   r-   ra   r/   r;   rM   s      r   Útest_short_ozCmdLineParserTest.test_short_o»   sL   € Ü-ò /
ó Ñˆ�ð 	×Ñ˜×,Ñ,¨kÔ:Ø×)Ñ)Ô+Ø×"Ñ" 7¨]¨OÕ<r   c                 óª   — t        g d¢«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )N)z-zÚmy_preimportr   r„   rb   )r	   r-   r   rb   r/   r;   rM   s      r   Útest_short_zzCmdLineParserTest.test_short_zÄ   sL   € Ü-ò /
ó Ñˆ�ð 	×Ñœ×+Ñ+¨^Ô<Ø×)Ñ)¨<¨.Ô9Ø×"Ñ" 7Õ+r   c                 óª   — t        ddg«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )Nz--convert-ranger   TÚconvert_range)r	   r-   r   r‡   r/   r;   rM   s      r   Útest_convert_rangez$CmdLineParserTest.test_convert_rangeÍ   sS   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×.Ñ.°Ô5Ø×)Ñ)¨?Ð*;Ô<Ø×"Ñ" 7Õ+r   c                 ó¢   — t        ddg«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )Nz--line-directivesr   TÚemit_linenums)r	   r-   rŠ   r/   r;   rM   s      r   Útest_line_directivesz&CmdLineParserTest.test_line_directivesÖ   sS   € Ü-ØØð/
ó Ñˆ�ð 	×Ñ˜×.Ñ.°Ô5Ø×)Ñ)Ô+Ø×"Ñ" 7¨_Ð,=Õ>r   c                 ó¢   — t        ddg«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )Nz--no-c-in-tracebackr   FÚc_line_in_traceback)r	   r-   r�   r/   r;   rM   s      r   Útest_no_c_in_tracebackz(CmdLineParserTest.test_no_c_in_tracebackß   sT   € Ü-Ø!Øð/
ó Ñˆ�ð 	×Ñ˜×4Ñ4°eÔ<Ø×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 óø   — t        ddg«      \  }}| j                  |j                  d«       | j                  |j                  t        j
                  «       | j                  «        | j                  |ddg«       y )Nú--gdbr   Tre   rf   ©r	   r-   re   rf   r   Úcurdirr/   r;   rM   s      r   Útest_gdbzCmdLineParserTest.test_gdbè   so   € Ü-ØØð/
ó Ñˆ�ð 	×Ñ˜×*Ñ*¨DÔ1Ø×Ñ˜×+Ñ+¬R¯Y©YÔ7Ø×)Ñ)Ô+Ø×"Ñ" 7¨[¸,Ð,GÕHr   c                 ó¢   — t        ddg«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )Nz--3strr   Ú3rK   )r	   r-   rK   r/   r;   rM   s      r   Ú	test_3strzCmdLineParserTest.test_3strò   sT   € Ü-ØØð/
ó Ñˆ�ð 	×Ñ˜×/Ñ/°Ô5Ø×)Ñ)Ô+Ø×"Ñ" 7Ð-=Ð,>Õ?r   c                 ó¢   — t        ddg«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )Nz--capi-reexport-cincludesr   TÚcapi_reexport_cincludes)r	   r-   r˜   r/   r;   rM   s      r   Útest_capi_reexport_cincludesz.CmdLineParserTest.test_capi_reexport_cincludesû   sT   € Ü-Ø'Øð/
ó Ñˆ�ð 	×Ñ˜×8Ñ8¸$Ô?Ø×)Ñ)Ô+Ø×"Ñ" 7Ð-FÐ,GÕHr   c                 óª   — t        ddg«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )Nz--fast-failr   TÚ	fast_fail)r	   r-   r   r›   r/   r;   rM   s      r   Útest_fast_failz CmdLineParserTest.test_fast_fail  sR   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×*Ñ*¨DÔ1Ø×)Ñ)¨;¨-Ô8Ø×"Ñ" 7Õ+r   c                 óª   — t        ddg«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )Nz--cimport-from-pyxr   TÚcimport_from_pyx)r	   r-   r   rž   r/   r;   rM   s      r   Útest_cimport_from_pyxz'CmdLineParserTest.test_cimport_from_pyx  sT   € Ü-Ø Øð/
ó Ñˆ�ð 	×Ñœ×1Ñ1°4Ô8Ø×)Ñ)Ð+=Ð*>Ô?Ø×"Ñ" 7Õ+r   c                 óª   — t        ddg«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )Nz-Werrorr   TÚwarning_errors©r	   r-   r   r¡   r/   r;   rM   s      r   Útest_WerrorzCmdLineParserTest.test_Werror  sT   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×/Ñ/°Ô6Ø×)Ñ)Ð+;Ð*<Ô=Ø×"Ñ" 7Õ+r   c                 óª   — t        ddg«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )Nz--warning-errorsr   Tr¡   r¢   rM   s      r   Útest_warning_errorsz%CmdLineParserTest.test_warning_errors  sT   € Ü-ØØð/
ó Ñˆ�ð 	×Ñœ×/Ñ/°Ô6Ø×)Ñ)Ð+;Ð*<Ô=Ø×"Ñ" 7Õ+r   c                 ó¾   — t        ddg«      \  }}| j                  |j                  t        j                  «       | j                  «        | j                  |dg«       y )Nz-Wextrar   rg   ©r	   r-   rg   r   Úextra_warningsr/   r;   rM   s      r   Útest_WextrazCmdLineParserTest.test_Wextra(  sZ   € Ü-ØØð/
ó Ñˆ�ð 	×Ñ˜×4Ñ4´g×6LÑ6LÔMØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 ó¾   — t        ddg«      \  }}| j                  |j                  t        j                  «       | j                  «        | j                  |dg«       y )Nú--warning-extrar   rg   r§   rM   s      r   Útest_warning_extraz$CmdLineParserTest.test_warning_extra1  sZ   € Ü-ØØð/
ó Ñˆ�ð 	×Ñ˜×4Ñ4´g×6LÑ6LÔMØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 óª   — t        ddg«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )Nz--old-style-globalsr   TÚold_style_globals)r	   r-   r   r®   r/   r;   rM   s      r   Útest_old_style_globalsz(CmdLineParserTest.test_old_style_globals:  sT   € Ü-Ø!Øð/
ó Ñˆ�ð 	×Ñœ×2Ñ2°DÔ9Ø×)Ñ)Ð+>Ð*?Ô@Ø×"Ñ" 7Õ+r   c                 óæ   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)ú-Xúcdivision=Truer±   úc_string_type=bytesr   Ú	cdivisionTÚc_string_typeÚbytesrg   ©r	   r-   rg   r/   r;   ©r'   r8   Úsources      r   Útest_directive_multiplez)CmdLineParserTest.test_directive_multipleC  sm   € Ü,ò .
ó ‰ˆ�ð
 	×Ñ˜×4Ñ4°[ÑAÀ4ÔHØ×Ñ˜×4Ñ4°_ÑEÀwÔOØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 óæ   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)r±   z"cdivision=True,c_string_type=bytesr   r´   Trµ   r¶   rg   r·   r¸   s      r   Útest_directive_multiple_v2z,CmdLineParserTest.test_directive_multiple_v2N  sm   € Ü,ò .
ó ‰ˆ�ð 	×Ñ˜×4Ñ4°[ÑAÀ4ÔHØ×Ñ˜×4Ñ4°_ÑEÀwÔOØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 ó¨   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)r±   zcdivision=YeSr   r´   Trg   r·   r¸   s      r   Útest_directive_value_yesz*CmdLineParserTest.test_directive_value_yesX  sR   € Ü,ò .
ó ‰ˆ�ð 	×Ñ˜×4Ñ4°[ÑAÀ4ÔHØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 ó¨   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)r±   zcdivision=nor   r´   Frg   r·   r¸   s      r   Útest_directive_value_noz)CmdLineParserTest.test_directive_value_noa  sR   € Ü,ò .
ó ‰ˆ�ð 	×Ñ˜×4Ñ4°[ÑAÀ5ÔIØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 ó>   — | j                  t        t        g d¢«       y )N)r±   zcdivision=sadfasdr   ©ÚassertRaisesÚ
ValueErrorr	   r&   s    r   Útest_directive_value_invalidz.CmdLineParserTest.test_directive_value_invalidj  ó   € Ø×Ñœ*Ô&8ò ;
õ 	r   c                 ó>   — | j                  t        t        g d¢«       y )N)r±   Úabracadabrar   rÂ   r&   s    r   Útest_directive_key_invalidz,CmdLineParserTest.test_directive_key_invalidp  rÆ   r   c                 ó>   — | j                  t        t        g d¢«       y )N)r±   r´   r   rÂ   r&   s    r   Útest_directive_no_valuez)CmdLineParserTest.test_directive_no_valuev  rÆ   r   c                 ó¨   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)ú-Eú	MYSIZE=10r   ÚMYSIZEé
   Úcompile_time_env©r	   r-   rÑ   r/   r;   r¸   s      r   Útest_compile_time_env_shortz-CmdLineParserTest.test_compile_time_env_short|  óR   € Ü,ò .
ó ‰ˆ�ð 	×Ñ˜×1Ñ1°(Ñ;¸RÔ@Ø×)Ñ)Ô+Ø×"Ñ" 7Ð-?Ð,@ÕAr   c                 ó¨   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)z--compile-time-envrÎ   r   rÏ   rÐ   rÑ   rÒ   r¸   s      r   Útest_compile_time_env_longz,CmdLineParserTest.test_compile_time_env_long…  rÔ   r   c                 óæ   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)rÍ   rÎ   rÍ   z
ARRSIZE=11r   rÏ   rÐ   ÚARRSIZEé   rÑ   rÒ   r¸   s      r   Útest_compile_time_env_multiplez0CmdLineParserTest.test_compile_time_env_multipleŽ  óm   € Ü,ò .
ó ‰ˆ�ð 	×Ñ˜×1Ñ1°(Ñ;¸RÔ@Ø×Ñ˜×1Ñ1°)Ñ<¸bÔAØ×)Ñ)Ô+Ø×"Ñ" 7Ð-?Ð,@ÕAr   c                 óæ   — t        g d¢«      \  }}| j                  |j                  d   d«       | j                  |j                  d   d«       | j                  «        | j	                  |dg«       y )N)rÍ   zMYSIZE=10,ARRSIZE=11r   rÏ   rÐ   rØ   rÙ   rÑ   rÒ   r¸   s      r   Ú!test_compile_time_env_multiple_v2z3CmdLineParserTest.test_compile_time_env_multiple_v2˜  rÛ   r   c                 óJ   — t        ddg«      \  }}| j                  |dg«       y )Nr=   r   ©r	   r-   rM   s      r   Útest_option_firstz#CmdLineParserTest.test_option_first¢  s(   € Ü-¨t°ZÐ.@ÓAÑˆ�Ø×Ñ˜ : ,Õ/r   c                 óJ   — t        g d¢«      \  }}| j                  |dg«       y )N)r=   r   r?   r   rß   rM   s      r   Útest_file_inbetweenz%CmdLineParserTest.test_file_inbetween¦  s$   € Ü-Ò.FÓGÑˆ�Ø×Ñ˜ : ,Õ/r   c                 óJ   — t        ddg«      \  }}| j                  |dg«       y )Nr   r=   rß   rM   s      r   Útest_option_trailingz&CmdLineParserTest.test_option_trailingª  s(   € Ü-¨z¸4Ð.@ÓAÑˆ�Ø×Ñ˜ : ,Õ/r   c                 óL   — t        g d¢«      \  }}| j                  |g d¢«       y )N)r   r=   r   r?   r   )r   r   r   rß   rM   s      r   Útest_multiple_filesz%CmdLineParserTest.test_multiple_files®  s)   € Ü-ò /
ó Ñˆ�ð
 	×Ñ˜Ò"IÕJr   c                 ó”   — t        g d¢«      \  }}ddlm} dD ]-  }| j                  t	        ||«      |dv «       t        ||d«       Œ/ y )N)z--debug-disposal-codez--debug-coercionr   r   )Ú
DebugFlags)Údebug_disposal_codeÚdebug_temp_allocÚdebug_coercion)ré   rë   )r	   ÚCython.Compilerrè   r-   r7   Úsetattr)r'   r8   rN   rè   r:   s        r   Útest_debug_flagsz"CmdLineParserTest.test_debug_flags¶  sO   € Ü-ò /
ó Ñˆ�õ 	/ÛQˆDØ×ÑœW Z°Ó6¸Ð@iÐ8iÔjÜ�J  aÕ(ñ Rr   c                 óø   — t        g d¢«      \  }}| j                  |j                  d«       | j                  |j                  t        j
                  «       | j                  «        | j                  |ddg«       y )N)ú--gdb-outdir=my_dirr�   r   Tre   rf   r‘   rM   s      r   Útest_gdb_overwrites_gdb_outdirz0CmdLineParserTest.test_gdb_overwrites_gdb_outdirÀ  si   € Ü-ò /
ó Ñˆ�ð 	×Ñ˜×*Ñ*¨DÔ1Ø×Ñ˜×+Ñ+¬R¯Y©YÔ7Ø×)Ñ)Ô+Ø×"Ñ" 7¨[¸,Ð,GÕHr   c                 óÜ   — t        g d¢«      \  }}| j                  |j                  d«       | j                  |j                  d«       | j	                  «        | j                  |ddg«       y )N)r�   rð   r   TÚmy_dirre   rf   )r	   r-   re   rf   r/   r;   rM   s      r   Útest_gdb_firstz CmdLineParserTest.test_gdb_firstÊ  se   € Ü-ò /
ó Ñˆ�ð 	×Ñ˜×*Ñ*¨DÔ1Ø×Ñ˜×+Ñ+¨XÔ6Ø×)Ñ)Ô+Ø×"Ñ" 7¨[¸,Ð,GÕHr   c                 óì   — t        g d¢«      \  }}| j                  t        j                  d«       | j                  t        j                  d«       | j                  ddg«       | j                  |«       y )N)r{   ú--annotate-coverage=my.xmlr   Túmy.xmlrJ   rd   ©r	   r-   r   rJ   rd   r/   r;   rM   s      r   Ú#test_coverage_overwrites_annotationz5CmdLineParserTest.test_coverage_overwrites_annotationÔ  sf   € Ü-ò /
ó Ñˆ�ð 	×Ñœ×)Ñ)¨4Ô0Ø×Ñœ×6Ñ6¸ÔAØ×)Ñ)¨:Ð7NÐ*OÔPØ×"Ñ" 7Õ+r   c                 óì   — t        g d¢«      \  }}| j                  t        j                  d«       | j                  t        j                  d«       | j                  ddg«       | j                  |«       y )N)rö   r{   r   r|   r÷   rJ   rd   rø   rM   s      r   Útest_coverage_firstz%CmdLineParserTest.test_coverage_firstÞ  sf   € Ü-ò /
ó Ñˆ�ð 	×Ñœ×)Ñ)¨7Ô3Ø×Ñœ×6Ñ6¸ÔAØ×)Ñ)¨:Ð7NÐ*OÔPØ×"Ñ" 7Õ+r   c                 óª   — t        g d¢«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )N)rT   r{   r   r|   rJ   ©r	   r-   r   rJ   r/   r;   rM   s      r   Ú test_annotate_first_fullc_secondz2CmdLineParserTest.test_annotate_first_fullc_secondè  sL   € Ü-ò /
ó Ñˆ�ð 	×Ñœ×)Ñ)¨7Ô3Ø×)Ñ)¨:¨,Ô7Ø×"Ñ" 7Õ+r   c                 óª   — t        g d¢«      \  }}| j                  t        j                  d«       | j	                  dg«       | j                  |«       y )N)r{   rT   r   ru   rJ   rý   rM   s      r   Útest_annotate_fullc_firstz+CmdLineParserTest.test_annotate_fullc_firstñ  sL   € Ü-ò /
ó Ñˆ�ð 	×Ñœ×)Ñ)¨9Ô5Ø×)Ñ)¨:¨,Ô7Ø×"Ñ" 7Õ+r   c                 óè   — t        g d¢«      \  }}| j                  t        |j                  «      t        t        j
                  «      dz   «       | j                  «        | j                  |dg«       y )N)r±   r²   r«   r±   r³   r   r
   rg   )r	   rB   rL   rg   r   r¨   r/   r;   rM   s      r   Ú!test_warning_extra_dont_overwritez3CmdLineParserTest.test_warning_extra_dont_overwriteú  sb   € Ü-ò /
ó Ñˆ�ð 	�‰œ˜G×7Ñ7Ó8¼#¼g×>TÑ>TÓ:UÐXYÑ:YÔZØ×)Ñ)Ô+Ø×"Ñ" 7Ð-BÐ,CÕDr   c                 ó:  — t        dg«      \  }}| j                  |j                  d «       | j                  «        | j	                  |«       t        g d¢«      \  }}| j                  |j                  d«       | j                  «        | j	                  |dg«       y )Nr   )ú--module-nameúfoo.barr   r  Úmodule_name)r	   r-   r  r/   r;   rM   s      r   Útest_module_namez"CmdLineParserTest.test_module_name  s•   € Ü-Øð/
ó Ñˆ�ð 	×Ñ˜×,Ñ,¨dÔ3Ø×)Ñ)Ô+Ø×"Ñ" 7Ô+Ü-ò /
ó Ñˆ�ð 	×Ñ˜×,Ñ,¨iÔ8Ø×)Ñ)Ô+Ø×"Ñ" 7¨]¨OÕ<r   c                 ó~   — t        dg«      \  }}| j                  |g «       | j                  |j                  d«       y )Nz--generate-shared=foo/shared.czfoo/shared.c)r	   r-   Úshared_c_file_pathrM   s      r   Útest_generate_sharedz&CmdLineParserTest.test_generate_shared  sA   € Ü-Ø,ð/
ó Ñˆ�ð 	×Ñ˜ "Ô%Ø×Ñ˜×3Ñ3°^ÕDr   c                 ó6  ‡ — dˆ fd„	} |dgd«        |dgd«        |dgd«        |dgd	«        |d
gd«        |dgd«        |dgd«        |ddgd«        |ddgd«        |ddgd«        |g d¢d«        |g d¢d«        |ddgd«        |dgd«       y ) Nc                 ó  •— t         j                  }t        «       x}t         _        	 ‰j                  t        t
        t        | «      «       |t         _        |j                  «       }dj                  |j                  «       «      }‰j                  |j                  d«      d|z  «       ‰j                  d|v d|z  «       |r-‰j                  t        j                  ||«      |›d|›d�«       y y # |t         _        w xY w)NzMessage "{}"zusage: z %s does not start with "usage :"z	: error: z%s does not contain ": error :"z does not match search "Ú")ÚsysÚstderrr   rÃ   Ú
SystemExitr	   ÚlistÚgetvalueÚformatÚstriprB   Ú
startswithÚreÚsearch)ÚargsÚregexÚ
old_stderrr  r1   Úerr_msgr'   s         €r   Úerrorz,CmdLineParserTest.test_errors.<locals>.error  sÑ   ø€ ÜŸ™ˆJÜ"*£*Ð,ˆF”S”Zð(Ø×!Ñ!¤*Ô.@Ä$ÀtÃ*ÔMà'””
Ø—/‘/Ó#ˆCØ$×+Ñ+¨C¯I©I«KÓ8ˆGØ�O‰O˜CŸN™N¨9Ó5Ø>ÀÑHôJà�O‰O˜K¨3Ð.Ø=ÀÑGôIáØ—‘¤§	¡	¨%°Ó 5â!(ª%ð!1õ2ð øð (”•
ús   ¨$C1 Ã1C>z-1zunknown option -1z-Iz0argument -I/--include-dir: expected one argumentz--version=-az5argument -V/--version: ignored explicit argument '-a'z--version=--annotate=truezBargument -V/--version: ignored explicit argument '--annotate=true'z	--workingz,argument -w/--working: expected one argumentz--verbose=1z4argument -v/--verbose: ignored explicit argument '1'z	--cleanupz)argument --cleanup: expected one argumentz --debug-disposal-code-wrong-namer   z/unknown option --debug-disposal-code-wrong-namer  r   zNeed at least one source filer  )r  r  r   r   z5Only one source file allowed when using --module-name)r  r  rR   r   z*Cannot use --module-name with --timestampsz--generate-shared=shared.cz4Source file not allowed when using --generate-sharedz--generate-sharedz1argument --generate-shared: expected one argumentr$   © )r'   r  s   ` r   Útest_errorszCmdLineParserTest.test_errors  sø   ø€ õ	2ñ$ 	ˆtˆfØ!ô	#áˆtˆfØ@ô	Báˆ~ÐØEô	GáÐ*Ð+ð"ô	#ñ 	ˆ{ˆmØ<ô	>áˆ}ˆoØDô	Fáˆ{ˆmØ9ô	;áÐ1°;Ð?Ø?ô	Aáˆ 	Ð*Ø-ô	/áˆ 	Ð*Ø-ô	/áÒ@ØEô	GáÒEØ:ô	<áÐ+¨YÐ7ØDô	FáÐ"Ð#ØAõ	Cr   N);Ú__name__Ú
__module__Ú__qualname__r(   r*   r/   r;   rO   rY   ri   rl   rn   rq   rs   rw   ry   r}   r   r‚   r…   rˆ   r‹   rŽ   r“   r–   r™   rœ   rŸ   r£   r¥   r©   r¬   r¯   rº   r¼   r¾   rÀ   rÅ   rÉ   rË   rÓ   rÖ   rÚ   rÝ   rà   râ   rä   ræ   rî   rñ   rô   rù   rû   rþ   r   r  r  r
  r  r  r   r   r"   r"      s;  „ ò0ò.ð 79ó Uð 9;ó Bò4ò.-ò4Nò:0ò0ò0ò+ò6ò6ò4ò>ò=ò,ò,ò?òEòIò@òIò,ò,ò,ò,òEòEò,ò	EòEòEòEòòòòBòBòBòBò0ò0ò0òKò)òIòIò,ò,ò,ò,ò	Eò=òEó/Cr   r"   )r   r  r  Úior   Úunittestr   Úunittest.mockr   r   r,   r   ÚCmdLiner	   ÚUtilsr   r   r   r   Úexistsr   r   r"   r  r   r   Ú<module>r(     sd   ðÛ 	Û 
Û 	Ý Ý ß %å Ý (ç HÑ Hà—7‘7—>‘>Ð ò"ñ  Ð™T¨nÔ=Ô>ôjC˜ó jCó ?ñjCr   