
    cD.                        	 d dl Z d dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZ  ej                  ej                  j!                  dd            Zej                  j!                  dd      Zej                  j!                  dd	      Zej                  j!                  d
d      Zej                  j!                  dd      Zddgez   ddegz   Z ej                  ej                  j!                  dd            Zej0                  j3                  ej0                  j5                  eddd            Zd Z G d dej<                        Z G d dej<                        Z  G d dej<                        Z!ejD                  d d dk  r&ddddgifddddgifd dd!d"gifd#dd$d%gifd&dd'd(gifgZ#nd)dd*d+gifd&dd'd(gifd,dd-d.gifgZ# G d/ d0ej<                        Z$y# e$ r d dlZ Y w xY w)1    N)base)test_packagingPIPFLAGS 
PIPVERSIONpip
PBRVERSIONpbrREPODIR
WHEELHOUSE-minstall-fPROJECTSz..c               #     K   t         sy t        ddg      } t        D ]  }|j                         }|j	                  d      d   }	 t        t        j                  j                  t         |d      d      5 }d|j                         vr
	 d d d        t	 d d d        || v r|t        ||      f  y # 1 sw Y   "xY w# t        $ r Y w xY ww)	Ntempestrequirements/setup.pyrtr
   )name
short_name)r   setr   stripsplitopenospathjoinreadIOErrordict)excludesr   r   fs       </usr/lib/python3/dist-packages/pbr/tests/test_integration.pyall_projectsr'   (   s     I~./H Czz|ZZ_R(
	bggllZ56:< ?@( ( !4TjABBC   		sN   AC/B?4B3B?CB?C3B<	8B??	CC
CCc                        e Zd Z e e             Z fdZ ej                  e	j                  j                  dd      dk(  d      d        Z xZS )TestIntegrationc                     t        j                  dt        j                  j	                  dd            }|5  t
        t        |           d d d        t        j                          y # 1 sw Y   xY w)NOS_TEST_TIMEOUT600)
fixturesEnvironmentVariabler   environgetsuperr)   setUpr   _config_git)selfenv	__class__s     r&   r2   zTestIntegration.setUp@   s\     **rzz~~.?GI 	1/4.0	1	1 	1s   A((A1PBR_INTEGRATIONN1integration tests not enabledc           
         t         j                  j                  t        | j                        }t         j                  j                  |d      }t        j                  | j                        j                         }t         j                  j                  |      rmt        j                         }|j                  |       |j                  d      r7|j                  ddd      }t        j                  |      j                         }t         j                  j                  t        dd      }t         j                  j                  | j                  t        j                                j                  d      }t#        |d      5 }t#        |d	      5 }	|D ]-  }
|
j%                  d
      d   }||k7  s|	j'                  |
       / 	 d d d        d d d        t(        d|gz   }| j                  t+        j,                  dddt.        gt(                    }|j0                  }| j                  t3        j4                  d|ddg|             | j                  t+        j,                  dddt.        gt(                    }|j0                  }t         j                  j                  |dt        j6                  t         j                  j                  |d            d         }| j                  t3        j4                  d|g|z   |gz                | j                  t+        j,                  dddt.        gt(                    }|j                  }|j0                  }| j                  t3        j4                  d|g|z   d|z   gz                | j                  dk(  r8d}t        j8                  |      D ]  \  }}}d|v sd} | j;                  |       | j                  t+        j,                  dddt.        gt(                    }|j                  }|j0                  }| j                  t3        j4                  d|g|z   d|gz                y # 1 sw Y   xY w# 1 sw Y   xY w)N	setup.cfgmetadatar   notapackagename)fallbackr   zupper-constraints.txtrwz===r   z-csdistr   wheel)modulespip_cmdr   cwdtarballdistzinstall-gitzgit+file://novaFzmigrate.cfgTz	install-ez-e)r   r   r    r   r   pkg_resources	safe_namelowerexistsconfigparserConfigParserr!   has_sectionr0   
useFixturer-   TempDirr   r   writePIP_CMDr   Venvr	   pythonr   CapturedSubprocesslistdirwalk
assertTrue)r4   r   	setup_cfgproject_nameconfigraw_nameconstraintstmp_constraintssrcdestline
constraintrD   venvrV   filenamerootfound_	filenamess                       r&   test_integrationz TestIntegration.test_integrationI   s    ww||GT__5GGLL{3	$..t?EEG77>>)$!..0FKK	"!!*-!::j&/@ & B
  -66x@FFHggll7N#:<'',,OOH,,./44#%
 +s# 	)sos+ )t )D!%E!21!5J#z1

4())	) T?33).(D(/12 //fj'2> 	?	).(D(/12 77<<&"**RWW\\$%?@CE//x')XJ68 	9).(D(/12 yy//F8g-1E0FFH 	I??f$E#%774= !1i I- E! OOE").(D(/12 yy//&G+tTl:< 	=W) )	) 	)s*   QQ1QQQ	QQ)__name__
__module____qualname__listr'   	scenariosr2   	testtools
skipUnlessr   r/   r0   rk   __classcell__)r6   s   @r&   r)   r)   <   sR    \^$I Y


