+
    SBi                        ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHt ^R	IHtHt ^R
IHt  ! R R]4      t]P>                  R 4       t  ! R R4      t! ! R R4      t"R# )    )annotationsN)Path)mock)path)errors)egg_infomanifest_makerwrite_entries)Distribution)contextsenvironment)DALSc                      ] tR t^tRtR# )Environment N)__name__
__module____qualname____firstlineno____static_attributes__r       C/usr/lib/python3.14/site-packages/setuptools/tests/test_egg_info.pyr   r      s    r   r   c               #  :  a"   \         P                  ! R R7      ;_uu_ 4       o\        S4      p \        P                  ! S\
        P                  4       Rp\        V3R lV 4       4      V n        \        \        \        P                  V P                  P                  4       4      4       \        P                  ! V P                  R,          R\        RP                   ! R/ V P                  B 4      //4       V x  RRR4       R#   + '       g   i     R# ; i5i)	zsetuptools-test.)prefixhomec              3  f   <"   T F&  q\         P                  P                  SV4      3x  K(  	  R # 5i)N)osr   join).0dirnameenv_dirs   & r   	<genexpr>env.<locals>.<genexpr>"   s%     WRVw277<<#ABRVs   .1z.pydistutils.cfgzR
                [egg_info]
                egg-base = {egg-base}
                N)r   libscriptsdatazegg-baser   )r   tempdirr   r   chmodstatS_IRWXUdictpathslistmapmkdirvaluesr   buildr   format)envsubsr!   s     @r   r3   r3      s     			!3	4	4'"
$,,';WRVWW	S399++-./

IIf"D F ( !YY(% 	
 		 	! 
