ó
£„öUc           @   s4  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 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 d d e g Z e j	 e j
 j d d ƒ ƒ Z d „  Z d e j f d „  ƒ  YZ d „  Z d S(   iÿÿÿÿN(   t   baset   PIPFLAGSt    t
   PIPVERSIONt   pipt
   PBRVERSIONt   pbrt   REPODIRt
   WHEELHOUSEs   -mt   installs   -ft   PROJECTSc          c   sß   t  s
 d  St d d d d g ƒ }  x¶ t D]® } | j ƒ  } | j d ƒ d } yF t t j j t  | d ƒ d ƒ  } d	 | j	 ƒ  k r w) n  Wd  QXWn t
 k
 rª q) n X| |  k r½ q) n  | t d
 | d | ƒ f Vq) Wd  S(   Ns   pypi-mirrort   jeepybt   tempestt   requirementst   /iÿÿÿÿs   setup.pyt   rtR   t   namet
   short_name(   R   t   setR
   t   stript   splitt   opent   ost   patht   joint   readt   IOErrort   dict(   t   excludesR   R   t   f(    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyt   all_projects!   s     t   TestIntegrationc           B   sY   e  Z e e ƒ  ƒ Z d  „  Z d „  Z e j e	 j
 j d d ƒ d k d ƒ d „  ƒ Z RS(   c         C   s=   t  j j d d ƒ t  j d <t t |  ƒ j ƒ  t j ƒ  d  S(   Nt   OS_TEST_TIMEOUTt   600(   R   t   environt   gett   superR   t   setUpR    t   _config_git(   t   self(    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyR%   9   s    c         C   s   |  j  t j ƒ  ƒ j } t j | d t ƒt j j | d d ƒ } |  j  t	 j
 d | | g t d t d t g ƒ ƒ | | f S(   Nt   cleart   bint   pythons   mkvenv-s   -Ut   wheel(   t
   useFixturet   fixturest   TempDirR   t
   virtualenvt   create_environmentt   TrueR   R   R    t   CapturedSubprocesst   PIP_CMDR   R   (   R'   t   reasonR   R*   (    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyt   venvA   s    t   PBR_INTEGRATIONt   1s   integration tests not enabledc         C   sk  |  j  t j d d d t j j t |  j ƒ g d t j j t d ƒ ƒƒ |  j  t j d d d t j j t |  j ƒ d t ƒƒ t j j |  j  t	 j
 ƒ  ƒ j d	 ƒ } |  j  t j d
 d d
 t j j t |  j ƒ | g ƒ ƒ |  j d ƒ \ } } |  j  t j d | d d g d | ƒƒ |  j d ƒ \ } } t j j | d t j t j j | d ƒ ƒ d ƒ } |  j  t j d | g t | g ƒ ƒ |  j d ƒ \ } } |  j  t j d | g t d | g ƒ ƒ |  j d k r(t } x5 t j | ƒ D]$ \ } } } d | k rðt } qðqðW|  j | ƒ n  |  j d ƒ \ } } |  j  t j d | g t d | g ƒ ƒ d  S(   Ns   sync-reqR*   s	   update.pyt   cwdR   s   commit-requirementss.   git diff --quiet || git commit -amrequirementst   shellt   projectt   clonet   gitt   sdists   setup.pyt   tarballt   disti    s   install-gits   git+file://t   novas   migrate.cfgs	   install-es   -e(   R,   R    R2   R   R   R   R   R   R1   R-   R.   R5   t   listdirR3   t   Falset   walkt
   assertTrue(   R'   R   t   _R*   t   filenamet   roott   foundt	   filenames(    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyt   test_integrationJ   sB    !"	(	+N(   t   __name__t
   __module__t   listR   t	   scenariosR%   R5   t	   testtoolst
   skipUnlessR   R"   R#   t   NoneRJ   (    (    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyR   5   s   			c         C   s   t  j |  | | ƒ S(   N(   t   testscenariost   load_tests_apply_scenarios(   t   loadert   in_testst   pattern(    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyt
   load_testsy   s    (   t   os.pathR   t   shlexR-   RR   RO   R/   t	   pbr.testsR    R   R"   R#   R   R   R   R   R   R3   R
   R   t   BaseTestCaseR   RW   (    (    (    s>   /usr/lib/python2.7/dist-packages/pbr/tests/test_integration.pyt   <module>   s    	D