U
    ÇZjŒ*  ã                   @   s,  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r–q|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/TRUCKING_PROJECT/venv/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   s  |   tjdddtj t| j¡gtj td¡d�¡ |   tjddtj t| j¡dd	�¡ tj |   t 	¡ ¡jd
¡}|   t dddtj t| j¡|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t |g ¡¡ |   t
jdddtgtd�¡}|j}|j}|   t d|gt 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t d|g ¡¡ d S )Nzsync-reqÚpythonz	update.pyr   ©Úcwdzcommit-requirementsz.git diff --quiet || git commit -amrequirementsT)r5   ÚshellÚprojectÚcloneÚgitÚsdistr   Úwheel)ÚmodulesÚpip_cmdr   ZtarballÚdistr   zinstall-gitzgit+file://ZnovaFzmigrate.cfgz	install-ez-e)Ú
useFixturer   ÚCapturedSubprocessr   r   r   r
   r   r'   ÚTempDirr   ÚVenvr   ÚPIP_CMDr3   ÚlistdirÚwalkZ
assertTrue)	r,   r   Úvenvr3   ÚfilenameÚrootÚfoundÚ_Ú	filenamesr#   r#   r$   Útest_integrationD   sš    ý ý ÿþþÿ  ÿþÿ  ÿ ÿþÿ ÿ

þÿ ÿz TestIntegration.test_integration)Ú__name__Ú
__module__Ú__qualname__Úlistr%   Ú	scenariosr+   Ú	testtoolsÚ
skipUnlessr   r(   r)   rL   Ú__classcell__r#   r#   r.   r$   r&   7   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   r:   ú-dF)Ú
allow_failr5   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   z	setup.cfgz(                    pbr
                zE                    print("FakeTest loaded and ran")
                )úrequirements.txtzpkgReq/__init__.py)ÚpkgTestÚpkgReqrY   rZ   Znopbrr   r;   Útestr4   )r?   r'   rA   r   r   r   ÚmkdirÚ_run_cmdÚsysÚ
executableÚPBR_ROOTÚtextwrapÚdedentr   ÚCreatePackagesÚpackage_dirsrB   r3   r   r@   )	r,   ÚtempdirÚdist_dirZtest_pkg_dirÚpkgsÚpkg_dirsZreq_pkg_dirrF   r3   r#   r#   r$   Útest_install_without_pbr‡   sD    
 ÿ
	ýöüñÿ ÿ  ÿz.TestInstallWithoutPbr.test_install_without_pbr)	rM   rN   rO   rR   rS   r   r(   r)   ri   r#   r#   r#   r$   rU   …   s
   þrU   c                	   @   s€   e Zd Zdddgifdddgif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-1.5r<   zpip>=1.5,<1.6zpip-6.0zpip>=6.0,<6.1z
pip-latestr   zsetuptools-EL7ú
pip==1.4.1úsetuptools==0.9.8zsetuptools-Trustyúpip==1.5úsetuptools==2.2zsetuptools-minimumzsetuptools==0.7.2r0   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 )NrX   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©r5   rW   r   r:   rV   z
--no-indexr   ro   zpkg-bÚfreezer   )ra   rb   r?   r   rc   rd   r'   rA   r   r   r   rB   r3   r\   r<   r]   ZassertIn)	r,   rg   rh   Útemp_dirÚrepo_dirrF   Ú
bin_pythonÚmoduleÚpkgr#   r#   r$   Útest_pip_versionsÇ   sT    ù	ÿ

 ý 
 þÿ ü
  þþz TestMarkersPip.test_pip_versions)
rM   rN   rO   rQ   rR   rS   r   r(   r)   ry   r#   r#   r#   r$   rj   ¼   s   ú	þrj   c                   @   sr   e Zd Zdddgddœfdddgddœfd	d
dgddœfdddgddœfgZe ej dd¡dkd¡dd„ ƒZ	dS )ÚTestLTSSupportZEL7rk   rl   T)r<   Ú
py3supportZTrustyrm   rn   ZJessiez
pip==1.5.6zsetuptools==5.5.1ZWheezyPrecisezsetuptools==0.6c11Fr0   Nr1   r2   c                 C   sb   t jd dkr| js|  d¡ |  tjd| jd�¡}|j}dt	 }| j
|ddd	|g|jd
d� d S )Nr   é   z9This combination will not install with py3, skipping testÚ
setuptools)r<   zfile://%s#egg=pbrr   r   r   Frr   )r^   Úversion_infor{   ZskipTestr?   r   rB   r<   r3   r`   r]   r   )r,   rF   rv   r	   r#   r#   r$   Útest_lts_venv_default_versionsÿ   s    
ÿ ÿz-TestLTSSupport.test_lts_venv_default_versions)
rM   rN   rO   rQ   rR   rS   r   r(   r)   r   r#   r#   r#   r$   rz   î   s$   ÿÿÿÿ÷þrz   )Úos.pathr   Úshlexr^   r'   rR   ra   Z	pbr.testsr   r   r   r(   r)   r   r   r   r
   r   rC   r   r   Úabspathr   Ú__file__r`   r%   ZBaseTestCaser&   rU   rj   rz   r#   r#   r#   r$   Ú<module>   s(   N72