5	4	4	4s    DCD=
DD		Dc                  &   ] tR t^1t]! R4      tR t]R R l4       tR t	]R 4       t
R tR tR	 tR
 tR tR tRwR ltR]P&                  ^ ,           R2tR]P&                  ^ ,           R2tRt ! R R4      t]P1                  RRRRRRRRRRR ]]]R!7      R" 4       tR# tR$ tR% tR& tR' t]P@                  P1                  RxR(]! R)4      R*R+/R,3R(]! R-4      R*R+/R3R(]! R.4      R*R+/R,3R(]! R)4      R/R0R*R+/R,3]PB                  ! R(]! R14      R*R+/R,R2R37      .4      R4 4       t"]P@                  P1                  RyR(]! R54      R6R7R8R9/R6R8.. 3R(]! R:4      R6R7R8R9/R6R8.. 3R(]! R;4      R6R7R8R9/R6.R8.3R(]! R<4      R6R7R8R9/. R6R8.3R(]! R=4      R6R7R8R9/R8.R6.3R(]! R>4      R6R+/R6.R?.3R(]! R.4      R*R+/R*.. 3R(]! R@4      R/R0R*R+/R*.. 3R(]! R54      R/RAR6R7R8R9/R6R8.. 3]PB                  ! R(RBR6R7RCRDRERFRGRHRIR9R*RJRKRL/. RzORK.RMR37      ]PB                  ! R(]! RN4      R6R7RORP/R6.RO.RQR37      ]PB                  ! R(]! RR4      R6R7/R6.. RSR37      ]PB                  ! R(]! RT4      R*R7RURVRWR*RX//R*RY.RU.RZR37      .4      R[ 4       t#]P@                  P1                  RyR(]! R\4      R6R7R8R9/. R6R8.3R(]! R]4      R6R7R8R9/. R6R8.3R(]! R^4      R6R7R_R`R8R9/. R{O. 3R(]! Ra4      R6R7R_R`R8R9/. R{O. 3R(]! Rb4      R6R7R_R`R8R9/R6R8.R_.3R(]! R^4      R_R+/R_.R6R8.3R(]! Rc4      R/RdR6R7R_R`R8R9/. R{O. 3]PB                  ! R(]! Re4      R6R7RORP/R6.RO.RQR37      ]PB                  ! R(]! Rf4      R6R7RERFRGRH/R6RE.RG.RgR37      .	4      Rh 4       t$Ri t%Rj t&Rk t'Rl t(Rm t)Rn t*Ro t+Rp t,Rq t-Rr t.R|Rt lt/Ru t0Rvt1Rs# )}TestEggInfoz
        from setuptools import setup

        setup(
            name='foo',
            py_modules=['hello'],
            entry_points={'console_scripts': ['hi = hello.run']},
            zip_safe=False,
        )
        c                	`    \         P                  ! R V P                  R\        R4      /4       R# )setup.pyzhello.pyzO
                def run():
                    print('hello')
                N)r   r1   setup_scriptr   )selfs   &r   _create_projectTestEggInfo._create_project?   s-    

))
 	r   c                    V ^8  d   QhRRRR/# )   pkg_info_linesz	list[str]returnztuple[int, int]r   )r2   s   "r   __annotate__TestEggInfo.__annotate__K   s      I / r   c                	    V ^ ,          P                  R4      ^,          p\        \        VP                  R4      R,          4      w  r#W#3# )r    .:Nr>   N)splitr.   int)r?   version_strmajorminors   &   r   _extract_mv_versionTestEggInfo._extract_mv_versionJ   sB    $Q'--c2153 1 1# 6r :;|r   c                   \         P                  P                  VP                  R,          R4      p\	        4       p\        V4      pVP                  4        VP                  V4       \        VRRR7      ;_uu_ 4       pVP                  4       pRRR4       RX9   g   Q hRV9   g   Q hR	V9   g   Q hR
pV P                  Wx4       R#   + '       g   i     L@; i)z
When the egg_info section is empty or not present, running
save_version_info should add the settings to the setup.cfg
in a deterministic order.
r   	setup.cfgrutf-8encodingN
[egg_info]tag_build =tag_date = 0	tag_buildtag_date)r   r   r   r,   r   r   initialize_optionssave_version_infoopenread_validate_content_order	r:   
tmpdir_cwdr3   	setup_cfgdisteifcontentexpected_orders	   &&&      r   +test_egg_info_save_version_info_setup_empty7TestEggInfo.test_egg_info_save_version_info_setup_emptyP   s     GGLL6!2K@	~d^

Y')S733qffhG 4 w&&&'''(((

 	$$W= 43s   >CC	c                    RP                  V4      p\        P                  \        P                  ,          p\        P                  ! W V4      '       g   Q hR# )zA
Assert that the strings in expected appear in content
in order.
z.*N)r   re	MULTILINEDOTALLsearch)rd   expectedpatternflagss   &&  r   r]   #TestEggInfo._validate_content_orderj   s;     ))H%ryy(yy51111r   c                   \         P                  P                  VP                  R,          R4      p\        P                  ! V\        R4      /4       \        4       p\        V4      pVP                  4        VP                  V4       \        VRRR7      ;_uu_ 4       pVP                  4       pRRR4       RX9   g   Q hR	V9   g   Q hR
V9   g   Q hRpV P                  Wx4       R#   + '       g   i     L@; i)z
When running save_version_info on an existing setup.cfg
with the 'default' values present from a previous run,
the file should remain unchanged.
r   rN   zU
            [egg_info]
            tag_build =
            tag_date = 0
            rO   rP   rQ   NrS   rT   rU   rV   )r   r   r   r,   r1   r   r   r   rY   rZ   r[   r\   r]   r^   s	   &&&      r   .test_egg_info_save_version_info_setup_defaults:TestEggInfo.test_egg_info_save_version_info_setup_defaultst   s     GGLL6!2K@	

t
 	 ~d^

Y')S733qffhG 4 w&&&'''(((

 	$$W= 43s   C((C8	c                	    V P                  4        V P                  W4       \        P                  ! R 4      p. ROp\	        V4      V8X  g   Q hR# )foo.egg-infoN)PKG-INFOSOURCES.txtzdependency_links.txtentry_points.txtznot-zip-safeztop_level.txt)r;   _run_egg_info_commandr   listdirsorted)r:   r_   r3   actualrm   s   &&&  r   test_expected_files_produced(TestEggInfo.test_expected_files_produced   sE    "":3N+
 f~)))r   c                	   \        4       p\        V4      p\        P                  ! R \	        R4      R7      p\        P                  ! RRR7      pT;_uu_ 4        T;_uu_ 4        ^ RIpRp\        P                  ! VP                  P                  VR7      ;_uu_ 4        VP                  4        RRR4       RRR4       RRR4       R#   + '       g   i     L"; i  + '       g   i     L-; i  + '       g   i     R# ; i)zos.utimeTEST)side_effectz+setuptools.command.egg_info.egg_info.mkpathN)
return_valz,Cannot update time stamp of directory 'None'match)r   r   r   patchOSErrordistutils.errorspytestraisesr   DistutilsFileErrorrun)	r:   r_   r3   ra   rb   utime_patchmkpath_patch	distutilsmsgs	   &&&      r   test_handling_utime_error%TestEggInfo.test_handling_utime_error   s    ~d^jjIzz9d
 [,,#ACy//BB#NN O	 '[[ ON	 ',[[[s<   C0$;C	C
0C	8C0
CC	C-(C00D	c                	L   \        R 4      p\        R4      p\        P                  ! RVRV/4       \        P                  ! \
        4      ;_uu_ 4       pV P                  W4       RRR4       RXP                  P                  ^ ,          9   g   Q hR#   + '       g   i     L6; i)zp
            [metadata]
            name=foo
            version=0.0.1
            license=file:MIT
            zK
            from setuptools import setup

            setup()
            r8   rN   N
ValueError)	r   r   r1   r   r   AssertionErrorry   valueargs)r:   r_   r3   setup_configr9   excs   &&&   r   test_license_is_a_string$TestEggInfo.test_license_is_a_string   s    
 
 	


 	 ]]>**c&&z7 +
 syy~~a0000 +*s   BB#	c                "   V P                  4        V P                  W4       \        P                  P	                  R4      p\
        P                  ! R4       V P                  W4       \        P                  P	                  R4      pW48w  g   Q hR# )z9Ensure timestamps are updated when the command is re-run.ru   gMbP?N)r;   ry   r   r   getmtimetimesleep)r:   r_   r3   timestamp_atimestamp_bs   &&&  r   test_rebuiltTestEggInfo.test_rebuilt   sl    "":3gg&&~6 	

5"":3gg&&~6)))r   c                	   V P                  4        \        P                  ! R \        R4      RRR//4       V P	                  W4       \
        P                  P                  RR4      p\
        P                  P                  VR4      p\        VRR	7      ;_uu_ 4       pR
VP                  4       P                  R4      9   g   Q h RRR4       R#   + '       g   i     R# ; i)MANIFEST.inz:
                recursive-include docs *.rst
            docsz	usage.rstzRun 'hi'rE   ru   rw   rP   rQ   zdocs/usage.rst
N
r;   r   r1   r   ry   r   r   r[   r\   rF   )r:   r_   r3   egg_info_dirsources_txtrc   s   &&&   r   test_manifest_template_is_read*TestEggInfo.test_manifest_template_is_read   s    

4
 Z	
 		 	"":3ww||C8ggll<?+00A#qvvx~~d';;;; 1000s   'CC	Fc                	    \        R 4      V'       d   RMT,          pV'       d   TMRp\        P                  ! RVRV/4       R# )zi
            from setuptools import setup

            setup(name='foo', zip_safe=False, %s)
             r8   rN   N)r   r   r1   )r:   requiresuse_setup_cfgr9   r   s   &&&  r   _setup_script_with_requires'TestEggInfo._setup_script_with_requires   sE    
 !Rh0 $1xb


 	r   zpython_version<''zpython_version < ""z<=>++c                  &    ] tR tRt]R 4       tRtR# )TestEggInfo.RequiresTestHelperi  c                 	   . p. pV  EFZ  pVP                  4       P                  R ^4      pVP                  ^ 4      P                  R4      p\        V4      ^8  d/   V^,          P	                  4       p\
        P                  ! V4      pM/ pV^ ,          P	                  4       p	V U
u. uF  p
\        V
4      P                  ! R	/ VB NK   	  up
w  rpWR3V	R,           VR33 F}  w  rpVP                  V4       R	pVP                  R4      '       d$   VR,          p\        P                  P                  pVP                  \        P                  ! VVVVVR7      4       K  	  EK]  	  \        P                  P                  R
VVR7      # u up
i )z

r   F_in_setup_cfgTz@xfail
:   NN)marks)idsr   )r   r   expected_requiresinstall_cmd_kwargs)lstriprF   poplenstripastliteral_evalr   r2   append
startswithr   markxfailparamparametrize)	test_listformat_dictidlist	argvaluestesttest_paramsname_kwargsvalr   nameasetup_py_requiressetup_cfg_requiresr   id_r   use_cfgr   s   *,                r   r   *TestEggInfo.RequiresTestHelper.parametrize  s   FI!"kkm11&!<)ooa066t<{#a'%a...0C),)9)9#)>&)+&"1~++-;FL;FaDGNN1[1;LH!7H e4O+-?F/*C7 MM#&E**:66#+B< & 1 1$$$#-."'/ "< ;;**  + 	 	+Ls   &$Fr   N)r   r   r   r   staticmethodr   r   r   r   r   RequiresTestHelperr     s    	*	 
*	r   r   z
        install_requires_deterministic

        install_requires=["wheel>=0.5", "pytest"]

        [options]
        install_requires =
            wheel>=0.5
            pytest

        wheel>=0.5
        pytest
        z
        install_requires_ordered

        install_requires=["pytest>=3.0.2,!=10.9999"]

        [options]
        install_requires =
            pytest>=3.0.2,!=10.9999

        pytest!=10.9999,>=3.0.2
        z
        install_requires_with_marker

        install_requires=["barbazquux;{mismatch_marker}"],

        [options]
        install_requires =
            barbazquux; {mismatch_marker}

        [:{mismatch_marker_alternate}]
        barbazquux
        z
        install_requires_with_extra
        {'cmd': ['egg_info']}

        install_requires=["barbazquux [test]"],

        [options]
        install_requires =
            barbazquux [test]

        barbazquux[test]
        a  
        install_requires_with_extra_and_marker

        install_requires=["barbazquux [test]; {mismatch_marker}"],

        [options]
        install_requires =
            barbazquux [test]; {mismatch_marker}

        [:{mismatch_marker_alternate}]
        barbazquux[test]
        z
        setup_requires_with_markers

        setup_requires=["barbazquux;{mismatch_marker}"],

        [options]
        setup_requires =
            barbazquux; {mismatch_marker}

        z
        extras_require_with_extra
        {'cmd': ['egg_info']}

        extras_require={{"extra": ["barbazquux [test]"]}},

        [options.extras_require]
        extra = barbazquux [test]

        [extra]
        barbazquux[test]
        aF  
        extras_require_with_extra_and_marker_in_req

        extras_require={{"extra": ["barbazquux [test]; {mismatch_marker}"]}},

        [options.extras_require]
        extra =
            barbazquux [test]; {mismatch_marker}

        [extra]

        [extra:{mismatch_marker_alternate}]
        barbazquux[test]
        z
        extras_require_with_marker

        extras_require={{":{mismatch_marker}": ["barbazquux"]}},

        @xfail
        [options.extras_require]
        :{mismatch_marker} = barbazquux

        [:{mismatch_marker}]
        barbazquux
        a(  
        extras_require_with_marker_in_req

        extras_require={{"extra": ["barbazquux; {mismatch_marker}"]}},

        [options.extras_require]
        extra =
            barbazquux; {mismatch_marker}

        [extra]

        [extra:{mismatch_marker_alternate}]
        barbazquux
        z
        extras_require_with_empty_section

        extras_require={{"empty": []}},

        [options.extras_require]
        empty =

        [empty]
        )invalid_markermismatch_markermismatch_marker_alternatec                	f   V P                  W44       V P                  ! W3/ VB  \        P                  P	                  R R4      p\        P                  P	                  VR4      p\        P                  P                  V4      '       d0   \        VRR7      ;_uu_ 4       p	V	P                  4       p
RRR4       MRp
X
P                  4       V8X  g   Q h\        P                  ! \        P                  P	                  VP                  R,          R4      4      . 8X  g   Q hR#   + '       g   i     Lu; i)	rE   ru   zrequires.txtrP   rQ   Nr   r$   barbazquux*)r   ry   r   r   r   existsr[   r\   r   globr,   )r:   r_   r3   r   r   r   r   r   requires_txtfpinstall_requiress   &&&&&&&    r   test_requiresTestEggInfo.test_requires9  s    | 	((A"":I6HIww||C8ww||L.A77>>,''lW55#%779  65  "&&(,====yycii&6FG2MMM 65s   D  D0	c                    RpV P                  V4       \        P                  ! \        4      ;_uu_ 4        V P	                  W4       RRR4       R#   + '       g   i     R# ; i)z
Packages that pass unordered install_requires sequences
should be rejected as they produce non-deterministic
builds. See #458.
z0install_requires={"fake-factory==0.5.2", "pytz"}N)r   r   r   r   ry   )r:   r_   r3   reqs   &&& r   *test_install_requires_unordered_disallowed6TestEggInfo.test_install_requires_unordered_disallowed  sD     A((-]]>**&&z7 +***s   AA#	c                	   R pVP                  V P                  R7      pV P                  V4       \        P                  ! \
        4      ;_uu_ 4        V P                  W4       RRR4       \        P                  ! \        P                  P                  VP                  R,          R4      4      . 8X  g   Q hR#   + '       g   i     L^; i)z/extras_require={{":{marker}": ["barbazquux"]}},markerNr$   r   r2   r   r   r   r   r   ry   r   r   r   r   r,   r:   r_   r3   tmplr   s   &&&  r   'test_extras_require_with_invalid_marker3TestEggInfo.test_extras_require_with_invalid_marker  s    @kk!4!4k5((-]]>**&&z7 +yycii&6FG2MMM +*   B::C
	c                	   R pVP                  V P                  R7      pV P                  V4       \        P                  ! \
        4      ;_uu_ 4        V P                  W4       RRR4       \        P                  ! \        P                  P                  VP                  R,          R4      4      . 8X  g   Q hR#   + '       g   i     L^; i)z5extras_require={{"extra": ["barbazquux; {marker}"]}},r   Nr$   r   r   r   s   &&&  r   .test_extras_require_with_invalid_marker_in_req:TestEggInfo.test_extras_require_with_invalid_marker_in_req  s    Fkk!4!4k5((-]]>**&&z7 +yycii&6FG2MMM +*r   c           	     	   V P                  R 4       \        P                  P                  4       P	                  VP
                  R,          R7      p\        P                  ! R.\        P                  P                  VP
                  R,          \        V4      .4      ^VR7       \        P                  P                  RR4      p\        \        P                  P                  VR4      R	R
7      ;_uu_ 4       pVP                  4       P                  R4      pRRR4       RX9   g   Q hRV9   g   Q hR#   + '       g   i     L$; i)z*extras_require={"foobar": ["barbazquux"]},r   HOMEr   r$   cmdpypathdata_streamr3   rE   ru   rv   rP   rQ   r   NzProvides-Extra: foobarMetadata-Version: 2.4r   r   environcopyupdater,   r   run_setup_pypathsepr   strr   r[   r\   rF   r:   r_   r3   r   r   r   r?   s   &&&    r   test_provides_extraTestEggInfo.test_provides_extra  s    (()UV**//#**6" + 
 	  ::??CIIe$4c*o#FG		
 ww||C8"'',,|Z87KKrWWY__T2N L'>999&.888 LKs   8 D44E	c           	     	^   V P                  R 4       \        P                  P                  4       P	                  VP
                  R,          R7      p\        P                  ! R.\        P                  P                  VP
                  R,          \        V4      .4      ^VR7       \        P                  P                  RR4      p\        \        P                  P                  VR4      R	R
7      ;_uu_ 4       pVP                  4       pRRR4       RX9  g   Q hR#   + '       g   i     L; i)z0install_requires=["spam ; python_version<'3.6'"]r   r   r   r$   r   rE   ru   rv   rP   rQ   NzProvides-Extra:)r   r   r   r   r  r,   r   r  r  r   r  r   r[   r\   )r:   r_   r3   r   r   r   pkg_info_texts   &&&    r   test_doesnt_provides_extra&TestEggInfo.test_doesnt_provides_extra  s    ((B	
 **//#**6" + 
 	  ::??CIIe$4c*o#FG		
 ww||C8"'',,|Z87KKrGGIM L 555 LKs   8DD,	rN   z}
                              [metadata]
                              license_file = LICENSE
                              LICENSEzTest licenseTz
                              [metadata]
                              license_file = INVALID_LICENSE
                              z
                              r   zexclude LICENSEz
                              [metadata]
                              license_file = LICEN[CS]E*
                              glob_pattern)idc           	     	   V P                  4        \        P                  ! V4       \        P                  ! R .\
        P                  P                  VP                  R,          \        V4      .4      R7       \
        P                  P                  RR4      p\        VR4      P                  RR7      pV'       d   RV9   g   Q hR
# RV9  g   Q hR	V9  g   Q hR
# )r   r$   r   r   rE   ru   rw   rP   rQ   r  INVALID_LICENSEN)r;   r   r1   r   r  r   r  r   r,   r  r   	read_text)r:   r_   r3   fileslicense_in_sourcesr   sources_texts   &&&&&  r   test_setup_cfg_license_file'TestEggInfo.test_setup_cfg_license_file!  s    D 	

5  ::??CIIe$4c*o#FG	
 ww||C8L-8BBGBT,,,L000$L888r   z
                              [metadata]
                              license_files =
                                  LICENSE-ABC
                                  LICENSE-XYZ
                              LICENSE-ABCABC licenseLICENSE-XYZXYZ licensez
                              [metadata]
                              license_files = LICENSE-ABC, LICENSE-XYZ
                              z
                              [metadata]
                              license_files =
                                  LICENSE-ABC
                              zv
                              [metadata]
                              license_files =
                              z
                              [metadata]
                              license_files = LICENSE-XYZ
                              z
                              [metadata]
                              license_files =
                                  LICENSE-ABC
                                  INVALID_LICENSE
                              r  z~
                              [metadata]
                              license_files = LICENSE
                              zexclude LICENSE-XYZr   COPYING-ABCzABC copying
NOTICE-ABCz
ABC noticeAUTHORS-ABCzABC authorsLICENCE-XYZLicensezINVALID-LICENSEzInvalid licensedefault_glob_patternsz
                              [metadata]
                              license_files =
                                  LICENSE*
                              z
NOTICE-XYZz
XYZ noticeno_default_glob_patternsz
                              [metadata]
                              license_files =
                                  LICENSE-ABC
                                  LICENSE*
                              files_only_added_oncez
                              [metadata]
                              license_files = **/LICENSE
                              zLICENSE-OTHERzDon't includevendorVendor licensezvendor/LICENSErecursive_globc           	     	T   V P                  4        \        P                  ! V4       \        P                  ! R .\
        P                  P                  VP                  R,          \        V4      .4      R7       \
        P                  P                  RR4      p\        VR4      P                  RR7      pVP                  4        Uu. uF  qP                  4       NK  	  p	pV F  p
V	P                  V
4      ^8X  d   K  Q h	  V F  p
V	P                  V
4      ^ 8X  d   K  Q h	  R# u upi 	r   r$   r  rE   ru   rw   rP   rQ   Nr;   r   r1   r   r  r   r  r   r,   r  r   r  
splitlinesr   countr:   r_   r3   r  incl_licensesexcl_licensesr   r  linesources_lineslfs   &&&&&&     r   test_setup_cfg_license_files(TestEggInfo.test_setup_cfg_license_filesu  s    d 	

5  ::??CIIe$4c*o#FG	
 ww||C8L-8BBGBT2>2I2I2KL2K$2KLB &&r*a///    B &&r*a///   M   D%z
                              [metadata]
                              license_file =
                              license_files =
                              z
                              [metadata]
                              license_file =
                                  LICENSE-ABC
                                  LICENSE-XYZ
                              a  
                              [metadata]
                              license_file = LICENSE-ABC
                              license_files =
                                  LICENSE-XYZ
                                  LICENSE-PQR
                              LICENSE-PQRzPQR licensea9  
                              [metadata]
                              license_file = LICENSE-ABC
                              license_files =
                                  LICENSE-ABC
                                  LICENSE-XYZ
                                  LICENSE-PQR
                              z
                              [metadata]
                              license_file = LICENSE-ABC
                              license_files =
                                  LICENSE-XYZ
                              a  
                              [metadata]
                              license_file = LICENSE-ABC
                              license_files =
                                LICENSE-PQR
                                LICENSE-XYZ
                              z'exclude LICENSE-ABC
exclude LICENSE-PQRz~
                              [metadata]
                              license_file = LICENSE*
                              z
                              [metadata]
                              license_file = LICENSE*
                              license_files =
                                NOTICE*
                              combined_glob_patterrnsc           	     	T   V P                  4        \        P                  ! V4       \        P                  ! R .\
        P                  P                  VP                  R,          \        V4      .4      R7       \
        P                  P                  RR4      p\        VR4      P                  RR7      pVP                  4        Uu. uF  qP                  4       NK  	  p	pV F  p
V	P                  V
4      ^8X  d   K  Q h	  V F  p
V	P                  V
4      ^ 8X  d   K  Q h	  R# u upi r(  r)  r,  s   &&&&&&     r   )test_setup_cfg_license_file_license_files5TestEggInfo.test_setup_cfg_license_file_license_filesY  s    L 	

5  ::??CIIe$4c*o#FG	
 ww||C8L-8BBGBT2>2I2I2KL2K$2KLB &&r*a///    B &&r*a///   Mr4  c                @   V P                  4        \        P                  ! R\        R4      RRRRRRR	R
RRR//4       \        P
                  ! R.\        P                  P                  VP                  R,          \        V4      .4      R7       \        P                  P                  RR4      p\        \        P                  P                  VR4      RR7      ;_uu_ 4       pVP                  4       P                  R4      pRRR4       X Uu. uF  qfP                  R4      '       g   K  VNK  	  pp\        V4      ^8X  g   Q hRV^ ,          8X  g   Q hRVR,          9   g   Q hRVR,          9   g   Q hRV^,          9   g   Q hR#   + '       g   i     L; iu upi )zCAll matched license files should have a corresponding License-File.rN   z
                              [metadata]
                              license_files =
                                  NOTICE*
                                  LICENSE*
                                  **/LICENSE
                              r  r  r  r  NOTICEincludedIGNOREznot includer$  r  r%  r   r$   r  rE   ru   rv   rP   rQ   r   NzLicense-File:zLicense-File: NOTICEzLicense-File: LICENSE-ABC:   NNzLicense-File: LICENSE-XYZzLicense-File: vendor/LICENSE)r;   r   r1   r   r   r  r   r  r   r,   r  r[   r\   rF   r   r   )r:   r_   r3   r   r   r?   r/  license_file_liness   &&&     r   test_license_file_attr_pkg_info+TestEggInfo.test_license_file_attr_pkg_info  sq   

" ==jmy"23
 	" 	  ::??CIIe$4c*o#FG	
 ww||C8"'',,|Z87KKrWWY__T2N L ,
+T/ODD^ 	 
 %&!+++%);A)>>>>*.@.DDDD*.@.DDDD-1CA1FFFF LK
s   # FF,FF	c           	        V P                  R4       \        P                  ! R.\        P                  P                  VP                  R,          \        V4      .4      ^R7       \        P                  P                  RR4      p\        \        P                  P                  VR4      RR	7      ;_uu_ 4       pVP                  4       P                  R
4      pRRR4       V P                  X4      R8X  g   Q hR#   + '       g   i     L*; i)z5Make sure latest metadata version is used by default.r   r   r$   r   r   r   rE   ru   rv   rP   rQ   r   N)r>      )r   r   r  r   r  r   r,   r  r   r[   r\   rF   rK   r:   r_   r3   r   r   r?   s   &&&   r   test_metadata_version!TestEggInfo.test_metadata_version8  s    ((,  ::??CIIe$4c*o#FG	

 ww||C8"'',,|Z87KKrWWY__T2N L ''76AAA LKs   8 C::D
	c           	     	   V P                  R 4       \        P                  P                  4       P	                  VP
                  R,          R7      p\        P                  ! R.\        P                  P                  VP
                  R,          \        V4      .4      ^VR7       \        P                  P                  RR4      p\        \        P                  P                  VR4      R	R
7      ;_uu_ 4       pVP                  4       P                  R4      pRRR4       RpVX9   g   Q hRV9   g   Q hR#   + '       g   i     L&; i)z.long_description_content_type='text/markdown',r   r   r   r$   r   rE   ru   rv   rP   rQ   r   Nz'Description-Content-Type: text/markdownr   r   r:   r_   r3   r   r   r   r?   expected_lines   &&&     r   "test_long_description_content_type.TestEggInfo.test_long_description_content_typeF  s     	((@	
 **//#**6" + 
 	  ::??CIIe$4c*o#FG		
 ww||C8"'',,|Z87KKrWWY__T2N LA...&.888	 LKs   8 D66E	c           	     	f   V P                  R 4       \        P                  ! R.\        P                  P                  VP                  R,          \        V4      .4      ^R7       \        P                  P                  RR4      p\        \        P                  P                  VR4      RR7      ;_uu_ 4       pVP                  4       P                  R	4      pR
R
R
4       RX9   g   Q hRVR,          8X  g   Q hWUP                  R4      R
 pRV9   g   Q hRV9   g   Q hR
#   + '       g   i     LP; i)zqlong_description='This is a long description\nover multiple lines',long_description_content_type='text/markdown',r   r$   rC  rE   ru   rv   rP   rQ   r   Nr   r   zThis is a long descriptionzover multiple lines)r   r   r  r   r  r   r,   r  r   r[   r\   rF   index)r:   r_   r3   r   r   r?   long_desc_liness   &&&    r   test_long_description!TestEggInfo.test_long_descriptiona  s    
 	((=	
 	  ::??CIIe$4c*o#FG	

 ww||C8"'',,|Z87KKrWWY__T2N L&.888^B''''()=)=b)A)CD+>>>$777 LKs   8 D  D0	c           	     	   V P                  R 4       \        P                  P                  4       P	                  VP
                  R,          R7      p\        P                  ! R.\        P                  P                  VP
                  R,          \        V4      .4      ^VR7       \        P                  P                  RR4      p\        \        P                  P                  VR4      R	R
7      ;_uu_ 4       pVP                  4       P                  R4      pRRR4       RpVX9   g   Q hRpWv9   g   Q hV P                  V4      R8  g   Q hR#   + '       g   i     L?; i)zproject_urls={
                'Link One': 'https://example.com/one/',
                'Link Two': 'https://example.com/two/',
                },r   r   r   r$   r   rE   ru   rv   rP   rQ   r   Nz/Project-URL: Link One, https://example.com/one/z/Project-URL: Link Two, https://example.com/two/r>  r>   r   r   r   r   r  r,   r   r  r  r   r  r   r[   r\   rF   rK   rI  s   &&&     r   test_project_urlsTestEggInfo.test_project_urlsx  s    	((	
 **//#**6" + 
 	  ::??CIIe$4c*o#FG		
 ww||C8"'',,|Z87KKrWWY__T2N LI...I...''76AAA LKs   8 EE	c           	        V P                  R4       \        P                  ! R.\        P                  P                  VP                  R,          \        V4      .4      ^R7       \        P                  P                  RR4      p\        \        P                  P                  VR4      RR	7      ;_uu_ 4       pVP                  4       P                  R
4      pRRR4       RX9   g   Q hR#   + '       g   i     L; i)zTest single line license.zlicense='MIT',r   r$   rC  rE   ru   rv   rP   rQ   r   NzLicense: MITr   r   r  r   r  r   r,   r  r   r[   r\   rF   rE  s   &&&   r   test_licenseTestEggInfo.test_license  s    (()9:  ::??CIIe$4c*o#FG	

 ww||C8"'',,|Z87KKrWWY__T2N L/// LKs   8 C++C;	c           	     >   V P                  R4       \        P                  ! R.\        P                  P                  VP                  R,          \        V4      .4      ^R7       \        P                  P                  RR4      p\        \        P                  P                  VR4      RR	7      ;_uu_ 4       pVP                  4       P                  R
4      pRRR4       RX9   g   Q hRV9   g   Q hRR
P                  V4      9   g   Q hR#   + '       g   i     L<; i)z:Test license is escaped correctly if longer than one line.z<license='This is a long license text \nover multiple lines',r   r$   rC  rE   ru   rv   rP   rQ   r   Nz%License: This is a long license text z        over multiple linesztext 
        over multiplerY  rE  s   &&&   r   test_license_escapeTestEggInfo.test_license_escape  s    ((K	
 	  ::??CIIe$4c*o#FG	

 ww||C8"'',,|Z87KKrWWY__T2N L 7.HHH,>>>->1JJJJ LKs   8 DD	c           	     	   V P                  R 4       \        P                  P                  4       P	                  VP
                  R,          R7      p\        P                  ! R.\        P                  P                  VP
                  R,          \        V4      .4      ^VR7       \        P                  P                  RR4      p\        \        P                  P                  VR4      R	R
7      ;_uu_ 4       pVP                  4       P                  R4      pRRR4       RX9   g   Q hV P                  V4      R8  g   Q hR#   + '       g   i     L3; i)zpython_requires='>=2.7.12',r   r   r   r$   r   rE   ru   rv   rP   rQ   r   NzRequires-Python: >=2.7.12rT  rU  r  s   &&&    r   test_python_requires_egg_info)TestEggInfo.test_python_requires_egg_info  s    (()JK**//#**6" + 
 	  ::??CIIe$4c*o#FG		
 ww||C8"'',,|Z87KKrWWY__T2N L*n<<<''76AAA LKs   8 EE	c                	\    R R.pV F!  p\         P                  ! V4      '       d   K!  Q h	  R# )z:standard file not found: should have one of foo.py, bar.pyz"standard file 'setup.py' not foundN)r	   _should_suppress_warning)r:   fixturesr   s   &  r   'test_manifest_maker_warning_suppression3TestEggInfo.test_manifest_maker_warning_suppression  s2    H0

 C!::3???? r   c                	   V P                  4        \        R RRR/4      pRVn        \        V4      pVP	                  4        VP                  4        RVP                  P                  9   g   Q h\        VP                  R,           RR7      ;_uu_ 4       pVP                  4       P                  R	4      pRV9   g   Q h R
R
R
4       R
#   + '       g   i     R
# ; i)r   fooversion0.0.1znon_setup.pyr8   z/SOURCES.txtrP   rQ   r   N)r;   r   script_namer   finalize_optionsr   filelistr  r[   r\   rF   )r:   r_   ra   egg_info_instancerc   sourcess   &&    r   test_egg_info_includes_setup_py+TestEggInfo.test_egg_info_includes_setup_py  s    VUIw?@)$TN**,.77=====#,,~=PPTUffhnnT*G((( QPPPs   )C		C	Nc           	     	~   \         P                  P                  4       P                  VP                  R ,          R7      pVf   R.p\
        P                  ! V\         P                  P                  VP                  R,          \        V4      .4      ^VR7      w  rgV'       d   Q V4       hV'       d   WG9   g   Q hR# R# )r   r   Nr   r$   r   )
r   r   r   r  r,   r   r  r  r   r  )r:   r_   r3   r   outputr   coder&   s   &&&&&   r   ry   !TestEggInfo._run_egg_info_command  s    **//#**6" + 
 ;C !--::??CIIe$4c*o#FG	

 x>!> r   c                	   V P                  4        \        P                  ! R \        R4      /4       V P	                  W4       \
        P                  P                  RR4      p\        \
        P                  P                  VR4      RR7      ;_uu_ 4       pVP                  4       P                  R4      pRRR4       R	X9   g   Q hR#   + '       g   i     L; i)
rN   z
                              [egg_info]
                              tag_build = dev
                              tag_date = 0
                              tag_svn_revision = 0
                              rE   ru   rv   rP   rQ   r   NzVersion: 0.0.0.dev0r   rE  s   &&&   r   test_egg_info_tag_only_once'TestEggInfo.test_egg_info_tag_only_once  s    

"	
 		 	"":3ww||C8"'',,|Z87KKrWWY__T2N L$666 LKs    C		C	r   )F)r  r  )r  r-  r.  )r  r  r  r  r  r  )r  r5  r  )NN)2r   r   r   r   r   r9   r;   r   rK   rf   r]   rr   r}   r   r   r   r   r   sysversion_infor   r   r   r   r   r   r   r   r   r  r
  r   r   r   r  r2  r8  r@  rF  rK  rQ  rV  rZ  r]  r`  re  rp  ry   rw  r   r   r   r   r6   r6   1   s   		L	  
