U
    [e*-                     @   s^  zd dl Z W n ek
r(   d dlZ Y nX 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ejddZejddZejdd	Zejd
dZejddZddge ddeg ZeejddZejejedddZdd ZG dd dejZG dd dejZ G dd dejZ!G dd dejZ"dS )    N)base)test_packagingPIPFLAGS 
PIPVERSIONpip
PBRVERSIONpbrREPODIR
WHEELHOUSE-minstall-fPROJECTSz..c               
   c   s   t sd S tddg} tD ]}| }|dd }z@ttjt |dd }d|	 krfW 5 Q R  W qW 5 Q R X W n t
k
r   Y qY nX || krq|t||dfV  qd S )	NZtempestrequirements/setup.pyrtr	   )name
short_name)r
   setr   stripsplitopenospathjoinreadIOErrordict)excludesr   r   f r#   \/var/www/html/services/stratfitenv/lib/python3.8/site-packages/pbr/tests/test_integration.pyall_projects(   s,      
r%   c                       sH   e Zd Zee Z fddZee	j
dddkddd Z  ZS )	TestIntegrationc              	      s@   t dtjdd}| tt|   W 5 Q R X t	  d S )NZOS_TEST_TIMEOUTZ600)
fixturesZEnvironmentVariabler   environgetsuperr&   setUpr   Z_config_git)selfenv	__class__r#   r$   r+   @   s     zTestIntegration.setUpPBR_INTEGRATIONN1integration tests not enabledc              
   C   sx  t jt| j}t j|d}t| j }t j|rtt	
 }|| |drt|jdddd}t| }t jtdd}t j| t jd}t|dF}t|d	0}	|D ]$}
|
d
d }||kr|	|
 qW 5 Q R X W 5 Q R X td|g }| tjdddtgtd}|j}| tjd|ddg|d | tjdddtgtd}|j}t j|dt t j|dd }| td|g| |g  | tjdddtgtd}|j}|j}| td|g| d| g  | jdkr,d}t |D ]\}}}d|krd}q| | | tjdddtgtd}|j}|j}| td|g| d|g  d S )N	setup.cfgmetadatar   Znotapackagename)fallbackr   zupper-constraints.txtrwz===r   z-csdistr   wheel)modulespip_cmdr   cwdZtarballdistzinstall-gitzgit+file://ZnovaFzmigrate.cfgTz	install-ez-e)r   r   r   r
   r   pkg_resources	safe_namelowerexistsconfigparserConfigParserr   has_sectionr)   
useFixturer'   TempDirr   r   writePIP_CMDr   Venvr   pythonr   CapturedSubprocesslistdirwalk
assertTrue)r,   r   	setup_cfgproject_nameconfigraw_nameconstraintsZtmp_constraintssrcdestline
constraintr;   venvrK   filenamerootfound_	filenamesr#   r#   r$   test_integrationI   s    


       

 z TestIntegration.test_integration)__name__
__module____qualname__listr%   	scenariosr+   	testtools
skipUnlessr   r(   r)   r_   __classcell__r#   r#   r.   r$   r&   <   s   
	r&   c                   @   s.   e Zd Zeejdddkddd ZdS )TestInstallWithoutPbrr0   Nr1   r2   c           	      C   s  |  t j}tj|d}t| | jtj	ddd|fdt
d tj|d}t| tdtd	| d
tdtddd}|  t|j}|d }|d }| jtj	ddd|fd|d |  tdddg}|j}|  tjd|gddg |d d S )NZdistdirr   r8   -dF)
allow_failr=   Ztestpkga&                      #!/usr/bin/env python
                    import setuptools
                    setuptools.setup(
                        name = 'pkgTest',
                        tests_require = ['pkgReq'],
                        test_suite='pkgReq'
                    )
                zW                    [easy_install]
                    find_links = %s
                )r   r3   z(                    pbr
                zE                    print("FakeTest loaded and ran")
                )requirements.txtzpkgReq/__init__.py)pkgTestpkgReqrl   rm   Znopbrr   r9   testr<   )rF   r'   rG   r   r   r   mkdir_run_cmdsys
executablePBR_ROOTtextwrapdedentr   CreatePackagespackage_dirsrJ   rK   r   rL   )	r,   tempdirdist_dirZtest_pkg_dirpkgspkg_dirsZreq_pkg_dirrY   rK   r#   r#   r$   test_install_without_pbr   sD    
 
	   z.TestInstallWithoutPbr.test_install_without_pbr)	r`   ra   rb   re   rf   r   r(   r)   r|   r#   r#   r#   r$   rh      s
   rh   c                	   @   s   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ddddgifddddgifgZeejdddkddd Z	dS )TestMarkersPipz
pip-latestr:   r   zsetuptools-Bionic
pip==9.0.1setuptools==39.0.1zsetuptools-Stretchsetuptools==33.1.1zsetuptools-EL8
pip==9.0.3setuptools==39.2.0zsetuptools-Buster	pip==18.1setuptools==40.8.0zsetuptools-Focalpip==20.0.2setuptools==45.2.0r0   Nr1   r2   c           	   	   C   s  dt dii i d}| t|j}| t j}t	j
|d}| td}|j}t	| | jD ]"}| j|dddd	|g|jd
d ql|D ]"}| j|ddd|g|| d
d q| j|ddddd|dg|jd
d | d| j|dddg|jd
dd  d S )Nrk   zr                    pkg_a; python_version=='1.2'
                    pkg_b; python_version!='1.2'
                )test_markersZpkg_aZpkg_brepomarkersr   r   r   z	--upgradeFr=   rj   r   r8   ri   z
--no-indexr   r   zpkg-bfreezer   )rt   ru   rF   r   rv   rw   r'   rG   r   r   r   rJ   rK   ro   r:   rp   ZassertIn)	r,   rz   r{   temp_dirrepo_dirrY   
bin_pythonmodulepkgr#   r#   r$   test_pip_versions   sT    	

  
  
  z TestMarkersPip.test_pip_versions)
r`   ra   rb   rd   re   rf   r   r(   r)   r   r#   r#   r#   r$   r}      s0       r}   c                   @   sx   e Zd Z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eejdddkddd Z	dS )TestLTSSupportZBionicr:   r~   r   ZStretchr   ZEL8r   r   ZBusterr   r   ZFocalr   r   r0   Nr1   r2   c                 C   sD   |  tjd| jd}|j}dt }| j|ddd|g|jdd d S )	N
setuptools)r:   zfile://%s#egg=pbrr   r   r   Fr   )rF   r   rJ   r:   rK   rs   rp   r   )r,   rY   r   r	   r#   r#   r$   test_lts_venv_default_versions  s     z-TestLTSSupport.test_lts_venv_default_versions)
r`   ra   rb   rd   re   rf   r   r(   r)   r   r#   r#   r#   r$   r     s   r   )#rC   ImportErrorrD   os.pathr   r?   shlexrq   r'   re   rt   Z	pbr.testsr   r   r   r(   r)   r   r   r   r
   r   rI   r   r   abspathr   __file__rs   r%   ZBaseTestCaser&   rh   r}   r   r#   r#   r#   r$   <module>   s2   ^76