ó
 ûJXc           @   sb   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d „  Z d e j f d „  ƒ  YZ d S(   iÿÿÿÿNc         C   s\   |  t  j d <t j t j | ƒ d t j d t j ƒ} | j ƒ  \ } } | | | j ƒ  f S(   sA   Run a command and return a tuple with (stdout, stderr, exit_code)t	   FLASK_APPt   stdoutt   stderr(	   t   ost   environt
   subprocesst   Popent   shlext   splitt   PIPEt   communicatet   wait(   t   appt   cmdt   processR   R   (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   run_cmd   s
    t   TestMigratec           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sœ   t  j t  j j t  j j t ƒ ƒ d ƒ y t  j d ƒ Wn t k
 rM n Xy t j	 d ƒ Wn t k
 rr n Xy t j	 d ƒ Wn t k
 r— n Xd  S(   Ni    s   app.dbt
   migrationst   temp_folder(
   R   t   chdirt   pathR   t   abspatht   __file__t   removet   OSErrort   shutilt   rmtree(   t   self(    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   setUp   s    )c         C   ss   y t  j d ƒ Wn t k
 r$ n Xy t j d ƒ Wn t k
 rI n Xy t j d ƒ Wn t k
 rn n Xd  S(   Ns   app.dbR   R   (   R   R   R   R   R   (   R   (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   tearDown!   s    c         C   sQ   d d l  m } |  j t | ƒ d ƒ x$ | D] } |  j t | t ƒ ƒ q- Wd  S(   Niÿÿÿÿ(   t   alembic_versioni   (   t   flask_migrateR   t   assertEqualt   lent
   assertTruet
   isinstancet   int(   R   R   t   v(    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   test_alembic_version/   s    c         C   sÁ   t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ d d l m } m } | j j | d d	 ƒ ƒ | j j ƒ  d  S(
   Ns   app.pys   flask db initi    s   flask db migrates   flask db upgradei   (   t   dbt   Usert   namet   test(   R   R"   R   R'   R(   t   sessiont   addt   commit(   R   t   ot   et   sR'   R(   (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   test_migrate_upgrade5   s    c         C   sÁ   t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ d d l m } m } | j j | d d	 ƒ ƒ | j j ƒ  d  S(
   Ns   app_custom_directory.pys   flask db initi    s   flask db migrates   flask db upgradei   (   R'   R(   R)   R*   (   R   R"   t   app_custom_directoryR'   R(   R+   R,   R-   (   R   R.   R/   R0   R'   R(   (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   test_custom_directoryA   s    c         C   sÃ   t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ t  d d ƒ \ } } } |  j | d k ƒ |  j d | k ƒ d  S(   Ns   app_compare_type1.pys   flask db initi    s   flask db migrates   flask db upgrades   app_compare_type2.pysB   Detected type change from VARCHAR(length=128) to String(length=10)(   R   R"   (   R   R.   R/   R0   (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   test_compare_typeM   s    	(   t   __name__t
   __module__R   R   R&   R1   R3   R4   (    (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyR      s   					(   R   R   t   unittestR   R   R   t   TestCaseR   (    (    (    sP   /Users/migu7781/Documents/dev/flask/flask-migrate/tests/test_migrate_flaskcli.pyt   <module>   s   		