>4 2 2!>F* 1B*<$ ))9)9!)<(=Q?O"4S5E5Ea5H4I KN, ,\ ##	
												 &'";g $ TjNkTjN*	8NN9"6$ [['  "" ~   "" ~   "" ~ 	  "" "#4~	  LL"" ~ !a=	
@B9C@B9& [[3  "" "=!= .$  "" "=!=	 .   "" "=!=
 "  "" "=!=	 .   "" "=!=	    "" ">
 "#"  "" ~ 
  "" "#4~	    "" "#8!=!= .!$ LL!=!= ,!=!=y%'8	 ##*+. LL"" "= ,
 -  LL"" "=
 *  LL"" }#_y*:;
 ,- !#wK	
N^0_N^0* [[3  "" "=!=
 ."  "" "=!= .&  "" "=!=!= >!(  "	" "=!=!=  >%,  "" "=!=!= .!(  "" "> .&  "" "#M!=!=!=  >%( LL"" "= ,	 - LL"" "= ,!= -,![_	
bF0GbF0*%GNB968.B@0K$B"@)"&7r   r6   c                  "    ] tR tRtR tR tRtR# )TestWriteEntriesi  c                	   \        R RRR/4      pRR/Vn        VP                  R4      pRp\        P                  ! \
        P                  \        3VR7      ;_uu_ 4       p\        VRR	4       R
VP                  P                  ^ ,          9   g   Q hR\        VP                  4      9   g   Q h RRR4       R#   + '       g   i     R# ; i)r   rh  ri  rj  zfoo = invalid-identifier:foor   z,(Invalid object reference|Problems to parse)r   entry_pointsrx   z#ensure entry-point follows the speczinvalid-identifierN)r   r~  get_command_objr   r   r   OptionErrorr   r
   r   r   r  )r:   r_   r3   ra   r   expected_msgexs   &&&    r   test_invalid_entry_point)TestWriteEntries.test_invalid_entry_point  s    VUIw?@"$BC"":.F]]F..
;<PPTV#~/AB8BHHMM!<LLLL'3rxx=888 QPPPs    AB99C
	c                	    \        R RRR/4      pRRRR./Vn        VP                  R4      p\        VR	R
4       \	        R
4      P                  RR7      pRV9   g   Q hRV9   g   Q hR# )r   rh  ri  rj  abczfoo = bar:bazdefzfaa = bor:bozr   r~  rx   rP   rQ   z[abc]
foo = bar:baz
z[def]
faa = bor:boz
N)r   r~  r  r
   r   r  )r:   r_   r3   ra   r   rd   s   &&&   r   test_valid_entry_point'TestWriteEntries.test_valid_entry_point  s    VUIw?@?O$
 "":.c>+=>)*44g4F'7222'7222r   r   N)r   r   r   r   r  r  r   r   r   r   r|  r|    s    9
3r   r|  )#
__future__r   r   r   r   ri   r)   ry  r   pathlibr   unittestr   r   jaracor   
setuptoolsr   setuptools.command.egg_infor   r	   r
   setuptools.distr   r   r   r   textwrapr   r  r   fixturer3   r6   r|  r   r   r   <module>r     sv    " 
  	 	  
       O O ( # 	# 	  (Q7 Q7h&3 3r   