ó
¼S]c           @@  sœ  d  d l  m Z d  d l m 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
 m Z d  d l m Z d  d l m Z m Z d  d l m Z d  d l m Z m Z m Z m Z m Z m Z m Z d  d	 l m Z d  d
 l m Z d  d l m  Z  d  d l! m" Z" d  d l# m$ Z$ m% Z% m& Z& m' Z' m( Z( d „  Z) e j* j+ d „  ƒ Z, d „  Z- e j* j+ e j* j. e j/ ƒ  d k o±e j0 j1 d k o°e j0 j2 d k d d ƒd „  ƒ ƒ Z3 d „  Z4 e j* j+ d „  ƒ Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d „  Z< d  „  Z= d! „  Z> d" „  Z? d# „  Z@ d$ „  ZA d% „  ZB d& „  ZC d' „  ZD d( „  ZE d) „  ZF d* d d+ „ ZH d, „  ZI d S(-   i    (   t   absolute_import(   t   deepcopyN(   t   minimal_environt   strip_environ(   t   project_no_dedicated_env(   t   with_directory_contentst/   with_directory_contents_completing_project_file(   t	   conda_api(   t   prepare_without_interactiont	   unpreparet   prepare_in_stagest   PrepareSuccesst   PrepareFailuret   _after_stage_successt   _FunctionPrepareStage(   t   Project(   t   DEFAULT_PROJECT_FILENAME(   t   ProjectCommand(   t   UserConfigOverrides(   t   push_conda_manager_classt   pop_conda_manager_classt   CondaManagert   CondaEnvironmentDeviationst   CondaLockSetc         C@  s   d „  } |  j  d | ƒ d  S(   Nc           S@  s   d g S(   Ns
   python=3.7(    (    (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   mock_env_packages!   s    s4   anaconda_project.env_spec._default_env_spec_packages(   t   setattr(   t   monkeypatchR   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt    _monkeypatch_reduced_environment    s    	c         C@  s'   t  |  ƒ d „  } t t ƒ  | ƒ d  S(   Nc         S@  s¸   t  |  ƒ } t ƒ  } t | d | ƒ} | j g  k s< t ‚ | sH t ‚ | j d  k	 s] t ‚ t d | j ƒ t	 | j
 ƒ k s„ t ‚ t ƒ  t	 | ƒ k sŸ t ‚ | j d  k s´ t ‚ d  S(   Nt   environt   PROJECT_DIR(   R   R   R   t   errorst   AssertionErrort
   env_prefixt   Nonet   dictt   directory_pathR   R   t   command_exec_info(   t   dirnamet   projectR   t   result(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_empty+   s    	'(   R   R   R"   (   R   R(   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_prepare_empty_directory'   s    
	c          C@  s   d „  }  t  t ƒ  |  ƒ d  S(   Nc      
   S@  sb   t  j t ƒ 2 } t |  ƒ } t ƒ  } t | d d d | ƒWd  QXd t | j ƒ k s^ t ‚ d  S(   Nt   modet   BAD_PROVIDE_MODER   s   invalid provide mode(	   t   pytestt   raisest
   ValueErrorR   R   R
   t   reprt   valueR   (   R%   t   excinfoR&   R   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_bad_provide_mode:   s
    	(   R   R"   (   R2   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_prepare_bad_provide_mode9   s    	t   Windowsi   i   t   reasonsE   on Windows, can't delete env dir except on python 3.4, don't know whyc         C@  s'   t  |  ƒ d „  } t t ƒ  | ƒ d  S(   Nc         S@  s|   t  |  ƒ } t ƒ  } t | d | ƒ} | j g  k s< t ‚ | sH t ‚ t | | ƒ } | j g  k sl t ‚ | sx t ‚ d  S(   NR   (   R   R   R   R   R   R	   (   R%   R&   R   R'   t   status(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   unprepare_emptyK   s    	(   R   R   R"   (   R   R7   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_unprepare_empty_directoryD   s    
	
c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s¤   t  |  ƒ } t ƒ  } t | d | ƒ} | s4 t ‚ | j d  k sI t ‚ t | | ƒ } | se t ‚ | j d k sz t ‚ | j d d | j	 j
 g k s  t ‚ d  S(   NR   s   Unable to load the project.s4   %s: variables section contains wrong value type 42, s&   should be dict or list of requirements(   R   R   R   R   R    R!   R	   t   status_descriptionR   t   project_filet   basename(   R%   R&   R   R'   R6   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   unprepare_problemsY   s    	s   variables:
  42(   R   R   (   R<   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_unprepare_problem_projectX   s    	c         C@  s'   t  |  ƒ d „  } t t ƒ  | ƒ d  S(   Nc         S@  s—   t  |  ƒ } t ƒ  } t | d | ƒ} | j g  k s< t ‚ | sH t ‚ t | | d g  ƒ} | j g  k sr t ‚ | s~ t ‚ | j d k s“ t ‚ d  S(   NR   t	   whitelists   Nothing to clean up.(   R   R   R   R   R   R	   R9   (   R%   R&   R   R'   R6   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   unprepare_nothingn   s    	(   R   R   R"   (   R   R?   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_unprepare_nothing_to_doj   s    
	c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s>  t  |  ƒ } t t j ƒ } t | ƒ } | s3 t ‚ | j g  k sH t ‚ | j t | j ƒ d k sj t ‚ | t j k s t ‚ x¸ | j	 ƒ  D]ª \ } } | j j
 | ƒ } | d k r$| | k r$t j ƒ  d k rß d GHqŒ n  | j t j ƒ } | j t j ƒ } d t | ƒ GHd t | ƒ GHn  | | k sŒ t ‚ qŒ Wd  S(   NR   t   PATHR4   s9   prepare changed PATH on Windows and ideally it would not.s   ORIGINAL PATH: s   UPDATED PATH: (   R   R   t   osR   R   R   R   R#   R   t   itemst   gett   platformt   systemt   splitt   pathsepR/   (   R%   R&   t   os_environ_copyR'   t   keyt   originalt   updated(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_system_environ}   s$    "s   
packages: []
        (   R   R   (   RM   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_default_to_system_environ|   s    	c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s    t  |  ƒ } t d d ƒ } t | d | ƒ} | j g  k sB t ‚ | sN t ‚ t d d d | j ƒ t | j ƒ k s{ t ‚ t d d ƒ t | ƒ k sœ t ‚ d  S(   Nt   FOOt   barR   R   (	   R   R   R   R   R   R"   R#   R   R   (   R%   R&   R   R'   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_some_env_var›   s    -s   
variables:
  FOO: {}
(   R   R   (   RQ   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt%   test_prepare_some_env_var_already_setš   s    		c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  st   t  |  ƒ } t d d ƒ } t | d | ƒ} | s: t ‚ | j d  k	 sO t ‚ t d d ƒ t | ƒ k sp t ‚ d  S(   Nt   BARRP   R   (   R   R   R   R   R    R!   R"   R   (   R%   R&   R   R'   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyRQ   ­   s    s   
variables:
  FOO: {}
(   R   R   (   RQ   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt!   test_prepare_some_env_var_not_set¬   s    	c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s¿  t  |  ƒ } t d d ƒ } t | d | d t ƒ} d | j k sH t ‚ d d g g  | j D] } | j j ^ q[ k s| t ‚ | j	 ƒ  } d d g g  | j
 D] } | j j ^ q› k s¼ t ‚ | j sÌ t ‚ | j d |  k så t ‚ d | j k sú t ‚ d d g g  | j D] } | j j ^ qk s.t ‚ | } xc t d	 d
 ƒ D]R } | j	 ƒ  } | d  k	 sht ‚ | j swt ‚ | j d |  k st ‚ | } qDWt d d ƒ t | ƒ k s»t ‚ d  S(   NRS   RP   R   t   keep_going_until_successs   Set up project.RO   t   CONDA_PREFIXR   i   i
   (   R   R   R
   t   Truet   description_of_actionR   t   statuses_before_executet   requirementt   env_vart   executet   statuses_after_executet   failedR   t   rangeR!   R"   R   (   R%   R&   R   t   stageR6   t
   next_staget   i(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_some_env_var_keep_going¾   s&    444
s   
variables:
  FOO: {}
(   R   R   (   Rc   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt,   test_prepare_some_env_var_not_set_keep_going½   s    	c          C@  s(   d „  }  t  i d t 6d d 6|  ƒ d  S(   Nc   
      S@  s^  t  |  ƒ } t d d ƒ } t j | ƒ } t | d | ƒ} | sH t ‚ | j } d | j k sf t ‚ | j | j	 k s~ t ‚ t
 j ƒ  d k r¨ t j j | d ƒ } n t j j | d d ƒ } | j | d | d	 d g k sä t ‚ | j d
 t j d t j ƒ } | j ƒ  \ } }	 | j ƒ  j ƒ  d | j d d ƒ k sBt ‚ |	 j ƒ  d k sZt ‚ d  S(   NRO   RP   R   R4   s
   python.exet   bint   pythons   echo.pyt   foot   stdoutt   stderrs   ['echo.py', '%s', 'foo', 'bar']s   \s   \\t    (   R   R   R   t   environ_get_prefixR   R   R$   t   envt   cwdR#   RE   RF   RB   t   patht   joint   argst   popent
   subprocesst   PIPEt   communicatet   decodet   stript   replace(
   R%   R&   R   t   env_pathR'   t   commandt   commandpatht   pt   outt   err(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_with_app_entryß   s     	$.sb   
variables:
  FOO: {}

commands:
  default:
    conda_app_entry: python echo.py ${PREFIX} foo bar
sH   
from __future__ import print_function
import sys
print(repr(sys.argv))
s   echo.py(   R   R   (   R~   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_prepare_with_app_entryÞ   s
    		c          C@  s/   d „  }  t  i d t 6d d 6d d 6|  ƒ d  S(   Nc         S@  sè   t  |  ƒ } t ƒ  } t | d | d d ƒ} | j g  k sB t ‚ | sN t ‚ t j j | j d ƒ | j	 j
 k sx t ‚ t ƒ  } t | d | d d ƒ} | j g  k s® t ‚ | sº t ‚ t j j | j d ƒ | j	 j
 k sä t ‚ d  S(   NR   t   command_nameRg   s   foo.pyRP   s   bar.py(   R   R   R   R   R   RB   Rn   Ro   R#   R$   Rp   (   R%   R&   R   R'   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   check  s    	*	sc   
commands:
    foo:
       bokeh_app: foo.py
    bar:
       bokeh_app: bar.py
packages:
  - bokeh
s   # foos   foo.pys   # bars   bar.py(   R   R   (   R   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_prepare_choose_command  s    	
c          C@  s(   d „  }  t  i d t 6d d 6|  ƒ d  S(   Nc      	   S@  s£   t  |  ƒ } t d d d t d d d | j ƒ ƒ } t ƒ  } t | d | d | ƒ} | j g  k si t ‚ | su t ‚ t j	 j
 | j d ƒ | j j k sŸ t ‚ d  S(	   Nt   nameRg   t
   attributest	   bokeh_apps   foo.pyt   env_specR   Ry   (   R   R   R"   t   default_env_spec_nameR   R   R   R   RB   Rn   Ro   R#   R$   Rp   (   R%   R&   Ry   R   R'   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR   )  s    !	sZ   
commands:
  decoy:
    description: "do not use me"
    unix: foobar
    windows: foobar
s   # foos   foo.py(   R   R   (   R   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt#   test_prepare_command_not_in_project(  s
    	c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s   t  |  ƒ } t d d ƒ } t | d | d d ƒ} | s@ t ‚ | j d  k sU t ‚ | j sd t ‚ d | j d k s} t ‚ d  S(   NRS   RP   R   R€   t   blahs   Command name 'blah' is not ini    (   R   R   R   R   R    R!   R   (   R%   R&   R   R'   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR   C  s    t   
(   R   R   (   R   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_prepare_bad_command_nameB  s    		c          C@  s$   d t  f d „  ƒ  Y}  t |  ƒ d  S(   Nt   HappyCondaManagerc           B@  s;   e  Z d  „  Z d „  Z d „  Z d e d „ Z d „  Z RS(   c         S@  s   d  S(   N(    (   t   selft   frontend(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   __init__R  s    c         S@  s
   t  i  ƒ S(   N(   R   (   R   t   package_specst   channelst	   platforms(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   resolve_dependenciesU  s    c         S@  s%   t  d d d d d d d d	 d d
 ƒ S(   Nt   summarys   all goodt   missing_packagest   wrong_version_packagest   missing_pip_packagest   wrong_version_pip_packages(    (    (    (    (   R   (   R   t   prefixt   spec(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   find_environment_deviationsX  s    c         S@  s   d  S(   N(    (   R   R™   Rš   t
   deviationst   create(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   fix_environment_deviations`  s    c         S@  s   d  S(   N(    (   R   R™   t   packages(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   remove_packagesc  s    N(	   t   __name__t
   __module__R   R“   R›   R!   RW   Rž   R    (    (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyRŒ   Q  s
   			(   R   R   (   RŒ   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   _push_fake_env_creatorP  s    c           C@  s   t  ƒ  d  S(   N(   R   (    (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   _pop_fake_env_creatori  s    c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  sù   t  j ƒ  } zÞ t ƒ  t |  ƒ } t ƒ  } t | d | d d ƒ} | j d j | j ƒ } | j	 | | k su t
 ‚ t ƒ  } t | d | d d ƒ} | j g  k s« t
 ‚ | s· t
 ‚ | j d j | j ƒ } | j	 | | k sé t
 ‚ Wd  t ƒ  Xd  S(   NR   t   env_spec_nameRg   RP   (   R   t   conda_prefix_variableR£   R   R   R   t	   env_specsRn   R#   R   R   R   R¤   (   R%   R[   R&   R   R'   t   expected_path(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR   n  s    		sc   
name: blah
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
    foo: {}
    bar: {}
(   R   R   (   R   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_prepare_choose_environmentm  s    	c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s…   t  j ƒ  } zj t ƒ  t |  ƒ } t ƒ  } t | d | d d ƒ} | j d j | j ƒ } | j	 | | k su t
 ‚ Wd  t ƒ  Xd  S(   NR   R€   t   helloRg   (   R   R¦   R£   R   R   R   R§   Rn   R#   R   R   R¤   (   R%   R[   R&   R   R'   R¨   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR     s    	sÐ   
name: blah
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
    default: {}
    foo: {}
    bar: {}
commands:
    hello:
       env_spec: foo
       unix: echo hello
       windows: echo hello
(   R   R   (   R   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt+   test_prepare_use_command_specified_env_specŽ  s    	c          C@  s!   d „  }  t  i d t 6|  ƒ d  S(   Nc         S@  s›   t  |  ƒ } t d d ƒ } t | d | ƒ} | j g  k sB t ‚ | sN t ‚ t d d ƒ } | j | ƒ t d d d d d |  ƒ t | ƒ k s— t ‚ d  S(   NRO   RP   R   RS   t   bazR   (   R   R   R   R   R   t   update_environR"   R   (   R%   R&   R   R'   t   other(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   prepare_then_update_environ²  s    s   
variables:
  FOO: {}
(   R   R   (   R¯   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_update_environ±  s    	c          C@  s   d „  }  t  t ƒ  |  ƒ d  S(   Nc         S@  sV   t  |  ƒ } t | ƒ } t j t ƒ  } | j Wd  QXd t | j ƒ k sR t ‚ d  S(   Ns   result property isn't available(	   R   R
   R,   R-   t   RuntimeErrorR'   R/   R0   R   (   R%   R&   t   first_stageR1   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   early_result_grabÆ  s
    (   R   R"   (   R³   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt!   test_attempt_to_grab_result_earlyÅ  s    	c          C@  s   d „  }  t  t ƒ  |  ƒ d  S(   Nc         S@  sV   t  |  ƒ } t | ƒ } t j t ƒ  } | j Wd  QXd t | j ƒ k sR t ‚ d  S(   Ns&   statuses_after_execute isn't available(	   R   R
   R,   R-   R±   R]   R/   R0   R   (   R%   R&   R²   R1   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   early_status_grabÑ  s
    (   R   R"   (   Rµ   (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt#   test_attempt_to_grab_statuses_earlyÐ  s    	c          @  s  i d d 6‰  ‡  f d †  }  t  t ƒ  t ƒ  d g  |  ƒ } d „  } t | | ƒ } | j | j k sj t ‚ t | j t ƒ s‚ t ‚ xW | d  k	 rÛ | j	 ƒ  } | j
 } | j rÂ | j s¾ t ‚ Pn | j sÒ t ‚ | } q… W| j së t ‚ ˆ  d d k st ‚ d  S(   Nt   startt   statec         @  s‚   ˆ  d d k s t  ‚ d ˆ  d <|  j t d d d d  d t ƒ  d t ƒ  d d ƒ g  ƒ ‡  f d	 †  } t t ƒ  t ƒ  d
 g  | ƒ S(   NR¸   R·   t   firstt   statusesR$   R   t	   overridesR¥   c         @  s[   ˆ  d d k s t  ‚ d ˆ  d <|  j t d d
 d g  d t ƒ  d t ƒ  d d	 ƒ g  ƒ d  S(   NR¸   R¹   t   secondRº   R   R   R»   R¥   t   last(    (   R   t
   set_resultR   R"   R   R!   (   R`   (   R¸   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR½   é  s    
+R¼   (    (   R   R¾   R   R!   R"   R   R   (   R`   R½   (   R¸   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   do_firstÞ  s    
		R¹   c         S@  s   t  d ƒ ‚ d  S(   Ns   should not have been called(   R±   (   t   updated_statuses(    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   afterõ  s    R¼   (   R   R"   R   R   R»   R   t
   isinstanceR   R!   R\   R'   R^   (   R¿   R²   RÁ   R`   Ra   R'   (    (   R¸   sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt8   test_skip_after_success_function_when_second_stage_failsÛ  s"    			
c          @  sŽ  i d d 6‰  ‡  f d †  }  t  t ƒ  t ƒ  d g  |  ƒ } ‡  f d †  } t | | ƒ } | j | j k sp t ‚ | j | j k sˆ t ‚ | j | j k s  t ‚ | j | j k s¸ t ‚ | j	 ƒ  xŸ | d  k	 rc| j ƒ  } t | d ƒ r%| j | j j k st ‚ | j | j j k s%t ‚ n  | j } | j rJ| j sFt ‚ Pn | j sZt ‚ | } qÅ W| j stt ‚ ˆ  d d k sŠt ‚ d  S(   NR·   R¸   c         @  s‚   ˆ  d d k s t  ‚ d ˆ  d <|  j t d d d d  d t ƒ  d t ƒ  d d	 ƒ g  ƒ ‡  f d
 †  } t t ƒ  t ƒ  d g  | ƒ S(   NR¸   R·   R¹   Rº   R$   R   R»   R¥   Rg   c         @  s[   ˆ  d d k s t  ‚ d ˆ  d <|  j t d d
 d d  d t ƒ  d t ƒ  d d	 ƒ g  ƒ d  S(   NR¸   R¹   R¼   Rº   R$   R   R»   R¥   RP   (    (   R   R¾   R   R!   R"   R   (   R`   (   R¸   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR½     s    
		R¼   (    (   R   R¾   R   R!   R"   R   R   (   R`   R½   (   R¸   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR¿     s    
		R¹   c         @  s$   ˆ  d d k s t  ‚ d ˆ  d <d  S(   NR¸   R¼   RÁ   (   R   (   RÀ   (   R¸   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyRÁ   &  s    t   _stageRÁ   (   R   R"   R   R   R»   R   RX   R   RY   t	   configureR!   R\   t   hasattrR]   RÄ   R^   R'   (   R¿   R²   RÁ   R`   Ra   R'   (    (   R¸   sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt:   test_run_after_success_function_when_second_stage_succeeds  s.    
		
t   MYDATAc         @  sE   d d l  m ‰ ˆ j ‡  ‡ ‡ ‡ f d †  ƒ } |  j d | ƒ d  S(   Ni    (   t   genc         @  s~   d d d „  ƒ  Y} | ƒ  } d | _  t t j j ˆ ˆ ƒ d ƒ  } | j d ƒ Wd  QXˆ  rk ˆ  |  _ n  ˆ j | ƒ ‚ d  S(   Nt   Resc           B@  s   e  Z RS(    (   R¡   R¢   (    (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyRÊ   I  s   iÈ   t   wt   data(    (   t   codet   openRB   Rn   Ro   t   writet   _hasht   Return(   R   RÊ   t   resR|   (   t   checksumR%   t   filenameRÉ   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   mock_downloader_runG  s    		!s8   anaconda_project.internal.http_client.FileDownloader.run(   t   tornadoRÉ   t	   coroutineR   (   R   R%   RÔ   RÓ   RÕ   (    (   RÓ   R%   RÔ   RÉ   sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   _monkeypatch_download_fileD  s    !c         @  s'   ‡  f d †  } t  i d t 6| ƒ d  S(   Nc         @  si  d d l  m } t ˆ  |  d d ƒd d d g } t |  ƒ } t ƒ  } t | d | f d	 | ƒ} | j | k sx t ‚ g  | j d  ƒ D] } t
 | | ƒ rˆ | ^ qˆ d } t | d | f d	 | ƒ} | j | k sÝ t ‚ t | d | j f d	 | ƒ} | j | k st ‚ t | d | | j d  ƒ d f d	 | ƒ} | j g  k sPt ‚ d
 | j k set ‚ d  S(   Ni    (   t   CondaEnvRequirementRÔ   t   nopesD   missing requirement to run this project: A downloaded file which is s   referenced by FOO.s&     Environment variable FOO is not set.t   provide_whitelistR   RO   (   t=   anaconda_project.requirements_registry.requirements.conda_envRÙ   RØ   R   R   R   R   R   t   requirementsR!   RÂ   R[   t   download_requirementsR   (   R%   RÙ   t   no_fooR&   R   R'   t   reqt   env_req(   R   (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyR   X  s"    		5(s.   
downloads:
  FOO: "http://example.com/nope"

(   R   R   (   R   R   (    (   R   sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   test_provide_whitelistW  s
    (J   t
   __future__R    t   copyR   RB   RE   R,   Rr   t   syst#   anaconda_project.test.environ_utilsR   R   t#   anaconda_project.test.project_utilsR   t,   anaconda_project.internal.test.tmpfile_utilsR   R   t   anaconda_project.internalR   t   anaconda_project.prepareR   R	   R
   R   R   R   R   t   anaconda_project.projectR   t   anaconda_project.project_fileR   t!   anaconda_project.project_commandsR   t2   anaconda_project.requirements_registry.requirementR   t   anaconda_project.conda_managerR   R   R   R   R   R   t   markt   slowR)   R3   t   skipifRF   t   version_infot   majort   minorR8   R=   R@   RN   RR   RT   Rd   R   R‚   Rˆ   R‹   R£   R¤   R©   R«   R°   R´   R¶   RÃ   RÇ   R!   RØ   Râ   (    (    (    sA   lib/python2.7/site-packages/anaconda_project/test/test_prepare.pyt   <module>   sX   4(				7					!	)	!					!	#				-	<