($/36')K=)K=    r)   c                   x    e Zd Z ej                  ej                  j                  dd      dk(  d      d        Zy)TestInstallWithoutPbrr7   Nr8   r9   c                    | j                  t        j                               j                  }t        j                  j                  |d      }t	        j                  |       | j                  t        j                  ddd|fdt               t        j                  j                  |d      }t	        j                  |       t        j                  d      t        j                  d	|z        d
t        j                  d      t        j                  d      dd}| j                  t        j                  |            j                  }|d   }|d   }| j                  t        j                  ddd|fd|       | j                  t        j                   dddg            }|j"                  }| j                  t%        j&                  d|gddgz   |             y )Ndistdirr   rA   -dF)
allow_failrF   testpkga&                      #!/usr/bin/env python
                    import setuptools
                    setuptools.setup(
                        name = 'pkgTest',
                        tests_require = ['pkgReq'],
                        test_suite='pkgReq'
                    )
                zW                    [easy_install]
                    find_links = %s
                )r   r;   z(                    pbr
                zE                    print("FakeTest loaded and ran")
                )requirements.txtzpkgReq/__init__.py)pkgTestpkgReqr}   r~   nopbrr   rB   testrE   )rQ   r-   rR   r   r   r    mkdir_run_cmdsys
executablePBR_ROOTtextwrapdedentr   CreatePackagespackage_dirsrU   rV   r   rW   )	r4   tempdirdist_dirtest_pkg_dirpkgspkg_dirsreq_pkg_dirre   rV   s	            r&   test_install_without_pbrz.TestInstallWithoutPbr.test_install_without_pbr   s   
 //("2"2"45:: 77<<3
cnnz7D(&K!&H 	 	6 ww||GY7
 %OO -  &__ . .  ! %-OO 5 % '/oo 7 '	
. ??))$/11= 		*x(cnnz7D(&K!&K 	 	9 ~227UG<LMN//fXV 44,H 	Irt   )	rl   rm   rn   rq   rr   r   r/   r0   r    rt   r&   rv   rv      s>    Y


($/36')/I)/Irt   rv   c                       e Zd Zdddgifddddgifdddd	gifd
dddgifgZ ej
                  ej                  j                  dd      dk(  d      d        Z	y)TestMarkersPipz
pip-latestrC   r   zsetuptools-Bullseyepip==20.3.4setuptools==52.0.0zsetuptools-Focalpip==20.0.2setuptools==45.2.0zsetuptools-Jammypip==22.0.2setuptools==59.6.0r7   Nr8   r9   c           
         dt        j                  d      ii i d}| j                  t        j                  |            j
                  }| j                  t        j                               j                  }t        j                  j                  |d      }| j                  t        j                  d            }|j                  }t        j                  |       | j                  D ]&  }| j                  |dddd	|g|j                  d
       ( |D ]  }| j                  |ddd|g||   d
         | j                  |ddddd|dg|j                  d
       | j!                  d| j                  |g d|j                  d
      d          y )Nr|   zr                    pkg_a; python_version=='1.2'
                    pkg_b; python_version!='1.2'
                )test_markerspkg_apkg_brepomarkersr   r   r   z	--upgradeFrF   rz   r   rA   ry   z
--no-indexr   r   zpkg-b)r   r   freezer   )r   r   rQ   r   r   r   r-   rR   r   r   r    rU   rV   r   rC   r   assertIn)	r4   r   r   temp_dirrepo_dirre   
bin_pythonmodulepkgs	            r&   test_pip_versionsz TestMarkersPip.test_pip_versions   s    $X__ 6 &  
 ??))$/11= 	??8#3#3#56;;77<<&1~229=>[[

ll 	1FMMuif=II%  1	1
  	5CMMZ$ASMe  5	5 	5)\4		e	 	 	-
 	gt}}/TYY  -   ! 	"rt   )
rl   rm   rn   rp   rq   rr   r   r/   r0   r   r   rt   r&   r   r      s     
	E7+,!(<=>	

 (<=>	

 (<=>	
I  Y


($/36'!"	!"rt   r      )r   
   r   BionicrC   z
pip==9.0.1zsetuptools==39.0.1Stretchzsetuptools==33.1.1EL8z
pip==9.0.3zsetuptools==39.2.0Busterz	pip==18.1zsetuptools==40.8.0Focalr   r   Bullseyer   r   Jammyr   r   c                   |    e Zd ZeZ ej                  ej                  j                  dd      dk(  d      d        Z
y)TestLTSSupportr7   Nr8   r9   c                     | j                  t        j                  d| j                              }|j                  }dt
        z  }| j                  |ddd|g|j                  d       y )	N
setuptools)rC   zfile://%s#egg=pbrr   r   r   Fr   )rQ   r   rU   rC   rV   r   r   r   )r4   re   r   r
   s       r&   test_lts_venv_default_versionsz-TestLTSSupport.test_lts_venv_default_versions"  sc    
 dllCE[[
!H, 	j4	3"?)) 	 	7rt   )rl   rm   rn   lts_scenariosrp   rq   rr   r   r/   r0   r   r   rt   r&   r   r     sA    IY


($/36'7	7rt   r   )%rN   ImportErrorrO   os.pathr   rJ   shlexr   r-   rq   r   	pbr.testsr   r   r   r/   r0   r   r   r	   r   r   rT   r   r   abspathr    __file__r   r'   BaseTestCaser)   rv   r   version_infor   r   r   rt   r&   <module>r      s   (    
     $5;;rzz~~j"56ZZ^^L%0
ZZ^^L%0

**..B
'ZZ^^L"-
-(
"iz%B
B5;;rzz~~j"5677??277<<$dCDC([=d'' [=|4ID-- 4In7"T&& 7"z Aa:%	I.BCDE	Y/C DEF	\+?@AB	I-ABCD	9}.BCDEM 
i-1E!FGH	9}.BCDE	9}.BCDEM7T&& 7]  ('(s   G! !	G.-G.