ó
ŒS]c           @@ s£  d  d l  m Z m Z d  d l Z d  d l 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 d  d l m Z m Z m Z m Z m Z m Z d  d l m Z d  d l j Z d  d l m Z m Z m Z m Z d  d l m Z d  d	 l  m! Z! d  d
 l" 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. d  d l/ j0 j1 Z1 d  d l2 j0 j3 Z3 d  d l4 j0 j5 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    ZG d!   ZH d"   ZI d#   ZJ d$   ZK d%   ZL d&   ZM d'   ZN d(   ZO d)   ZP d*   ZQ d+   ZR d,   ZS d-   ZT d.   ZU d/   ZV d0   ZW d1   ZX d2   ZY d3   ZZ d4   Z[ d5   Z\ d6   Z] d7   Z^ d8   Z_ d9   Z` d:   Za d;   Zb d<   Zc d=   Zd d>   Ze d?   Zf d@   Zg dA   Zh dB   Zi dC d dD  Zk dE   Zl dF   Zm dG   Zn dH   Zo dI   Zp dJ   Zq dK   Zr dL   Zs dM   Zt dN   Zu dO   Zv dP   Zw dQ   Zx dR   Zy e jz j{ dS    Z| dT   Z} dU   Z~ e dÓ dÔ d d d dV  Z dW   Z dX   Z dY   Z dZ   Z d[   Z d\   Z d]   Z d^   Z d_   Z d`   Z da   Z db   Z dc   Z dd   Z de   Z df   Z dg   Z dh   Z di   Z dj   Z dk   Z dl   Z dm   Z dn   Z do   Z dp   Z dq   Z dr   Z ds   Z dt   Z du   Z dv   Z  dw   Z¡ dx   Z¢ dy   Z£ dz   Z€ d{   Z¥ d|   ZŠ d}   Z§ d~   Zš d   Z© d   Zª d   Z« d   Z¬ d   Z­ d   Z® d   Z¯ d   Z° d   Z± d   Z² d   Z³ d   ZŽ d   Zµ d   Z¶ d   Z· d   Zž d   Z¹ d   Zº d d  Z» d   ZŒ d   Zœ d   ZŸ d   Z¿ d   ZÀ d   ZÁ d   ZÂ d   ZÃ d   ZÄ d   ZÅ d   ZÆ d   ZÇ d   ZÈ d    ZÉ d¡   ZÊ d¢   ZË d£   ZÌ d€   ZÍ d¥   ZÎ dŠ   ZÏ d§   ZÐ dš   ZÑ d©   ZÒ dª   ZÓ d«   ZÔ d¬   ZÕ d­   ZÖ d®   Z× d¯ ZØ d° ZÙ d± ZÚ d²   ZÛ d d³  ZÜ dŽ   ZÝ dµ   ZÞ d¶   Zß d·   Zà dž   Zá d¹   Zâ dº   Zã d»   Zä dŒ   Zå dœ   Zæ dŸ   Zç d¿   Zè dÀ   Zé dÁ   Zê dÂ   Zë dÃ   Zì dÄ   Zí dÅ   Zî dÆ   Zï dÇ   Zð dÈ   Zñ dÉ   Zò dÊ   Zó dË   Zô dÌ   Zõ dÍ   Zö dÎ   Z÷ dÏ   Zø dÐ   Zù dÑ   Zú dÒ   Zû d S(Õ   i    (   t   absolute_importt   print_functionN(   t   gen(   t   project_ops(   t   CondaManagert   CondaEnvironmentDeviationst   CondaLockSett   CondaManagerErrort   push_conda_manager_classt   pop_conda_manager_class(   t   Project(   t   with_directory_contentst!   with_temporary_script_commandlinet/   with_directory_contents_completing_project_filet   complete_project_file_content(   t    _monkeypatch_reduced_environment(   t   LocalStateFile(   t   DEFAULT_PROJECT_FILENAMEt   ProjectFile(   t   DEFAULT_PROJECT_LOCK_FILENAME(   t   project_no_dedicated_env(   t   FakeFrontend(   t"   monkeypatch_conda_not_to_use_links(   t   fake_serverc         @ s#     f d   } t  t   |  d  S(   Nc         @ s  t  j j |  d  } t j | d t } d | g | j k sF t  d   }  j d |  t j | d t	 } d | g | j k s t   j
   d d l m     f d   }  j d	 |  t j | d t	 }  j
   g  | j k sý t  t  j j t  j j | t   s$t  t  j j t  j j | d
   sLt  t j | d t	 } g  | j k svt  t  j j t  j j | t   st  t  j j t  j j | d
   sÄt  t t | j j     t d g  k sôt  | j d } | j d k st  | j d k s+t  | j d k s@t  t j | d t	 d t	 } | j d } | j d k s}t  | j d k st  d  S(   Nt   foot   make_directorys&   Project directory '%s' does not exist.c         S@ s   t  d   d  S(   Nt   nope(   t   IOError(   t   path(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_failed_makedirs1   s    s   os.makedirsi    (   t   openc          @ sC   |  d j  d  r2 |  d d k r2 t d   n   |  |   Sd  S(   Ni    s   .projectignorei   t   wR   (   t   endswithR   (   t   argst   kwargs(   t	   real_open(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_codecs_open<   s    #s   codecs.opens   .projectignoret   defaultt   anacondat   empty_environment(   R&   (    (    (    (    (   t   osR   t   joinR   t   createt   Falset   problemst   AssertionErrort   setattrt   Truet   undot   codecsR   t   isfileR   t   sortedt   listt	   env_specst   keyst   conda_packagest   pip_packagest   channels(   t   dirnamet   subdirt   projectR   R$   t   spec(   t   monkeypatch(   R#   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_create)   s:    	

'(''0(   R   t   dict(   R>   R?   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_create(   s    2c          C@ s!   d   }  t  i d d 6|   d  S(   Nc      
   S@ sµ   t  j |  d t d d d d d d } g  | j k s< t  t j j t j j |  t	   sc t  | j
 d k sx t  | j t j j |  d  k s t  | j d k s± t  d  S(   NR   t   namet   hellot   icons   something.pngt   descriptions   Hello World(   R   R*   R+   R,   R-   R(   R   R2   R)   R   RB   RD   RE   (   R:   R<   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR?   _   s    !'$s   not a real pngs   something.png(   R   (   R?   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_create_with_properties^   s    		c          C@ s(   d   }  t  i d d 6d d 6|   d  S(   Nc      
   S@ sã   t  j |  d t d d d d d d } g  | j k s< t  t j j t j j |  t	   sc t  t
 t | j j     t
 d g  k s t  | j d } | j d k sµ t  | j d k sÊ t  | j d k sß t  d  S(   NR   RB   RC   RD   s   something.pngRE   s   Hello Worldt   stufft   at   bR   t   bar(   RH   RI   (   R   (   RJ   (   R   R*   R+   R,   R-   R(   R   R2   R)   R   R3   R4   R5   R6   R7   R8   R9   (   R:   R<   R=   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR?   l   s    !'0s   not a real pngs   something.pngsG   
name: stuff
dependencies:
 - a
 - b
 - pip:
   - foo
channels:
 - bar
s   environment.yml(   R   (   R?   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_create_imports_environment_ymlk   s    	
c          C@ s/   d   }  t  i d d 6d d 6d d 6|   d  S(   Nc         S@ sé   t  j |  d t d d d d d d d t } g  | j k sB t  t j j t j j	 |  t
   si t  t t | j j     t d	 g  k s t  | j d	 } | j d k s» t  | j d k sÐ t  | j d k så t  d  S(   NR   RB   RC   RD   s   something.pngRE   s   Hello Worldt   fix_problemsRG   RH   RI   R   RJ   (   RH   RI   (   R   (   RJ   (   R   R*   R+   R/   R,   R-   R(   R   R2   R)   R   R3   R4   R5   R6   R7   R8   R9   (   R:   R<   R=   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR?      s    	'0s   not a real pngs   something.pngs?   
name: foo
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
s   anaconda-project.ymlsG   
name: stuff
dependencies:
 - a
 - b
 - pip:
   - foo
channels:
 - bar
s   environment.yml(   R   (   R?   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pytL   test_create_imports_environment_yml_when_project_yml_exists_and_fix_problems   s    	
c          C@ s/   d   }  t  i d d 6d d 6d d 6|   d  S(   Nc         S@ sI   t  j |  d t d d d d d d d t } d	 g | j k sE t  d  S(
   NR   RB   RC   RD   s   something.pngRE   s   Hello WorldRL   sM   Environment spec 'stuff' from environment.yml is not in anaconda-project.yml.(   R   R*   R+   R,   R-   (   R:   R<   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR?   ¯   s    	s   not a real pngs   something.pngs?   
name: foo
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
s   anaconda-project.ymlsG   
name: stuff
dependencies:
 - a
 - b
 - pip:
   - foo
channels:
 - bar
s   environment.yml(   R   (   R?   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt;   test_create_no_import_environment_yml_when_not_fix_problems®   s    	

c          C@ s(   d   }  t  i d d 6d d 6|   d  S(   Nc         S@ sc   t  j |  d t } t j j |  t  } d t g | j k sF t  t j j	 |  s_ t  d  S(   NR   s*   %s: invalid package specification: b $ 1.0(
   R   R*   R+   R(   R   R)   R   R,   R-   R2   (   R:   R<   t   project_filename(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR?   Î   s    s   not a real pngs   something.pngs&   
name: stuff
dependencies:
 - b $ 1.0
s   environment.yml(   R   (   R?   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt(   test_create_with_invalid_environment_ymlÍ   s
    	c          C@ s!   d   }  t  i d d 6|   d  S(   Nc         S@ s  t  j |  d t d d d d } g  | j k s6 t  g  | j k sK t  t j j t j j	 |  t
   sr t  t t | j j     t d g  k s¢ t  | j d } | j d	 k sÄ t  | j d
 k sÙ t  d g t | j j    k sý t  d  S(   NR   RB   RC   RE   s   Hello WorldR%   R&   s	   foo.ipynb(   R&   (    (   R   R*   R+   R,   R-   t   suggestionsR(   R   R2   R)   R   R3   R4   R5   R6   R7   R9   t   commands(   R:   R<   R=   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR?   à   s    !'0s   {}s	   foo.ipynb(   R   (   R?   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_create_imports_notebookß   s    	c          C@ s!   d   }  t  i d d 6|   d  S(   Nc         S@ s  t  j |  d t } g  | j k s* t  t j j t j j |  t	   sQ t  | j
 t j j |   k sr t  | j d  k s t  t  j | d d d d d d } | sŽ t  | j
 d k sÉ t  | j t j j |  d  k sí t  | j d k st  t  j | d d d d	 d d
 } | s/t  | j
 d k sDt  | j t j j |  d  k sht  | j d
 k s}t  d  S(   NR   RB   RC   RD   s   something.pngRE   t   HELLOOOOu   hellou   something.pngu   HELLOOOO(   R   R*   R+   R,   R-   R(   R   R2   R)   R   RB   t   basenameRD   t   Nonet   set_propertiesRE   (   R:   R<   t   result(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   checkò   s    '!!$!$s   not a real pngs   something.png(   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_set_propertiesñ   s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sT   t  |   } t j | d d } | s. t  d | j j g | j k sP t  d  S(   NRB   R   sZ   %s: variables section contains wrong value type 42, should be dict or list of requirements(   R
   R   RW   R-   t   project_fileRU   t   errors(   R:   R<   t   status(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_set_properties_with_project_file_problems  s    		c          C@ s   d   }  t  t   |   d  S(   Nc         S@ s9  t  j |  d t } g  | j k s* t  t j j t j j |  t	   sQ t  | j
 t j j |   k sr t  | j d  k s t  t  j | d d } t t |   | s¹ t  d | j k sÎ t  d t	 g | j k sê t  g  | j k sÿ t  | j
 t j j |   k s t  | j d  k s5t  d  S(   NR   RB   t    s!   Failed to set project properties.s5   %s: name: field is an empty or all-whitespace string.(   R   R*   R+   R,   R-   R(   R   R2   R)   R   RB   RU   RD   RV   RW   t   printt   reprt   status_descriptionR\   (   R:   R<   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    '!!(   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_set_invalid_name  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         S@ s8  t  j |  d t } g  | j k s* t  t j j t j j |  t	   sQ t  | j
 t j j |   k sr t  | j d  k s t  t  j | d d } | s© t  d | j k sŸ t  d t j j |  d  g | j k sé t  g  | j k sþ t  | j
 t j j |   k st  | j d  k s4t  d  S(   NR   RD   t   foobars!   Failed to set project properties.s   Icon file %s does not exist.(   R   R*   R+   R,   R-   R(   R   R2   R)   R   RB   RU   RD   RV   RW   Rb   R\   (   R:   R<   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   0  s    '!+!(   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_set_invalid_icon/  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s²   t  |   } t j | d  d d g t d d   } | s? t  | j | j d d d } | j d d k st t  | j | j d d d } | j j	 d  d  k s® t  d  S(   NR   t   bazRJ   t   env_vari    R%   (
   R   R   t   add_variablesRV   R@   R-   t   find_requirementst   default_env_spec_namet   optionst   get(   R:   R<   R]   t   req(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_add_varE  s    't    (   R   R   (   Rn   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_variablesD  s    	
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s·   t  |   } t j | d d d g t d d   } | s? t  | j d d d d } | j d d k sq t  g  | j d d d k s t  g  | j d d d k s³ t  d  S(   Nt   myspecR   Rf   RJ   Rg   i    R%   (   R   R   Rh   R@   R-   Ri   Rk   (   R:   R<   R]   Rm   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRn   S  s    '!s}   
env_specs:
    default:
      packages: [python]
      channels: []
    myspec:
      packages: [python]
      channels: []
(   R   R   (   Rn   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_variables_to_env_specR  s    	

c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sY   t  |   } t j | d d d g t d d   } d | j k sH t  | sU t  d  S(   NR   R   Rf   RJ   s$   Environment spec nope doesn't exist.(   R   R   Rh   R@   Rb   R-   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRn   l  s    'Ro   (   R   R   (   Rn   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_variables_bad_env_speck  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s  t  |   } t j | d  d d g  t j | j  } t d d  d d  d d   | j d g  k sj t	  | j d d g  d k s t	  t
 j |   } | j d d g  d  k s» t	  | j d d g  d  k sÜ t	  | j d d g  d  k sý t	  d  S(   NR   Rf   t   presett	   variablest	   downloadst   datafiles   http://localhost:8000/data.tgz(   R   R   Rh   RV   R   t   load_for_directoryt   directory_pathR@   t	   get_valueR-   R   (   R:   R<   t	   re_loadedt   local_state(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_set_varv  s    3!!!sO   variables:
  preset: null
downloads:
  datafile: http://localhost:8000/data.tgz(   R   R   (   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt$   test_add_variables_existing_downloadu  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc   	      S@ s®  t  |   } t j | d  d d d d d g t d d d d d d   } | sT t  t j | j  } | j	 d	 d g  } t
 | t  s t  d
 | k s¢ t  | d
 d k sž t  | j	 d	 d g  } t
 | t  sâ t  d | k sô t  | d d k s
t  | j	 d	 d g  } t
 | t  s4t  d | k sFt  | d d k s\t  | j	 d	 d g  } | d k st  | j	 d	 d g  } | d k sªt  d  S(   NR   Rf   t   blaht   woott   woot2RJ   t   quxt   updatedRu   t	   somethingi*   R%   t	   unchangedt   world(   R   R   Rh   RV   R@   R-   R   Rx   Ry   Rz   t
   isinstance(	   R:   R<   R]   R{   R   Rf   R   R   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR}     s*    s¹   variables:
  foo: { something: 42 }
  baz: { default: "hello" }
  blah: { default: "unchanged" }
  woot: "world"
  woot2: "changed"
downloads:
  datafile: http://localhost:8000/data.tgz(   R   R   (   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_add_variables_existing_options  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sò   t  |   } t j | d  d d g  | j j | j  } t   | j d g  k s[ t	  | j d d g  d  k s| t	  | j d d g  d  k s t	  t
 j |   } | j d d g  d  k sÍ t	  | j d d g  d  k sî t	  d  S(   NR   RJ   Ru   (   R   R   t   remove_variablesRV   R[   Rx   Ry   R@   Rz   R-   R   (   R:   R<   R{   R|   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_remove_varŽ  s    !!!!s    variables:
  foo: baz
  bar: qux(   R   R   (   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_remove_variables³  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s:  t  |   } | j } | j d d d g  t d d d d  k sH t  | j d d d d g  d  k	 so t  | j d d d d g  d  k	 s t  t j | d d d g  | j j | j	  } | j d d d g  i  k sè t  | j d d d d g  d  k st  | j d d d d g  d  k s6t  d  S(   NR5   Rq   Ru   R   Rf   RJ   R   (
   R   R[   Rz   R@   R-   RV   R   R   Rx   Ry   (   R:   R<   t   pfR{   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR   Ç  s    	3''$'sŠ   
env_specs:
  default:
    packages: [python]
    channels: []
  myspec:
    packages: [python]
    channels: []
    variables:
      foo: baz
      bar: qux
        (   R   R   (   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_remove_variables_with_env_specÆ  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc      	   S@ s  t  |   } t j | d  d d g t d d d d   } | sE t  t j |   } | j d d g  d  k su t  | j d d g  d  k s t  t j	 | d  d d	 g  } | sœ t  t j |   } | j d d g  d k sí t  | j d d g  d k st  d  S(
   NR   Rf   t   noR   Ru   RJ   R   (   R   RJ   (   Rf   R   (
   R   R   Rh   RV   R@   R-   R   Rx   Rz   t   set_variables(   R:   R<   R]   R|   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR}   ç  s    -!!!s   variables:
  preset: null(   R   R   (   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_set_variablesæ  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sh   t  |   } t j | d  d d	 g  } | s4 t  | j d k sI t  | j d d g k sd t  d  S(
   NR   RJ   Rf   R   s   Could not set variables.s+   Variable foo does not exist in the project.s+   Variable baz does not exist in the project.(   R   RJ   (   Rf   R   (   R   R   R   RV   R-   Rb   R\   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR}   þ  s    Ro   (   R   R   (   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_set_variables_nonexistentý  s    	
c         C@ s:   d   } |  j  d |  d   } t i d t 6|  d  S(   Nc         S@ s#   d d l  m } | j d   d  S(   Ni    (   t	   conda_apit   error_from_conda_create(   t   anaconda_project.internalR   t
   CondaError(   t   prefixt   pkgsR9   t   stdout_callbackt   stderr_callbackR   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_create  s    s*   anaconda_project.internal.conda_api.createc         S@ s   t  |   } t j | d  d	 d
 g  } | s4 t  t j j |  d d  } | j d | k se t  | j	 d | g k s t  d  S(   NR   RJ   Rf   R   t   envsR%   s;   '%s' doesn't look like it contains a Conda environment yet.s;   Failed to create environment at %s: error_from_conda_create(   R   RJ   (   Rf   R   (
   R
   R   R   RV   R-   R(   R   R)   Rb   R\   (   R:   R<   R]   t   expected_env_path(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR}     s    Ro   (   R.   R   R   (   R>   R   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt,   test_set_variables_cannot_create_environment  s    		
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s'  t  |   } t j | d  d d g  } | s3 t  t j | d  d d g  } | sZ t  t j |   } | j d d g  d k s t  | j d d g  d k s« t  t j	 | d  d d g  } | sÒ t  t j |   } | j d d g  d  k st  | j d d g  d  k s#t  d  S(   NR   Rf   R   R   Ru   (   R   R   (   Rf   R   (
   R   R   Rh   RV   R-   R   R   Rx   Rz   t   unset_variables(   R:   R<   R]   R|   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_unset_var   s    !!!s   variables:
  preset: null(   R   R   (   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unset_variables  s    	c          C@ sG   t  j   d   }  z" t  j   t i d t 6|   Wd  t  j   Xd  S(   Nc      	   S@ s·  t  |   } t j | d  d d g t d d d d   } | sE t  t j |   } | j d d g  d  k su t  | j d d g  d  k s t  t	 t
 j   j    t	   k sœ t  t j | d  d d	 g  } | sä t  t j |   } | j d d g  d  k st  | j d d g  d  k s5t  t	 t
 j   j    t	 d d g  k set  t j | d  d d g  } | st  t	 t
 j   j    t	   k s³t  d  S(
   Nt   foo_PASSWORDt
   baz_SECRETR   R   Ru   RJ   R   (   R¡   RJ   (   R¢   R   (   R   R   Rh   RV   R@   R-   R   Rx   Rz   t   sett   keyringt   fallback_datat   valuesR   R   (   R:   R<   R]   R|   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR}   <  s"    !!'!!0s   variables:
  preset: null(   R€   t   reset_keyring_modulet   enable_fallback_keyringR   R   t   disable_fallback_keyring(   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt&   test_set_and_unset_variables_encrypted9  s    
	
c          C@ sG   t  j   d   }  z" t  j   t i d t 6|   Wd  t  j   Xd  S(   Nc         S@ s8  t  |   } t j | d  d d d g t d d d d d d   } | sN t  t j |   } | j d d g  d  k s~ t  | j d d g  d  k s t  | j d d g  d  k sÀ t  t	 t
 j   j    t	   k sç t  t j | d  d d d g  } | st  t j |   } | j d d g  d  k sAt  | j d d g  d  k sbt  | j d d g  d
 k st  t	 t
 j   j    t	 d d	 g  k s³t  t j | d  d d d g  } | sÝt  t j |   } t	 t
 j   j    t	   k st  | j d d g  d  k s4t  d  S(   NR¡   R¢   t   wooR   R   R   Ru   RJ   R   t   w00t(   R¡   RJ   (   R¢   R   (   R«   R¬   (   R   R   Rh   RV   R@   R-   R   Rx   Rz   R£   R€   R¥   RŠ   R   R   (   R:   R<   R]   R|   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR}   d  s,    !!!'!!!0's   variables:
  preset: null(   R€   R§   Rš   R   R   R©   (   R}   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt+   test_set_and_unset_variables_some_encrypteda  s    
	 
c         @ s+     f d   } t  i d   t 6|  d  S(   Nc         @ st   t  |   } t j | d   d  } | s0 t  | j j | j  } | j d d g  } |   d k sp t  d  S(   NR%   s   echo "test"RR   (   R   R   t   add_commandR-   R[   Rx   Ry   Rz   (   R:   R<   RX   R{   t   command(   t   command_type(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_add_command  s    s)   commands:
  default:
    %s: echo "pass"
(   R   R   (   R°   R±   (    (   R°   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _test_add_command_line  s
    	c           C@ s   t  d  d  S(   Nt   unix(   R²   (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_command_shell  s    c           C@ s   t  d  d  S(   Nt   windows(   R²   (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_command_windows£  s    c         C@ s%   d   } t  i d |  t 6|  d  S(   Nc         S@ s   t  |   } t j | d d d  } | s0 t  t j | j  } | j d d g  } | d d k sm t  | d d k s t  d  S(   NR%   Rµ   s   echo "test"RR   R³   s   echo "pass"(   R   R   R®   R-   R   Rx   Ry   Rz   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   š  s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   R°   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt"   _test_add_command_windows_to_shell§  s
    	
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s¥   t  |   } t j | d d d  } | s0 t  t j | j  } | j d d g  } t | j	    d k su t  | d d k s t  | d d k s¡ t  d  S(   Nt
   bokeh_testt	   bokeh_apps   file.pyRR   i   t   env_specR%   (
   R   R   R®   R-   R   Rx   Ry   Rz   t   lenR6   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   º  s    Ro   (   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_command_bokeh¹  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s¥   t  |   } t j | d d d  } | s0 t  t j | j  } | j d d g  } t | j	    d k su t  | d d k s t  | d d k s¡ t  d  S(   NRž   R¹   s   file.pyRR   i   Rº   R%   (
   R   R   R®   R-   R   Rx   Ry   Rz   R»   R6   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   É  s    sG   commands:
  bokeh_test:
    bokeh_app: replaced.py
packages:
  - bokeh
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_add_command_bokeh_overwritesÈ  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s   t  |   } t j | d d d d d } | s6 t  t j | j  } | j d d g  } | d d k ss t  | d d k s t  d  S(   NRž   R¹   s   file.pyt   env_spec_nameR   RR   Rº   (   R   R   R®   R-   R   Rx   Ry   Rz   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   Þ  s    s`   env_specs:
  foo: { "packages" : ["bokeh"] }
commands:
  bokeh_test:
    bokeh_app: replaced.py
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_command_sets_env_specÝ  s    	
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s   t  |   } t j | d d d d d  } | s6 t  t j | j  } | j d d g  } | d d k ss t  | d d k s t  d  S(   NRž   R¹   s   file.pyRŸ   RR   Rº   R   (	   R   R   R®   RV   R-   R   Rx   Ry   Rz   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   ò  s    st   env_specs:
  foo: { "packages" : ["bokeh"] }
commands:
  bokeh_test:
    env_spec: "foo"
    bokeh_app: replaced.py
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_add_command_leaves_env_specñ  s    	
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sŠ  t  |   } | j g  k s! t  | j g  k s6 t  t | j d j  d k sX t  t j | d d d d d } | s | j	 g  k s t  n  | s  t  t
 j | j  } | j d d g  } | d d k sÝ t  | d d k só t  | j d	 d d
 g  d  k st  | j g  k s,t  | j d | j j d g k sRt  | j   | j j   t
 j | j  } | j d	 d d
 g  d g k s¢t  d  S(   NRJ   i    Rž   R¹   s   file.pyRŸ   RR   Rº   R5   t   packagess   %s: Command sD   bokeh_test uses env spec bar which does not have the packages: bokeht   bokeh(   R   R,   R-   RQ   R»   R5   t   conda_package_names_setR   R®   R\   R   Rx   Ry   Rz   RV   R[   RU   t   fix_problems_and_suggestionst   save(   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±     s(    "$
s~   env_specs:
  foo: { "packages" : ["bokeh"] }
  bar: {}
commands:
  bokeh_test:
    env_spec: "foo"
    bokeh_app: replaced.py
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_add_command_generates_env_spec_suggestion  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc      	   S@ s©   t  |   } t j | d d d d d  d d  } | s< t  t j | j  } | j d d g  } | d d k sy t  | d d k s t  | d t	 k s¥ t  d  S(	   NRž   R¹   s   file.pyRŸ   t   supports_http_optionsRR   Rº   R   (
   R   R   R®   RV   R-   R   Rx   Ry   Rz   R+   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   /  s    s   env_specs:
  foo: { "packages" : ["bokeh"] }
commands:
  bokeh_test:
    supports_http_options: false
    bokeh_app: replaced.py
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt-   test_add_command_leaves_supports_http_options.  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc      	   S@ s¥   t  |   } t j | d d d d d  d d  } | s< t  t j | j  } | j d d g  } | d d k sy t  | d d k s t  d | k s¡ t  d  S(	   NRž   R¹   s   file.pyRŸ   RÇ   RR   Rº   R   (	   R   R   R®   RV   R-   R   Rx   Ry   Rz   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   F  s    s`   env_specs:
  foo: { "packages" : ["bokeh"] }
commands:
  bokeh_test:
    bokeh_app: replaced.py
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt3   test_add_command_leaves_supports_http_options_unsetE  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc      	   S@ s©   t  |   } t j | d d d d d  d t } | s< t  t j | j  } | j	 d d g  } | d d k sy t  | d d k s t  | d t k s¥ t  d  S(	   NRž   R¹   s   file.pyRŸ   RÇ   RR   Rº   R   (
   R   R   R®   RV   R/   R-   R   Rx   Ry   Rz   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   \  s    s   env_specs:
  foo: { "packages" : ["bokeh"] }
commands:
  bokeh_test:
    supports_http_options: false
    bokeh_app: replaced.py
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt/   test_add_command_modifies_supports_http_options[  s    	c          C@ s(   d   }  t  i d t 6d d 6|   d  S(   Nc         S@ sÐ   t  |   } t j | d d d  } g  | j k s9 t  | sE t  t j | j  } | j d d g  } t	 | j
    d k s t  | d d k s  t  | d d k s¶ t  | d t k sÌ t  d  S(	   Nt   notebook_testt   notebooks	   foo.ipynbRR   i   Rº   R%   t   registers_fusion_function(   R   R   R®   R\   R-   R   Rx   Ry   Rz   R»   R6   R/   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   s  s    Ro   s   
{
  "cells" : [ { "source" : [ "@fusion.register\n", "def foo():\n", "  pass\n" ] } ]
}
                                                     s	   foo.ipynb(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_command_notebookr  s
    	c          C@ s!   d   }  t  i d d 6|   d  S(   Nc         S@ s~   t  |   } t j | d d d  } t | j  d k s? t  | sL t  d | j d k se t  | j d k sz t  d  S(   NR%   RÌ   s	   foo.ipynbi    s   Failed to read or parses   Unable to add the command.(   R   R   R®   R»   R\   R-   Rb   (   R:   R<   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±     s    s   not valid jsons	   foo.ipynb(   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_add_command_broken_notebook  s    	c          C@ s   d   }  t  t   |   d  S(   Nc      	   S@ sY   t  |   } t j t   } t j | d d d  Wd  QXd t | j  k sU t  d  S(   NR%   R   s   echo "test"s   Invalid command type foo(	   R   t   pytestt   raisest
   ValueErrorR   R®   t   strt   valueR-   (   R:   R<   t   excinfo(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±     s    (   R   R@   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_command_invalid_type  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s   t  |   } t j | d d d  } d | j j g | j k sF t  t j | j	  } | j
 d d g  } | d d k s t  d | k s t  d  S(   NR%   R¹   s   myapp.pysS   %s: command 'default' has multiple commands in it, 'bokeh_app' can't go with 'unix'RR   R³   s   echo "pass"(   R   R   R®   R[   RU   R\   R-   R   Rx   Ry   Rz   (   R:   R<   RX   R{   R¯   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR±   £  s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   R±   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_add_command_conflicting_type¢  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sW   t  |   } t j | d d d  } | s1 t  d | j j g | j k sS t  d  S(   NR   R³   s
   echo hellosZ   %s: variables section contains wrong value type 42, should be dict or list of requirements(   R
   R   t   update_commandR-   R[   RU   R\   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ¶  s    s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_update_command_with_project_file_problemsµ  s    	
c          C@ s   d   }  t  t   |   d  S(   Nc      	   S@ sY   t  |   } t j t   } t j | d d d  Wd  QXd t | j  k sU t  d  S(   NR%   R   s   echo "test"s   Invalid command type foo(	   R   RÐ   RÑ   RÒ   R   RØ   RÓ   RÔ   R-   (   R:   R<   RÕ   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ä  s    (   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_update_command_invalid_typeÃ  s    	c          @ s7   t  d d      f d   }  t i   t 6|   d  S(   Ns    commands:
  # this is a comment
s3     foo:
    # another comment
    unix: echo "pass"
c         @ sõ   t  |   } t j | d d d } t | j  t | j  | sJ t  | j j   t	 t
 j j |  t   U } | j   }   j d d  | k s t  d | k s± t  d | k sÃ t  Wd  QX| j d sÜ t  d | j k sñ t  d  S(   NR   t   new_nameRJ   s   foo:s   bar:s   # this is a comments   # another comment(   R   R   RØ   R`   Rb   R\   R-   R[   t   loadR   R(   R   R)   R   t   readt   replaceRR   (   R:   R<   R]   t	   proj_filet   contents(   t   file_content(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ñ  s    (   R   R   R   (   RY   (    (   Rá   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_update_command_renameÍ  s    
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sV   t  |   } t j t   } t j | d d  Wd  QXd t | j  k sR t  d  S(   NR%   R¹   s   must also specify the command(	   R   RÐ   RÑ   RÒ   R   RØ   RÓ   RÔ   R-   (   R:   R<   RÕ   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   å  s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_update_command_no_commandä  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sb   t  |   } g  | j k s! t  t j | d d d  } | sF t  d g | j k s^ t  d  S(   Nt   myappR¹   s   myapp.pys   No command 'myapp' found.(   R   R,   R-   R   RØ   R\   (   R:   R<   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ó  s
    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt"   test_update_command_does_not_existò  s    		c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s	  t  |   } g  | j k s! t  d | j k s6 t  | j d } | j d  k sX t  | j d k sm t  t j | d d d  } | s t  d | j k sŠ t  | j d } | j d k sÈ t  t	 j
 | j  } | j d d g  } | d d k st  d  S(   NR%   s   echo "pass"R¹   s   myapp.pyRR   (   R   R,   R-   RR   R¹   RV   t   unix_shell_commandlineR   RØ   R   Rx   Ry   Rz   (   R:   R<   R¯   RX   R{   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt$   test_update_command_conflicting_type  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sô   t  |   } g  | j k s! t  d | j k s6 t  | j d } | j d k sX t  t j | d d d  } | s| t  d | j k s t  | j d } | j d k s³ t  t j | j	  } | j
 d d g  } | d d k sð t  d  S(   NR%   s   echo "pass"R³   s   echo "blah"RR   (   R   R,   R-   RR   Ræ   R   RØ   R   Rx   Ry   Rz   (   R:   R<   R¯   RX   R{   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY      s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_update_command_same_type  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sÌ   t  |   } g  | j k s! t  d | j k s6 t  | j d } | j d k sX t  t j | d d d  } | s| t  d | j k s t  | j d } | j d k s³ t  | j d k sÈ t  d  S(   NR%   s   echo "pass"Rµ   s   echo "blah"(   R   R,   R-   RR   Ræ   R   RØ   t   windows_cmd_commandline(   R:   R<   R¯   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ;  s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt/   test_update_command_add_windows_alongside_shell:  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sÌ   t  |   } g  | j k s! t  d | j k s6 t  | j d } | j d k sX t  t j | d d d  } | s| t  d | j k s t  | j d } | j d k s³ t  | j d k sÈ t  d  S(   NR%   s   echo "blah"R³   s   echo "pass"(   R   R,   R-   RR   Ré   R   RØ   Ræ   (   R:   R<   R¯   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   S  s    s.   commands:
  default:
    windows: echo "blah"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt/   test_update_command_add_shell_alongside_windowsR  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s±   t  |   } g  | j k s! t  d | j k s6 t  | j d } | j d k sX t  t j | d  } | sv t  d | j k s t  | j d } | j d k s­ t  d  S(   NR%   s   echo "pass"(   R   R,   R-   RR   Ræ   R   RØ   (   R:   R<   R¯   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   k  s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_update_command_empty_updatej  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sï   t  |   } g  | j k s! t  d | j k s6 t  | j d } | j d  k sX t  | j d k sm t  t j | d d d  } | s t  d | j	 j
 g | j k sŽ t  d | j k sÉ t  | j d } | j d k së t  d  S(   NR%   s   echo "pass"RÌ   i*   sF   %s: command 'default' attribute 'notebook' should be a string not '42'(   R   R,   R-   RR   R¹   RV   Ræ   R   RØ   R[   RU   R\   (   R:   R<   R¯   RX   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s+   commands:
  default:
    unix: echo "pass"
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt'   test_update_command_to_non_string_value  s    	t   MYDATAc         @ s2   t  j     f d    } |  j d |  d  S(   Nc         @ s~   d d d     Y} |   } d | _  t t j j    d   } | j d  Wd  QX  rk   |  _ n  t j |   d  S(   Nt   Resc           B@ s   e  Z RS(    (   t   __name__t
   __module__(    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRï     s   iÈ   R   t   data(    (	   t   codeR   R(   R   R)   t   writet   _hashR   t   Return(   t   selfRï   t   rest   out(   t   checksumR:   t   filename(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_downloader_run  s    		!s8   anaconda_project.internal.http_client.FileDownloader.run(   R   t	   coroutineR.   (   R>   R:   Rû   Rú   Rü   (    (   Rú   R:   Rû   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _monkeypatch_download_file  s    c         C@ s&   t  j d    } |  j d |  d  S(   Nc         S@ s8   d d d     Y} |   } d | _  t j |   d  S(   NRï   c           B@ s   e  Z RS(    (   Rð   Rñ   (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRï   °  s   i  (    (   Ró   R   Rö   (   R÷   Rï   Rø   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRü   ®  s    		s8   anaconda_project.internal.http_client.FileDownloader.run(   R   Rý   R.   (   R>   R:   Rü   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    _monkeypatch_download_file_fails­  s    	c         C@ s&   t  j d    } |  j d |  d  S(   Nc         S@ s#   |  j  j d  t j d    d  S(   Ns   Nope nope nope(   t   _errorst   appendR   Rö   RV   (   R÷   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRü   »  s    s8   anaconda_project.internal.http_client.FileDownloader.run(   R   Rý   R.   (   R>   R:   Rü   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt5   _monkeypatch_download_file_fails_to_get_http_responseº  s    c         @ s#     f d   } t  t   |  d  S(   Nc         @ sŽ   t    |   t |   } t j | d  d d  } t j j t j j |  d   sX t	  | sd t	  g  | j
 k sy t	  t |   } i d d 6| j j d d g  k s° t	  d  S(   NRî   s   http://localhost:123456t   urlRv   (   Rþ   R   R   t   add_downloadRV   R(   R   R2   R)   R-   R\   R[   Rz   (   R:   R<   R]   t   project2(   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ä  s    '(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_downloadÃ  s    c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ sº   t    |   t |   } t j | d d d  } t j j t j j |  d   sX t  | sd t  g  | j	 k sy t  t |   } i d d 6| j
 j d d d d g  k s¶ t  d  S(   NRq   Rî   s   http://localhost:123456R  R5   Rv   (   Rþ   R   R   R  R(   R   R2   R)   R-   R\   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ö  s    's   
env_specs:
    default:
      packages: [python]
      channels: []
    myspec:
      packages: [python]
      channels: []
        (   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_download_to_env_specÕ  s    
c         @ s#     f d   } t  t   |  d  S(   Nc         @ sÙ   d } t    |  |  t |   } t j | d  d d |  } t j j t j j |  |   sd t	  | sp t	  g  | j
 k s t	  t |   } | j j d d g  } | d d k s¿ t	  | d | k sÕ t	  d  S(   Nt   TEST_FILENAMERî   s   http://localhost:123456Rv   R  Rû   (   Rþ   R   R   R  RV   R(   R   R2   R)   R-   R\   R[   Rz   (   R:   t   FILENAMER<   R]   R  t   requirement(   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   õ  s    '(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_download_with_filenameô  s    c         @ s#     f d   } t  t   |  d  S(   Nc      	   @ så   d } t    |  d d t |   } t j | d  d d d d d d } t j j t j j |  |   sp t	  | s| t	  g  | j
 k s t	  t |   } | j j d d g  } | d	 d k sË t	  | d d k sá t	  d  S(
   NRî   Rú   t   DIGESTs   http://localhost:123456t   hash_algorithmt   md5t
   hash_valueRv   R  (   Rþ   R   R   R  RV   R(   R   R2   R)   R-   R\   R[   Rz   (   R:   R	  R<   R]   R  R
  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   
  s    '(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_download_with_checksum	  s    c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s  t    |  d d t |   } g  | j k s4 t  t d d d d  t | j j d d g   k sm t  t j | d  d d  } t
 j j t
 j j |  d   s¬ t  | sž t  g  | j k sÍ t  t |   } t d d d d  t | j j d d g   k st  d  S(   NRû   Rd   R  s   http://localhost:56789Rv   Rî   s   http://localhost:123456(   Rþ   R   R,   R-   R@   R[   Rz   R   R  RV   R(   R   R2   R)   R\   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    $'sJ   downloads:
    MYDATA: { url: "http://localhost:56789", filename: foobar }(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt&   test_add_download_which_already_exists  s
    c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s  t    |  d d t |   } g  | j k s4 t  t d d d d  t | j j d d g   k sm t  t j | d  d d d d } t
 j j t
 j j |  d   s² t  | sŸ t  g  | j k sÓ t  t |   } t d d d d  t | j j d d g   k st  d  S(	   NRû   t   bazquxR  s   http://localhost:56789Rd   Rv   Rî   s   http://localhost:123456(   Rþ   R   R,   R-   R@   R[   Rz   R   R  RV   R(   R   R2   R)   R\   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   =  s    $'sJ   downloads:
    MYDATA: { url: "http://localhost:56789", filename: foobar }(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt1   test_add_download_which_already_exists_with_fname<  s
    c         @ s#     f d   } t  t   |  d  S(   Nc         @ sÖ   t    |   t |   } t j | d  d d  } t j j t j j |  d   sY t	  | sf t	  d g | j
 k s~ t	  t |   } | j j d d g  d  k s® t	  | j j d d g  d  k sÒ t	  d  S(   NRî   s   http://localhost:123456s<   Error downloading http://localhost:123456: response code 404Rv   (   Rÿ   R   R   R  RV   R(   R   R2   R)   R-   R\   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   [  s    ($(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_download_failsZ  s    c         @ s#     f d   } t  t   |  d  S(   Nc         @ sÖ   t    |   t |   } t j | d  d d  } t j j t j j |  d   sY t	  | sf t	  d g | j
 k s~ t	  t |   } | j j d d g  d  k s® t	  | j j d d g  d  k sÒ t	  d  S(   NRî   s   http://localhost:123456s   Nope nope nopeRv   (   R  R   R   R  RV   R(   R   R2   R)   R-   R\   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   o  s    ($(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt,   test_add_download_fails_to_get_http_responsen  s    c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sÓ   t  |   } t j | d  d d  } t j j t j j |  d   sL t  | sY t  d | j	 j
 g | j k s{ t  t  |   } | j	 j d d g  d  k s« t  | j	 j d d g  d  k sÏ t  d  S(   NRî   s   http://localhost:123456sZ   %s: variables section contains wrong value type 42, should be dict or list of requirementsRv   (   R   R   R  RV   R(   R   R2   R)   R-   R[   RU   R\   Rz   (   R:   R<   R]   R  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    ($s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt,   test_add_download_with_project_file_problems  s    	c         C@ s!   d   } t  i d t 6|  d  S(   Nc         S@ s€   t  |   } t j | d  d d d  } | s3 t  g  | j k sH t  t  |   } | j j d d g  d  k sx t  t j	 j
 t j	 j |  d   s  t  d  S(   NRî   t   prepare_resultRv   (   R   R   t   remove_downloadRV   R-   R\   R[   Rz   R(   R   R2   R)   (   R:   R<   R]   R  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    $s0   
downloads:
  MYDATA: "http://localhost:123456"
(   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_remove_download  s
    	c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ só   t    |   t |   } t j |  } | s4 t  t j j t j j |  d   s[ t  t	 j
 | d  d d | } | s t  g  | j k s t  t j j t j j |  d   s¿ t  t |   } | j j d d g  d  k sï t  d  S(   NRî   R  Rv   (   Rþ   R   t   preparet   prepare_without_interactionR-   R(   R   R2   R)   R   R  RV   R\   R[   Rz   (   R:   R<   RX   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ®  s    '(s0   
downloads:
  MYDATA: "http://localhost:123456"
(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_remove_download_with_prepare­  s
    c         C@ s!   d   } t  i d t 6|  d  S(   Nc         S@ sŠ   d d d d g } t  |   } d | j j |  k s< t  t j | d d d d  } | sc t  g  | j k sx t  t  |   } | j j |  d  k s¢ t  d  S(   NR5   Rq   Rv   Rî   s   http://localhost:123456R  (   R   R[   Rz   R-   R   R  RV   R\   (   R:   t   config_pathR<   R]   R  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   È  s    sž   
env_specs:
    default:
      packages: [python]
      channels: []
    myspec:
      packages: [python]
      channels: []
      downloads:
        MYDATA: "http://localhost:123456"
(   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt"   test_remove_download_with_env_specÇ  s    	c         C@ s5   t  |   t |   d   } t i d t 6|  d  S(   Nc      	   S@ sn  t  |   } d } xU| D]M} | | d k rV t j | d d d | g d g  } n! t j | d d | g d g  } | s  t | j  t t | j   n  | s¬ t  d | j	 k sÁ t  | j	 d } | j
 j sà t  t j j t j j |  t   st  t  |   } | j j d d g  } | | d k sKt | d   t j j |  d	 d d
  } t j j |  s~t  t j j | d  }	 t j j |	  s«t  t |	 d  j   | d k sÐt  t j t j j | d   }
 t |
  d k st |
   t j j |
 d  j d d  d } t t t | j d    d k  s t |
 d   q Wd  S(   Ns   numpy<1.11.3t   pandasi    RB   R   RÁ   R9   R5   R   s
   conda-metat   pinnedt   rs   numpy-1.*-*i   t   -i   t   .i   i   (   s   numpy<1.11.3R  (   i   i   i   (   R
   R   t   add_env_spect   add_packagesR`   Rb   Ra   R\   R-   R5   t   lock_sett   enabledR(   R   R2   R)   R   R[   Rz   t   isdirt   existsR   RÝ   t   globR»   RU   t   splitt   tuplet   mapt   int(   R:   R<   t   specsR=   R]   t   envR  t   env_commented_mapt	   meta_pathR   t   filest   version(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ñ  s4    '!' %&s   locking_enabled: true
(   R   R   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_add_env_spec_with_real_conda_managerì  s    

	"c         @ s9   d t  f        f d     Y} t |  d  S(   Nt   TestCondaManagerc           @ sV   e  Z     f d    Z   f d   Z d   Z d e d  Z  f d   Z RS(   c         @ s@     |  _  t |  _ t d d d  d  d d d d  |  _ d  S(	   Nt   summarys   test deviationt   missing_packagest   wrong_version_packagest   missing_pip_packagest   wrong_version_pip_packages(    (    (   t	   fix_worksR+   t   fixedR   t
   deviations(   R÷   t   frontend(   R<  R8  R9  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   __init__  s    		c         @ s/    d  k	 r t    n t   d | Sd  S(   Nt	   platforms(   RV   R   R   (   R÷   t   package_specsR9   RA  (   t   resolve_dependenciest   resolve_dependencies_error(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRC  #  s    c         S@ s9   |  j  r. t d d d d d d d d	 d d
  S|  j Sd  S(   NR7  R=  R8  R9  R:  R;  (    (    (    (    (   R=  R   R>  (   R÷   R   R=   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   find_environment_deviations)  s    	c         S@ s   |  j  r t |  _ n  d  S(   N(   R<  R/   R=  (   R÷   R   R=   R>  R*   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   fix_environment_deviations4  s    	c         @ s     d  k	 r t     n  d  S(   N(   RV   R   (   R÷   R   RÁ   (   t   remove_error(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   remove_packages8  s    N(	   Rð   Rñ   R@  RC  RE  RV   R/   RF  RH  (    (   R<  R8  RG  RC  RD  R9  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR6    s
   
	(   R   R   (   R<  R8  R9  RG  RC  RD  R6  (    (   R<  R8  RG  RC  RD  R9  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _push_conda_test  s    +$c           C@ s   t    d  S(   N(   R	   (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _pop_conda_test?  s    c         C@ sO   z@ | d  k r i g  d 6} n  t | | | | | |  |    Wd  t   Xd  S(   Nt   all(   RV   RI  RJ  (   t   fR<  R8  R9  RG  RC  RD  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _with_conda_testC  s    c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sI    f d   } t  |  t    } t d g  d g   t | j j d d g   k s^ t  t d g  d g   t | j j d d g   k s t  t d t d d	 d t d
 g   d d d d g  t | j j d d g   k sî t  t d t d d	 d t d
 g   d d d d g  t | j j d d g   k sEt  d  S(   Nc          @ sj   t     }  t j |  d d d g  d g  } | s9 t  t j |  d d d d  d d  } | sf t  d  S(   NRB   R   RÁ   R9   RJ   (   R
   R   R$  R-   RV   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   attemptV  s
    !!RÁ   R9   R5   R   RJ   t   lockedt   env_spec_hasht(   a30f02c961ef4f3fe07ceb09e0906394c3885a79RK  RA  s   linux-64s   osx-64s   win-64(   RM  R
   R@   R[   Rz   R-   R/   t	   lock_file(   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   U  s    
996s   locking_enabled: true
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_env_specT  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sÈ     f d   } t  |  t    } t d g  d g  d d d d g  t | j j d d	 g   k sm t  t d
 t d d d t d g   d d d d g  t | j j d d	 g   k sÄ t  d  S(   Nc          @ sê   t     }  |  j j d g  } |  j j d g  |  j j d d d g |  |  j   |  j j d g  d  k s{ t  t |  j	 d j
  d k s t  t j |  d d d g  d g  } | sÊ t  d |  j	 d j
 k sæ t  d  S(   NRA  R5   R%   i    RB   R   RÁ   R9   s   linux-64s   osx-64s   win-64(   s   linux-64s   osx-64s   win-64(   R
   R[   Rz   t   unset_valuet	   set_valueRÅ   RV   R-   R»   R5   RA  R   R$  (   R<   RA  R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  t  s    
!"!RÁ   R9   RA  s   linux-64s   osx-64s   win-64R5   R   RO  RP  RQ  RK  (   RM  R
   R@   R[   Rz   R-   R/   RR  (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   s  s    
$s   locking_enabled: true
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt%   test_add_env_spec_no_global_platformsr  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sÜ     f d   } t  |  t    } t d d d d g d d d d	 g  t | j j d
 d g   k sp t  | j d } | j d k s t  | j j	 s€ t  | j j
 t i g  d 6d d d d g  sØ t  d  S(   Nc       
   @ sO   t     }  t j |  d d d d d d g d d d	 d
 g } | sK t  d  S(   NRB   R   RÁ   RH   RI   t   cR9   t   c1t   c2t   c3(   R
   R   R$  R-   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN    s    -RÁ   RH   RI   RW  R9   RX  RY  RZ  R5   R   RK  RA  s   linux-64s   osx-64s   win-64(   RM  R
   R@   R[   Rz   R-   R5   RB   R&  R'  t   equivalent_toR   (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    
!$s   locking_enabled: true
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt,   test_add_env_spec_with_packages_and_channels  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ st     f d   } t  |  t    } t d d d d g d d d d	 g  t | j j d
 d g   k sp t  d  S(   Nc       
   @ sO   t     }  t j |  d d d d d d g d d d	 d
 g } | sK t  d  S(   NRB   R   RÁ   RH   RI   RW  R9   RX  RY  RZ  (   R
   R   R$  R-   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ®  s    -RÁ   RI   RH   RW  R9   RZ  RX  RY  R5   R   (   RM  R
   R@   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ­  s    
!s?   
env_specs:
  foo:
    packages: [ 'b' ]
    channels: [ 'c3']
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt*   test_add_env_spec_extending_existing_lists¬  s
    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ st     f d   } t  |  t    } t d d d d g d d d d	 g  t | j j d
 d g   k sp t  d  S(   Nc       
   @ sO   t     }  t j |  d d d d d d g d d d	 d
 g } | sK t  d  S(   NRB   R   RÁ   RH   s   b=2.0RW  R9   RX  RY  RZ  (   R
   R   R$  R-   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  É  s    -RÁ   s   b=2.0RH   RW  R9   RZ  RX  RY  R5   R   (   RM  R
   R@   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   È  s    
!sC   
env_specs:
  foo:
    packages: [ 'b=1.0' ]
    channels: [ 'c3']
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt8   test_add_env_spec_extending_existing_lists_with_versionsÇ  s
    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sw     f d   } t  | d d t    } | j j d d g  d  k sO t  | j j d d g  d  k ss t  d  S(   Nc          @ s   t    d t   }  t j |  d d d g  d g  } | j d k sK t  | j g  k s` t  |  j j g  k sx t  | s t  d  S(   NR?  RB   R   RÁ   R9   s+   Error resolving dependencies for foo: NOPE.(	   R
   R   R   R$  Rb   R-   R\   R?  t   logs(   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ä  s    !RD  t   NOPER5   R   (   RM  R
   R[   Rz   RV   R-   RR  (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ã  s
    $s   locking_enabled: true
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt%   test_add_env_spec_cannot_resolve_depsâ  s    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sP     f d   } t  |  t    } | j j d d g d   d  k sL t  d  S(   Nc          @ sã   t     }  |  j j d d g d   d  k	 s3 t  d |  j k sH t  |  j d } | j j sg t  | j j d k s t  t	 j
 |  d d } g  | j k s© t  | j d k sŸ t  | sÊ t  d |  j k sß t  d  S(   NR5   RC   s   a=1.0=1RB   s,   Nothing to clean up for environment 'hello'.(   s   a=1.0=1(   R
   RR  Rz   RV   R-   R5   R&  R'  t"   package_specs_for_current_platformR   t   remove_env_specR\   Rb   (   R<   R0  R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ø  s    'R5   RC   (   RM  R
   RR  Rz   RV   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ÷  s    
sZ   
name: foo
env_specs:
  hello:
   packages:
     - a
  another:
   packages:
     - b
    s   
locking_enabled: true
env_specs:
  hello:
    platforms: [linux-32,linux-64,osx-64,win-32,win-64]
    packages:
      all:
      - a=1.0=1
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_remove_env_specö  s
    	
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sP     f d   } t  |  t    } | j j d d g d   d  k sL t  d  S(   Nc          @ s   t     }  d |  j k s! t  t j |  d d } g  | j k sK t  | j d d k sd t  | sq t  d |  j k s t  d  S(   NRC   RB   s+   At least one environment spec is required; s   'hello' is the only one left.(   R
   R5   R-   R   Rc  R\   Rb   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  (  s    R5   RC   (   RM  R
   RR  Rz   RV   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   '  s    
s9   
name: foo
env_specs:
  hello:
   packages:
     - a
    (   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_remove_only_env_spec&  s
    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sw     f d   } t  |  t    } | j j d d g d   d  k	 sL t  | j j d d g d   d  k	 ss t  d  S(   Nc          @ së   t     }  |  j j d d g d   d  k	 s3 t  d |  j k sH t  |  j d } | j j sg t  | j j d k s t  t	 j
 |  d d } d d g | j k s° t  | j d k sÅ t  | sÒ t  d |  j k sç t  d  S(	   NR5   RC   s   a=1.0=1RB   s<   anaconda-project.yml: env_spec 'hello' for command 'default's)    does not appear in the env_specs sections   Unable to load the project.(   s   a=1.0=1(   R
   RR  Rz   RV   R-   R5   R&  R'  Rb  R   Rc  R\   Rb   (   R<   R0  R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  H  s    'R5   RC   (   RM  R
   RR  Rz   RV   R-   R[   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   G  s
    
's   
name: foo
commands:
  default:
    unix: echo hi
    env_spec: hello
env_specs:
  hello:
   packages:
     - a
  another:
   packages:
     - b
    s   
locking_enabled: true
env_specs:
  hello:
    platforms: [linux-32,linux-64,osx-64,win-32,win-64]
    packages:
      all:
      - a=1.0=1
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_remove_env_spec_causes_problemF  s
    	
c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sé     f d   } t  |  t    } t d g   d d g t | j j d   k s[ t  d d g t | j j d   k s t  x] | j j   D]L } | j	 j
 s­ t  | j	 j t i g  d	 6d
 d d d g  s t  q Wd  S(   Nc       	   @ s^   t     }  t j |  d d  d d d g d d d g } | sE t  g  | j k sZ t  d  S(   NRŸ   RÁ   R   RJ   R9   RC   R   (   R
   R   R%  RV   R-   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ~  s
    't   pipR   RJ   RÁ   RC   R   R9   RK  RA  s   linux-64s   osx-64s   win-64(   RM  R
   R@   R4   R[   Rz   R-   R5   RŠ   R&  R'  R[  R   (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   }  s    
6*	
sU   
packages:
 - pip: [] # be sure we don't break with this in the list
                s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt%   test_add_packages_to_all_environments|  s
    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sµ     f d   } t  | d d t    } | j j d d   d  k sL t  | j j d d   d  k sm t  xA | j j   D]0 } | j j	 s t  | j j
 d k s} t  q} Wd  S(   Nc       	   @ s   t    d t   }  t j |  d d  d d d g d d d g } | j d	 k sW t  | j g  k sl t  |  j j	 g  k s t  | s t  d  S(
   NR?  RŸ   RÁ   R   RJ   R9   RC   R   s/   Error resolving dependencies for default: NOPE.(
   R
   R   R   R%  RV   Rb   R-   R\   R?  R_  (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN     s    'RD  R`  RÁ   R9   (    (   RM  R
   R[   Rz   RV   R-   R5   RŠ   R&  R'  RA  (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    	!!s   locking_enabled: true
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt%   test_add_packages_cannot_resolve_deps  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc       	   @ s_   t     }  t j |  d d d d d g d d d g } | sF t  g  | j k s[ t  d  S(	   NRŸ   t
   not_an_envRÁ   R   RJ   R9   RC   R   (   R
   R   R%  R-   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ¹  s
    '(   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ž  s    (   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_add_packages_nonexistent_environment·  s    	
c          C@ s   d   }  t  t   |   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ sn   t     }  t j |  d d  d d g d g  } | s= t  d | j k sR t  d g | j k sj t  d  S(   NRŸ   RÁ   t   =R9   s   Could not add packages.s   Bad package specifications: =.(   R
   R   R%  RV   R-   Rb   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  Ç  s
    $(   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Æ  s    (   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_packages_invalid_specÅ  s    	
c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sæ     f d   } t  | d d t    } d g t | j j d   k sR t  d g t | j j d d d g   k s t  x] | j j   D]L } | j j	 sª t  | j j
 t i g  d	 6d
 d d d g  s t  q Wd  S(   Nc          @ s  t  j t  j j   d d   t    }  xA |  j j   D]0 } | j j sS t	  | j j
 d
 k s; t	  q; Wd d d g t |  j j d   k s t	  d d g t |  j j d d d g g    k sÒ t	  t j |  d	 d  d d d g } g  | j k st	  | st	  d  S(   NR   RC   R   RJ   Rf   RÁ   R   R5   RŸ   (    (   R(   t   makedirsR   R)   R
   R5   RŠ   R&  R'  R-   RA  R4   R[   Rz   R   RH  RV   R\   (   R<   Rº   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  Õ  s    -6!RG  s   Removal failRf   RÁ   R   R5   RC   RK  RA  s   linux-64s   osx-64s   win-64(   RM  R
   R4   R[   Rz   R-   R5   RŠ   R&  R'  R[  R   (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ô  s    '0	
sØ   
packages:
  - foo
  - bar
  - baz
env_specs:
  hello:
    packages:
     - foo
     - woot
  hello2:
    packages:
     - foo
     - bar
     - pip: [] # make sure we don't choke on non-string items in list
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt*   test_remove_packages_from_all_environmentsÓ  s
    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sI    f d   } t  |  t    } d g t | j j d   k sL t  g  t | j j d d d g g    k s| t  t j | j j d d  j	   } d | k s¯ t  d	 | k sÁ t  x | j
 j   D]p } | j d k r/| j j sø t  | j j t i g  d
 6d d d d g  sAt  qÑ | j j sÑ t  qÑ Wd  S(   Nc          @ sö   t     }  xA |  j j   D]0 } | j j s4 t  | j j d k s t  q Wd d d g t |  j j	 d   k s} t  d g t |  j j	 d d d g g    k s° t  t
 j |  d d d d d g } | sÝ t  g  | j k sò t  d  S(	   Nt   qbertR   RJ   RÁ   R5   RC   RŸ   (    (   R
   R5   RŠ   R&  R'  R-   RA  R4   R[   Rz   R   RH  R\   (   R<   Rº   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  	  s    -3!Rp  RÁ   R5   RC   R!  s   utf-8s   # this is a pre comments   # this is a post commentRK  RA  s   linux-64s   osx-64s   win-64(   RM  R
   R4   R[   Rz   R-   R1   R   Rû   RÝ   R5   RŠ   RB   R&  R'  R[  R   (   R:   RN  R  t   contentRº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s     
'0!	
s   
packages:
  # this is a pre comment
  - qbert # this is a post comment
  - foo
  - bar
env_specs:
  hello:
    packages:
     - foo
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_remove_packages_from_one_environment  s
    	&c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sW    f d   } t  |  t    } d g t | j j d   k sL t  g  t | j j d d d g g    k s| t  t d d d g  t | j j d d	 d g g    k s» t  | j d	 j t d d d d g  k sé t  | j d j t d g  k st  t	 j
 | j j d
 d  j   } d | k sAt  d | k sSt  d  S(   Nc          @ s²   t     }  d d d g t |  j j d   k s9 t  d g t |  j j d d d g g    k sl t  t j |  d d d d d g } | s t  g  | j k s® t  d  S(   NRp  R   RJ   RÁ   R5   RC   RŸ   (   R
   R4   R[   Rz   R-   R   RH  R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  B  s    -3!Rp  RÁ   R5   RC   Rf   R   RJ   t   anotherR!  s   utf-8s   # this is a pre comments   # this is a post comment(   RM  R
   R4   R[   Rz   R-   R£   R5   RÃ   R1   R   Rû   RÝ   (   R:   RN  R  Rq  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   A  s    
'0*.%!s¬   
packages:
  - qbert
  - foo
  - bar
env_specs:
  hello:
    packages:
     - foo
  another:
    packages:
     # this is a pre comment
     - baz # this is a post comment
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pytC   test_remove_packages_from_one_environment_leaving_others_unaffected@  s    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sÓ     f d   } t  | d d t    } d d d g t | j j d   k sX t  d d g t | j j d	 d
 d g   k s t  xA | j j   D]0 } | j j	 s³ t  | j j
 d k s t  q Wd  S(   Nc          @ sO  t  j t  j j   d d   t   d t   }  xA |  j j   D]0 } | j j	 s\ t
  | j j d k sD t
  qD Wd d d g t |  j j d   k s¥ t
  d d g t |  j j d	 d d g g    k sÛ t
  t j |  d
 d  d d d g } | j d k st
  | j g  k s&t
  |  j j g  k s>t
  | sKt
  d  S(   NR   RC   R?  R   RJ   Rf   RÁ   R   R5   RŸ   s-   Error resolving dependencies for hello: NOPE.(    (   R(   Rn  R   R)   R
   R   R5   RŠ   R&  R'  R-   RA  R4   R[   Rz   R   RH  RV   Rb   R\   R?  R_  (   R<   Rº   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  o  s    -6!RD  R`  R   RJ   Rf   RÁ   R   R5   RC   (    (   RM  R
   R4   R[   Rz   R-   R5   RŠ   R&  R'  RA  (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   n  s    -3sd   
packages:
  - foo
  - bar
  - baz
env_specs:
  hello:
    packages:
     - foo
     - woot
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt(   test_remove_packages_cannot_resolve_depsm  s
    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sS     f d   } t  |  t    } d d g t | j j d   k sO t  d  S(   Nc          @ s   t     }  d d g t |  j j d   k s6 t  t j |  d d d d d g } | sd t  g  | j k sy t  d | j k s t  d  S(   NR   RJ   RÁ   RŸ   t   not_an_environments2   Environment spec not_an_environment doesn't exist.(	   R
   R4   R[   Rz   R-   R   RH  R\   Rb   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN    s    *!R   RJ   RÁ   (   RM  R
   R4   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    
s   
packages:
  - foo
  - bar
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt1   test_remove_packages_from_nonexistent_environment  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s]   t  |   } t j | d d  d d g } | s7 t  d | j j g | j k sY t  d  S(   NRŸ   RÁ   R   sZ   %s: variables section contains wrong value type 42, should be dict or list of requirements(   R
   R   RH  RV   R-   R[   RU   R\   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   µ  s    s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt/   test_remove_packages_with_project_file_problemsŽ  s    	
c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ s¶     f d   } t  |  t    } d d d g t | j j d   k sR t  x] | j j   D]L } | j j	 sz t  | j j
 t i g  d 6d d d d g  sb t  qb Wd  S(   Nc          @ sR   t     }  t j |  d d  d d d g } | s9 t  g  | j k sN t  d  S(   NRŸ   RA  s   linux-64s   win-64(   R
   R   t   add_platformsRV   R-   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  Ä  s    !s   osx-32s   linux-64s   win-64RA  RK  (   RM  R
   R4   R[   Rz   R-   R5   RŠ   R&  R'  R[  R   (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ã  s    
-	
s%   
platforms: [osx-32]
                s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt&   test_add_platforms_to_all_environmentsÂ  s    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sS     f d   } t  |  t    } d d g t | j j d   k sO t  d  S(   Nc          @ sO   t     }  t j |  d d  d d g } | s6 t  g  | j k sK t  d  S(   NRŸ   RA  s   osx-32(   R
   R   Ry  RV   R-   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  â  s    s   osx-32s   win-64RA  (   RM  R
   R4   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   á  s    
s-   
platforms: [osx-32, win-64]
                s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_add_platforms_already_existsà  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s     f d   } t  | d d t    } | j j d d   d d d g k sU t  xA | j j   D]0 } | j j	 s} t  | j j
 d k se t  qe Wd  S(	   Nc          @ s³   t    d t   }  |  j j d d   d d d g k s? t  t j |  d d  d d d g } | j d	 k su t  | j	 g  k s t  |  j
 j g  k s¢ t  | s¯ t  d  S(
   NR?  RA  s   linux-64s   osx-64s   win-64RŸ   s   osx-32s   win-32s/   Error resolving dependencies for default: NOPE.(   R
   R   R[   Rz   RV   R-   R   Ry  Rb   R\   R?  R_  (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ø  s    *!RD  R`  RA  s   linux-64s   osx-64s   win-64(    (   RM  R
   R[   Rz   RV   R-   R5   RŠ   R&  R'  RA  (   R:   RN  R  Rº   (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ÷  s    	*s   locking_enabled: true
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt&   test_add_platforms_cannot_resolve_depsö  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ sS   t     }  t j |  d d d d d g } | s: t  g  | j k sO t  d  S(   NRŸ   Rj  RA  R   RJ   (   R
   R   Ry  R-   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  	  s    !(   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   	  s    (   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt*   test_add_platforms_nonexistent_environment	  s    		c          C@ s   d   }  t  t   |   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ sh   t     }  t j |  d d  d d g } | s7 t  d | j k sL t  d g | j k sd t  d  S(   NRŸ   RA  t   invalid_platforms   Unable to load the project.sl   anaconda-project.yml: Platform name 'invalid_platform' is invalid (valid examples: linux-64, osx-64, win-64)(   R
   R   Ry  RV   R-   Rb   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  	  s    (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   	  s    
(   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_add_platforms_invalid_platform	  s    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sP     f d   } t  |  t    } d g t | j j d   k sL t  d  S(   Nc          @ sœ   t     }  xA |  j j   D]0 } | j j s4 t  | j j d k s t  q Wd d g t |  j j	 d   k sz t  t
 j |  d d  d d g } g  | j k s­ t  | s¹ t  d  S(   Ns   linux-64s   osx-32RA  RŸ   (    (   R
   R5   RŠ   R&  R'  R-   RA  R4   R[   Rz   R   t   remove_platformsRV   R\   (   R<   Rº   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  .	  s    *s   osx-32RA  (   RM  R
   R4   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   -	  s    
sC   
platforms:
  - linux-64
  - osx-32
env_specs:
  hello: {}
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt+   test_remove_platforms_from_all_environments,	  s    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ sË     f d   } t  |  t    } d d g t | j j d   k sO t  d g t | j j d d d g g    k s t  t j | j j d d	  j	   } d
 | k sµ t  d | k sÇ t  d  S(   Nc          @ só   t     }  xA |  j j   D]0 } | j j s4 t  | j j d k s t  q Wd d g t |  j j	 d   k sz t  d d g t |  j j	 d d d g g    k s° t  t
 j |  d d d d g } | sÚ t  g  | j k sï t  d  S(	   Ns   linux-64s   osx-32RA  s   linux-32R5   RC   RŸ   (    (   R
   R5   RŠ   R&  R'  R-   RA  R4   R[   Rz   R   R  R\   (   R<   Rº   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  N	  s    **s   linux-64s   osx-32RA  s   linux-32R5   RC   R!  s   utf-8s   # this is a pre comments   # this is a post comment(
   RM  R
   R4   R[   Rz   R-   R1   R   Rû   RÝ   (   R:   RN  R  Rq  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   M	  s    
*3!s    
platforms:
  # this is a pre comment
  - linux-64 # this is a post comment
  - osx-32
env_specs:
  hello:
    platforms:
     - linux-32
     - osx-32
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt*   test_remove_platforms_from_one_environmentL	  s
    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ s     f d   } t  | d d t    } d d g t | j j d   k sU t  d d g t | j j d d	 d g g    k s t  d  S(
   Nc          @ s*  t    d t   }  xA |  j j   D]0 } | j j s= t  | j j d
 k s% t  q% Wd d g t |  j	 j
 d   k s t  d d g t |  j	 j
 d d d g g    k s¹ t  t j |  d d d d g } | j g  k sì t  |  j j g  k st  | j d	 k st  | s&t  d  S(   NR?  s   linux-64s   osx-32RA  s   linux-32R5   RC   RŸ   s-   Error resolving dependencies for hello: NOPE.(    (   R
   R   R5   RŠ   R&  R'  R-   RA  R4   R[   Rz   R   R  R\   R?  R_  Rb   (   R<   Rº   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  	  s    **RD  R`  s   linux-64s   osx-32RA  s   linux-32R5   RC   (   RM  R
   R4   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   	  s
    *sm   
platforms:
  - linux-64
  - osx-32
env_specs:
  hello:
    platforms:
     - linux-32
     - osx-32
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_remove_platforms_cannot_resolve_deps~	  s
    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ sP     f d   } t  |  t    } d g t | j j d   k sL t  d  S(   Nc          @ s   t     }  d g t |  j j d   k s3 t  t j |  d d d d g } | s^ t  g  | j k ss t  d | j k s t  d  S(   Ns   linux-64RA  RŸ   Rv  s2   Environment spec not_an_environment doesn't exist.(	   R
   R4   R[   Rz   R-   R   R  R\   Rb   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ª	  s    's   linux-64RA  (   RM  R
   R4   R[   Rz   R-   (   R:   RN  R  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ©	  s    
s   
platforms:
  - linux-64
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt2   test_remove_platforms_from_nonexistent_environmentš	  s    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ s]   t  |   } t j | d d  d d g } | s7 t  d | j j g | j k sY t  d  S(   NRŸ   RA  R   sZ   %s: variables section contains wrong value type 42, should be dict or list of requirements(   R
   R   R  RV   R-   R[   RU   R\   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ¿	  s    s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt0   test_remove_platforms_with_project_file_problemsŸ	  s    	
c          C@ s   d   }  t  t   |   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ s\   t     }  t j |  d d } | s. t  g  | j k sC t  d | j k sX t  d  S(   NRŸ   Rj  s*   Environment spec not_an_env doesn't exist.(   R   R   t   lockR-   R\   Rb   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  Î	  s
    (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Í	  s    (   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_lock_nonexistent_environmentÌ	  s    	
c          C@ s   d   }  t  t   |   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ s\   t     }  t j |  d d } | s. t  g  | j k sC t  d | j k sX t  d  S(   NRŸ   Rj  s*   Environment spec not_an_env doesn't exist.(   R   R   t   unlockR-   R\   Rb   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  Ü	  s
    (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Û	  s    (   R   R@   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_unlock_nonexistent_environmentÚ	  s    	
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ sM   t     }  t j |  d d  } | s. t  t | j  d k sI t  d  S(   NRŸ   i    (   R   R   R  RV   R-   R»   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ê	  s    (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   é	  s    Ro   (   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_lock_broken_projectè	  s    		c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s     f d   } t  |  d  S(   Nc          @ sM   t     }  t j |  d d  } | s. t  t | j  d k sI t  d  S(   NRŸ   i    (   R   R   R  RV   R-   R»   R\   (   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ÷	  s    (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ö	  s    Ro   (   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unlock_broken_projectõ	  s    		c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s6   i d g d 6    f d   } t  | d  d  S(   Ns   a=1.0=1RK  c          @ s  t  j j   t  }  t  j j |   s. t  t   d t   } | j d j	 d  k s_ t  | j d j	 d! k s{ t  t
 j | d d  } g  | j k s¥ t  | s± t  d d d d d	 d
 d d d d d d d d d	 d
 d d d d d g | j j k st  t  j j |   s t  d" | j d j j k s?t  d# | j d j j k s^t  d$ | j d j k szt  d% | j d j k st  | j d j	 t j k sµt  | j d j	 t j k sÔt  t j | j j d  k sõt  | j j d d d g d   d  k st  | j j d d d g d   d  k sIt  | j j   t
 j | d d  } g  | j k st  | st  | j j   t
 j | d d  } g  | j k sÃt  | sÏt  d d d d g | j j k sót  | j d k st  | j j   d g  d <t
 j | d d  } g  | j k sLt  | sXt  | j d k smt  d& | j d j k st  d | j j k s¡t  d | j j k s¹t  | j j   t
 j | d d  } g  | j k sðt  | süt  d | j k st  | j d j j s*t  | j d j j sCt  d' | j d j k s_t  d( | j d j k s{t  d  S()   NR?  R   RJ   RŸ   s6   Set project platforms list to linux-64, osx-64, win-64s0   Updating locked dependencies for env spec bar...s'   Changes to locked dependencies for bar:s     platforms:s   +   linux-64s
   +   osx-64s
   +   win-64s     packages:s   +   all:s   +     a=1.0=1sH   Added locked dependencies for env spec bar to anaconda-project-lock.yml.s0   Updating locked dependencies for env spec foo...s'   Changes to locked dependencies for foo:sH   Added locked dependencies for env spec foo to anaconda-project-lock.yml.s   a=1.0=1RA  R5   s<   Locked dependencies for env spec bar are already up to date.s<   Locked dependencies for env spec foo are already up to date.s   Update complete.s   a=2.0=0RK  s   -     a=1.0=1s   +     a=2.0=0s#   Dependency locking is now disabled.RH   RI   (    (    (   s   a=1.0=1(   s   a=1.0=1(   s   a=1.0=1(   s   a=1.0=1(   s   a=2.0=0(   RH   (   RI   (   R(   R   R)   R   R2   R-   R
   R   R5   RA  R   R  RV   R\   R?  R_  R&  Rb  t   conda_packages_for_createR   t   default_platformsR[   Rz   t   resett   updateRb   R  t   disabled(   Rû   R<   R]   (   R:   t   resolve_results(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  
  s    !**RC  (   RM  (   R:   RN  (    (   R:   R  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   
  s    esY   
name: locktest
env_specs:
  foo:
    packages:
      - a
  bar:
    packages:
      - b
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt(   test_lock_and_update_and_unlock_all_envs
  s    	jc          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s-     f d   } t  | d i d g d 6d  S(   Nc          @ sÕ  t  j j   t  }  t  j j |   s. t  t   d t   } | j d j	 d! k s_ t  | j d j	 d" k s{ t  t
 j | d d } g  | j k s¥ t  | s± t  d d d d	 d
 d d d d d d g | j j k sê t  d | j k sÿ t  t  j j |   st  | j d j } d# | j k s<t  | j d k sQt  | j d j j sjt  d$ | j d j k st  d% | j d j k s¢t  | j d j	 t j k sÁt  | j d j	 d& k sÝt  | j j d d   d  k sþt  t j | j j d d d g d   k s+t  d g | j j d d d g d   k sXt  | j j   t
 j | d d } g  | j k st  | st  d g | j j k s¶t  d | j k sËt  | j j   t
 j | d d } g  | j k st  | st  d d g | j j k s,t  d | j k sAt  | j j   t
 j | d d d d g  } g  | j k st  | st  g  | j j k s¥t  | j j d  sœt  | j d j } d' | j k sât  | j d k s÷t  | j j   t
 j | d d } g  | j k s.t  | s:t  g  | j j k sRt  d | j k sgt  | j d j j st  | j d j j st  d( | j d j k sµt  d) | j d j k sÑt  d  S(*   NR?  R   RJ   s   osx-64RŸ   s1   Set platforms for foo to linux-64, osx-64, win-64s0   Updating locked dependencies for env spec foo...s'   Changes to locked dependencies for foo:s     platforms:s   +   linux-64s
   +   osx-64s
   +   win-64s     packages:s   +   all:s   +     a=1.0=1sH   Added locked dependencies for env spec foo to anaconda-project-lock.yml.s    Project dependencies are locked.s   a=1.0=1t(   b7f3266407fe0056da25fc23764bb7643c3560beRI   RA  R5   s   Env spec foo is already locked.s<   Locked dependencies for env spec foo are already up to date.s   Update complete.RÁ   t   qR9   s   Using Conda environmentt(   fb71df6e984eb3330f442f1e9a7726aaa698ca59s4   Dependency locking is now disabled for env spec foo.RH   (    (   s   osx-64(   s   a=1.0=1(   s   a=1.0=1(   RI   (   s   osx-64(   s   a=1.0=1(   RH   R  (   RI   (   R(   R   R)   R   R2   R-   R
   R   R5   RA  R   R  R\   R?  R_  Rb   R&  Rb  RP  R  R  R   R  R[   Rz   RV   R  R  R%  t
   startswithR  (   Rû   R<   R]   t   foo_lock_set(   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ~
  s    !'RC  s   a=1.0=1RK  (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   }
  s    `sq   
name: locktest
env_specs:
  foo:
    packages:
      - a
  bar:
    platforms: [osx-64]
    packages:
      - b
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_lock_and_unlock_single_env|
  s    	cc          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ s-     f d   } t  | d i d g d 6d  S(   Nc       
   @ sŸ  t  j j   t  }  t  j j |   s- t  t   d t   } | j d j	 d k s^ t  | j d j
 j sw t  | j d j
 j s t  t j | d d } g  | j k sº t  | sÆ t  d d d	 d
 d d d d d d g
 | j j k sü t  d | j k st  t  j j |   s)t  | j j d d g  d  k	 sMt  | j d j
 } d | j k srt  | j d k st  | j d j
 j s t  | j d j
 j sºt  d  S(   NR?  R   s   linux-64s   osx-64s   win-64RŸ   s0   Updating locked dependencies for env spec foo...s'   Changes to locked dependencies for foo:s     platforms:s   +   linux-64s
   +   osx-64s
   +   win-64s     packages:s   +   all:s   +     a=1.0=1sH   Added locked dependencies for env spec foo to anaconda-project-lock.yml.s    Project dependencies are locked.R5   s   a=1.0=1R  (   s   linux-64s   osx-64s   win-64(   s   a=1.0=1(   R(   R   R)   R   R2   R-   R
   R   R5   RA  R&  R'  t   missingR   R  R\   R?  R_  Rb   RR  Rz   RV   Rb  RP  (   Rû   R<   R]   R  (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ò
  s6    $RC  s   a=1.0=1RK  (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ñ
  s    (sf   
name: locktest
platforms: [linux-64,osx-64,win-64]
env_specs:
  foo:
    packages:
      - a
        s.   
locking_enabled: true
# No lock set in here!
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt1   test_locking_with_missing_lock_set_does_an_updateð
  s
    	+	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ s-     f d   } t  | d i d g d 6d  S(   Nc          @ s  t    d t   }  |  j d j } d
 | j k s: t  | j d k sO t  d |  j d j k sk t  t j	 |  d d } g  | j
 k s t  | s¡ t  d d g |  j j k s¿ t  d | j k sÔ t  |  j d j } d | j k sù t  | j d	 k st  d  S(   NR?  R   s   a=1.0=1t   oldRŸ   s0   Updating locked dependencies for env spec foo...sg   Updated hash for env spec foo to 9990ec43408f9593030a3a136c916022189f04b3 in anaconda-project-lock.yml.s   Update complete.t(   9990ec43408f9593030a3a136c916022189f04b3(   s   a=1.0=1(   s   a=1.0=1(   s   a=1.0=1(   R
   R   R5   R&  Rb  R-   RP  R  R   R  R\   R?  R_  Rb   (   R<   R  R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  0  s    RC  s   a=1.0=1RK  (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   /  s    sn   
name: locktest
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
  foo:
    packages:
      - a
s   
locking_enabled: true
env_specs:
  foo:
    platforms: [linux-32,linux-64,osx-64,win-32,win-64]
    env_spec_hash: old
    packages:
      all: ['a=1.0=1']
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_update_changes_only_the_hash.  s
    		
c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s9     f d   } t  | d d	 d i d g d 6d t d  S(
   Nc          @ s¬   t  j j   t  }  t  j j |   s. t  t   d t   } t j	 | d d  } g  | j k sm t  | sz t  d | j k s t  t  j j |   sš t  d  S(   NR?  RŸ   s   test deviation(   R(   R   R)   R   R2   R-   R
   R   R   R  RV   R\   Rb   (   Rû   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  c  s    R8  RH   RI   RC  s   a=1.0=1RK  R<  (   RH   RI   (   RM  R+   (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   b  s    s   
name: locktest
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
  foo:
    packages:
      - a
  bar:
    packages:
      - b
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_lock_conda_errora  s    	c         C@ s!   d   } t  i d t 6|  d  S(   Nc         @ s)     f d   } t  | d d d d d  S(   Nc          @ s¬   t  j j   t  }  t  j j |   s. t  t   d t   } t j	 | d d  } g  | j k sm t  | sz t  d | j k s t  t  j j |   sš t  d  S(   NR?  RŸ   s   Nope on resolve(   R(   R   R)   R   R2   R-   R
   R   R   R  RV   R\   Rb   (   Rû   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN    s    R8  RH   RI   RD  s   Nope on resolve(   RH   RI   (   RM  (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s   
name: locktest
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
  foo:
    packages:
      - a
  bar:
    packages:
      - b
(   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt$   test_lock_resolve_dependencies_error  s    	c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ s9     f d   } t  | d d	 d i d g d 6d t d  S(
   Nc          @ s  t  j j   t  }  t  j j |   s- t  t   d t   } | j d j	 j
 s[ t  | j d j	 j
 st t  t j | d d  } g  | j k s t  | s« t  d | j k sÀ t  t  j j |   sØ t  | j d j	 j
 sñ t  | j d j	 j
 s
t  d  S(   NR?  R   RJ   RŸ   s   test deviation(   R(   R   R)   R   R2   R-   R
   R   R5   R&  R'  R   R  RV   R\   Rb   (   Rû   R<   R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  €  s    R8  RH   RI   RC  s   a=1.0=1RK  R<  (   RH   RI   (   RM  R+   (   R:   RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   £  s    s   
name: locktest
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
  foo:
    packages:
      - a
  bar:
    packages:
      - b
s  
locking_enabled: true
env_specs:
  foo:
    locked: true
    platforms: [linux-32,linux-64,osx-64,win-32,win-64]
    packages:
       all:
         - c
  bar:
    locked: true
    platforms: [linux-32,linux-64,osx-64,win-32,win-64]
    packages:
       all:
         - d
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unlock_conda_error¢  s
    	c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         @ s3   i d g d 6}   f d   } t  | d | d  S(   Ns   a=1.0=1RK  c          @ s'  t  j j   t  }  t  j j |   s. t  t   d t   } x) | j j	   D] } | j
 j sS t  qS Wt j | d d  } g  | j k s t  | s¥ t  | j d k sº t  | j j d d d d g k sÞ t  t  j j |   s÷ t  x) | j j	   D] } | j
 j st  qWd  S(   NR?  RŸ   s   Update complete.s0   Updating locked dependencies for env spec bar...s'   Updated installed dependencies for bar.s0   Updating locked dependencies for env spec foo...s'   Updated installed dependencies for foo.(   R(   R   R)   R   R2   R-   R
   R   R5   RŠ   R&  R  R   R  RV   R\   Rb   R?  R_  (   Rû   R<   R0  R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN  ß  s    	RC  (   RM  (   R:   R  RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ü  s    s   
name: locktest
platforms: [linux-32,linux-64,osx-64,win-32,win-64]
env_specs:
  foo:
    packages:
      - a
  bar:
    packages:
      - b
(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_update_unlocked_envsÛ  s    	 c          C@ s(   d   }  t  i d t 6d t 6|   d  S(   Nc         @ s3   i d g d 6}   f d   } t  | d | d  S(   Ns   a=1.0=1RK  c          @ s  t    d t   }  xT |  j j   D]C } | j j s= t  | j j d k sU t  | j j s% t  q% Wt	 j
 |  d d  } g  | j k s t  | s¢ t  | j d k s· t  |  j j d d d d d d	 d
 d d d d d d d d d	 d
 d d d g k st  xn |  j j   D]] } | j j s3t  | j j sEt  | j j t j k s`t  | j j d k st  qWd  S(   NR?  RŸ   s   Update complete.s0   Updating locked dependencies for env spec bar...s'   Changes to locked dependencies for bar:s     platforms:s   +   linux-64s
   +   osx-64s
   +   win-64s     packages:s   +   all:s   +     a=1.0=1sJ   Updated locked dependencies for env spec bar in anaconda-project-lock.yml.s0   Updating locked dependencies for env spec foo...s'   Changes to locked dependencies for foo:sJ   Updated locked dependencies for env spec foo in anaconda-project-lock.yml.s   a=1.0=1(    (   s   a=1.0=1(   R
   R   R5   RŠ   R&  R'  R-   RA  t   supports_current_platformR   R  RV   R\   Rb   R?  R_  R   R  Rb  (   R<   R0  R]   (   R:   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRN    sF    	RC  (   RM  (   R:   R  RN  (    (   R:   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    ,s   
name: locktest
platforms: [linux-64,osx-64,win-64]
env_specs:
  foo:
    packages:
      - a
  bar:
    packages:
      - b
        s   locking_enabled: true
(   R   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_update_empty_lock_sets  s
    	1c          C@ s!   d   }  t  i d d 6|   d  S(   Nc         S@ se   t  |   } t j j |  d  } t j | d d d | } | sH t  | j d | k sa t  d  S(   Ns   exported.ymlRB   R%   Rû   s(   Exported environment spec default to %s.(   R   R(   R   R)   R   t   export_env_specR-   Rb   (   R:   R<   t   exportedR]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Q  s
    sL   
env_specs:
  default:
    packages:
      - blah
    channels:
      - boo
s   anaconda-project.yml(   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_export_env_specP  s
    	c          C@ s!   d   }  t  i d d 6|   d  S(   Nc         S@ s{   t  |   } t j j |  d  } t j | d d d | } | sI t  t j j |  sb t  | j d k sw t  d  S(   Ns   exported.ymlRB   RJ   Rû   s#   Environment spec bar doesn't exist.(	   R   R(   R   R)   R   R€  R-   R)  Rb   (   R:   R<   R¥  R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   f  s    sL   
env_specs:
  default:
    packages:
      - blah
    channels:
      - boo
s   anaconda-project.yml(   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_export_nonexistent_env_spece  s
    	c         @ s'     f d   } t  i d d 6|  d  S(   Nc         @ s   t  |   } t j j |  d  } d   }   j d |  t j | d d d | } | sb t  t j j |  s{ t  | j	 d | k s t  d  S(   Ns   exported.ymlc          _@ s   t  d   d  S(   Nt   NOOO(   R   (   R!   R"   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_atomic_replace  s    s*   anaconda_project.yaml_file._atomic_replaceRB   R%   Rû   s   Failed to save %s: NOOO.(
   R   R(   R   R)   R.   R   R€  R-   R)  Rb   (   R:   R<   R¥  R©  R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   |  s    	sL   
env_specs:
  default:
    packages:
      - blah
    channels:
      - boo
s   anaconda-project.yml(   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_export_env_spec_io_error{  s
    c         C@ s!   d   } t  i d t 6|  d  S(   Nc         S@ sM   t  |   } t j | d d d d } | s4 t  | j d k sI t  d  S(   NRB   R%   Rû   R   s   Unable to load the project.(   R   R   R€  R-   Rb   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s   
name: broken
(   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_export_env_spec_broken_project  s    	c         @ s?   d d l  m  g    d    f d  } |  j d |    S(   Ni    (   t   can_connect_to_socketg      à?c         @ sX   t    } |  | d <| | d <| | d <  j |  | d k rD t S |  | |  Sd  S(   Nt   hostt   portt   timeout_secondsië  (   R@   R  R/   (   R­  R®  R¯  t   can_connect_args(   t   can_connect_args_listt   real_can_connect_to_socket(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_can_connect_to_socket§  s    	


sI   anaconda_project.requirements_registry.network_util.can_connect_to_socket(   t3   anaconda_project.requirements_registry.network_utilR¬  R.   (   R>   R³  (    (   R±  R²  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt9   _monkeypatch_can_connect_to_socket_on_standard_redis_port¢  s    	c         @ s#     f d   } t  t   |  d  S(   Nc         @ s   t     t |   } t j | d  d d } | s: t  t | j j t	  sU t  g  | j
 k sj t  t |   } d | j j d d g  k s t  d  S(   Nt   service_typet   redist   servicest	   REDIS_URL(   Rµ  R   R   t   add_serviceRV   R-   R   R?  R_  R4   R\   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ¹  s    
(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_servicež  s    c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s€   t     t |   } t j | d d d } | s: t  t | j j t  sU t  g  | j	 k sj t  t |   } d | j
 j d d d d g  k s  t  d  S(   NRq   R¶  R·  R5   Rž  R¹  (   Rµ  R   R   Rº  R-   R   R?  R_  R4   R\   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ë  s    
s}   
env_specs:
    default:
      packages: [python]
      channels: []
    myspec:
      packages: [python]
      channels: []
(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_service_with_env_specÊ  s    
c         @ s#     f d   } t  t   |  d  S(   Nc         @ s€   t     t |   } t j | d  d d d d } | s@ t  t | j j t	  s[ t  g  | j
 k sp t  t |   } d | j j d d g  k s  t  d  S(   NR¶  R·  t   variable_namet   MY_SPECIAL_REDISRž  (   Rµ  R   R   Rº  RV   R-   R   R?  R_  R4   R\   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   è  s    
(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_add_service_nondefault_variable_nameç  s    c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sœ   t  |  d t   } t j | d  d d } | s: t  d | j j g | j k s\ t  t  |  d t   } | j j	 d d g  d  k s t  | j j	 d d g  d  k s¹ t  d  S(   NR?  R¶  R·  sZ   %s: variables section contains wrong value type 42, should be dict or list of requirementsRž  R¹  (
   R
   R   R   Rº  RV   R-   R[   RU   R\   Rz   (   R:   R<   R]   R  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ú  s    $s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt+   test_add_service_with_project_file_problemsù  s    	c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s§   t     t |   } t j | d  d d } | s: t  t | j j t	  sU t  g  | j
 k sj t  t |  d t   } d | j j d d g  k s£ t  d  S(   NR¶  R·  R?  Rž  R¹  (   Rµ  R   R   Rº  RV   R-   R   R?  R_  R4   R\   R
   R   R[   Rz   (   R:   R<   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    
s   
services:
  REDIS_URL: redis
(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_add_service_already_exists  s    c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s`   t     t |  d t   } t j | d  d d } | sD t  d g | j k s\ t  d  S(   NR?  R¶  R·  s,   Service REDIS_URL has an unknown type 'foo'.(   Rµ  R
   R   R   Rº  RV   R-   R\   (   R:   R<   R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   %  s
    
s   
services:
  REDIS_URL: foo
(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt3   test_add_service_already_exists_with_different_type$  s    c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s`   t     t |  d t   } t j | d  d d } | sD t  d g | j k s\ t  d  S(   NR?  R¶  R·  s%   Variable REDIS_URL is already in use.(   Rµ  R
   R   R   Rº  RV   R-   R\   (   R:   R<   R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   9  s
    
s#   
variables:
  REDIS_URL: something
(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_add_service_already_exists_as_non_service8  s    	c         @ s#     f d   } t  t   |  d  S(   Nc         @ s`   t     t |  d t   } t j | d  d d } | sD t  d g | j k s\ t  d  S(   NR?  R¶  t   not_a_services:   Unknown service type 'not_a_service', we know about: redis(   Rµ  R
   R   R   Rº  RV   R-   R\   (   R:   R<   R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   K  s
    
(   R   R@   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_add_service_bad_service_typeJ  s    	c         C@ s!   d   } t  i d t 6|  d  S(   Nc         S@ sy   t  |   } t j | d  d d } | s0 t  g  | j k sE t  t  |   } | j j d d g  d  k su t  d  S(   NRœ  R·  Rž  R¹  (   R   R   t   remove_serviceRV   R-   R\   R[   Rz   (   R:   R<   R]   R  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   X  s    s   
services:
  REDIS_URL: redis
(   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_remove_serviceW  s    	
c         @ s'     f d   } t  i d t 6|  d  S(   Nc         @ s€   t     t |   } t j |  } | s1 t  t j | d  d d d | } | s[ t  g  | j k sp t  t |   } | j	 j
 d d g  d  k s  t  d  S(   NRœ  R·  R  Rž  R¹  (   Rµ  R   R  R  R-   R   RÆ  RV   R\   R[   Rz   (   R:   R<   RX   R]   R  (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   k  s    
s   
services:
  REDIS_URL: redis
(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_remove_service_with_preparej  s    c         C@ s!   d   } t  i d t 6|  d  S(   Nc         S@ s£   d d d d g } t  |   } | j j |  d k s< t  t j | d d d } | s` t  g  | j k su t  t  |   } | j j |  d  k s t  d  S(   NR5   Rq   Rž  R¹  R·  Rœ  (   R   R[   Rz   R-   R   RÆ  R\   RV   (   R:   R  R<   R]   R  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    sŠ   
env_specs:
    default:
      packages: [python]
      channels: []
    myspec:
      packages: [python]
      channels: []
      services:
        REDIS_URL: redis
(   R   R   (   R>   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_remove_service_with_env_spec  s    	R   c         C@ sœ  t  |  d t   } t j | d d } | s6 t  t j j |  |  } t j j t j j | d   sr t  t j | d d } | s t  t j j |  | d  } t j j |  sÃ t  t j j |  d  } t j	 t j j | d   t
 j | |  } | st  | j d k s't  | j j d | d	 | d	 | g k sTt  | j g  k sit  t j j t j j |  |   st  t j j t j j |  d   s¹t  d  S(
   NR?  RŸ   R   RJ   Rž  s   leftover-debriss   Cleaned.s    Deleted environment files in %s.s   Removing %s.(   R
   R   R  R  R-   R(   R   R)   R(  Rn  R   t   cleanRb   R?  R_  R\   (   R:   t   envs_dirnameR<   RX   t   envs_dirt   bar_dirt   services_dirR]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   check_cleaned  s&    '(c         C@ s1   d   } |  j  d |  t i d t 6t  d  S(   Nc         S@ s    t  j t  j j |  d   d  S(   Ns
   conda-meta(   R(   Rn  R   R)   (   R   R   R9   R   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR   Ÿ  s    s*   anaconda_project.internal.conda_api.creates"   
env_specs:
   foo: {}
   bar: {}
(   R.   R   R   RÏ  (   R>   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt
   test_cleanœ  s
    	c         C@ s:   d   } |  j  d |  d   } t i d t 6|  d  S(   Nc         S@ s    t  j t  j j |  d   d  S(   Ns
   conda-meta(   R(   Rn  R   R)   (   R   R   R9   R   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR   Í  s    s*   anaconda_project.internal.conda_api.createc         S@ s?   t  j j |  d  t  j d <t |  d  } t  j j d  | S(   Nt   some_random_patht   ANACONDA_PROJECT_ENVS_PATH(   R(   R   R)   t   environRÏ  t   pop(   R:   Rø   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ò  s    s"   
env_specs:
   foo: {}
   bar: {}
(   R.   R   R   (   R>   R   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_clean_from_environÌ  s    		c         @ s@   d   }   j  d |    f d   } t i d t 6|  d  S(   Nc         S@ s    t  j t  j j |  d   d  S(   Ns
   conda-meta(   R(   Rn  R   R)   (   R   R   R9   R   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR   â  s    s*   anaconda_project.internal.conda_api.createc         @ s
  t  |  d t   } t j | d d } | s6 t  t j j |  d  } t j j t j j | d   sr t  | j	 j
   t j | d d } | s  t  t j j |  d d  } t j j |  sÐ t  t j j |  d  } t j t j j | d   d  d  }   j d	 |  | j	 j
   t j | |  } | sIt  | j d
 k s^t  | j	 j d | d | g k st  | j d | d | d | g k s®t  t j j t j j |  d   sÕt  t j j t j j |  d   süt    j   d  S(   NR?  RŸ   R   R   RJ   Rž  s   leftover-debrisc         S@ s   t  d   d  S(   Ns   No rmtree here(   R   (   R   t   onerror(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_rmtreeý  s    s   shutil.rmtrees   Failed to clean everything up.s   Removing %s.s9   Failed to remove environment files in %s: No rmtree here.s"   Error removing %s: No rmtree here.(   R
   R   R  R  R-   R(   R   R)   R(  R?  R  Rn  RV   R.   R   RÊ  Rb   R_  R\   R0   (   R:   R<   RX   RÌ  RÍ  RÎ  R×  R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ç  s2    '&''s"   
env_specs:
   foo: {}
   bar: {}
(   R.   R   R   (   R>   R   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_clean_failed_deleteá  s    	*c         @ s@   d   }   j  d |    f d   } t i d t 6|  d  S(   Nc         S@ s    t  j t  j j |  d   d  S(   Ns
   conda-meta(   R(   Rn  R   R)   (   R   R   R9   R   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR     s    s*   anaconda_project.internal.conda_api.createc         @ s  t  j j |  d  } t  j d <t |  d t   } t j | d d } | sV t  t  j j	 t  j j | d   s} t  | j
 j   t j | d d } | s« t  t  j j | d  } t  j j	 |  sØ t  t  j j |  d  } t  j t  j j | d   d  d	  }   j d
 |  | j
 j   t j | |  } | sQt  | j d k sft  | j
 j d | d | g k st  | j d | d | d | g k s¶t  t  j j	 t  j j |   sÚt  t  j j	 t  j j |  d   st    j   t  j j d  d  S(   Nt   some_random_failed_pathRÒ  R?  RŸ   R   RJ   Rž  s   leftover-debrisc         S@ s   t  d   d  S(   Ns   No rmtree here(   R   (   R   RÖ  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR×  7  s    s   shutil.rmtrees   Failed to clean everything up.s   Removing %s.s9   Failed to remove environment files in %s: No rmtree here.s"   Error removing %s: No rmtree here.(   R(   R   R)   RÓ  R
   R   R  R  R-   R(  R?  R  Rn  RV   R.   R   RÊ  Rb   R_  R\   R0   RÔ  (   R:   RÌ  R<   RX   RÍ  RÎ  R×  R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY      s4     '&$'
s"   
env_specs:
   foo: {}
   bar: {}
(   R.   R   R   (   R>   R   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_clean_environ_failed_delete  s    	-c         C@ s'   t  g  |  D] } | t d  ^ q
  S(   Ns   archivedproj/(   R4   R»   (   t   namesRB   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _strip_prefixesV  s    c         C@ sL   t  j |  d d 1 } t t | j     t |  k sB t  Wd  QXd  S(   Nt   modeR!  (   t   zipfilet   ZipFileR3   RÜ  t   namelistR-   (   t   zip_patht	   filenamest   zf(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _assert_zip_containsZ  s    c         C@ sL   t  j |  d d 1 } t t | j     t |  k sB t  Wd  QXd  S(   NRÝ  R!  (   t   tarfileR   R3   RÜ  t   getnamesR-   (   t   tar_pathRâ  t   tf(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _assert_tar_contains_  s    c         C@ s0   |  t  j } | j |  s" t  | t |  S(   N(   R(   t   sepR  R-   R»   (   t   rootR   R   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _relative_tod  s    c         c@ s€   x t  j |   D] \ } } } xL | D]D } t  j t  j j | |   s& t |  t  j j | |   Vq& q& Wx+ | D]# } t |  t  j j | |   Vqu Wq Wd  S(   N(   R(   t   walkt   listdirR   R)   Rì  (   t   dir_pathRë  t   directoriesRâ  t   dirRû   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _recursive_listj  s    $c         C@ sG   t  g  t |   D] } | j d d  ^ q  t  |  k sC t  d  S(   Ns   \t   /(   R3   Rò  RÞ   R-   (   Rï  Râ  Rû   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _assert_dir_containss  s    c          C@ s   d   }  t  t   |   d  S(   Nc         @ sX   t  j j |  d      f d   } t i d t 6d d 6d  d 6d d 6d d	 6|  d  S(
   Ns   foo.zipc         @ sò   t  j t  j j |  d   t  j t  j j |  d   t |   } t j |    } | sb t  t  j j    sz t  t	   d d d d d d g  t j |    } | s· t  t  j j    sÏ t  t	   d d d d d d g  d  S(	   NRž  R   s
   a/b/c/d.pys
   a/b/c/e.pys	   emptydir/s   foo.pys   anaconda-project.ymls   anaconda-project-local.yml(
   R(   Rn  R   R)   R   R   t   archiveR-   R)  Rä  (   R:   R<   R]   (   t   archivefile(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   {  s    s6   
name: archivedproj
services:
   REDIS_URL: redis
    s   print('hello')
s   foo.pyt   emptydirRo   s
   a/b/c/d.pys
   a/b/c/e.py(   R(   R   R)   R   R   RV   (   t   archive_dest_dirRY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   archivetestx  s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_archive_zipw  s    	'c          C@ s   d   }  t  t   |   d  S(   Nc         @ sJ   t  j j |  d      f d   } t i d t 6d t 6d d 6|  d  S(   Ns   foo.zipc         @ s  t  |   } g  | j k s! t  | j d j j s: t  | j d j j sS t  t j |    } | sq t  t	 j
 j    s t  d t	 j
 j d d  d t	 j
 j d d  d t	 j
 j d d  d t	 j
 j d d  d	 d
 d g | j j k st  d  S(   NR   RJ   s     added t   archivedprojs   anaconda-project-local.ymls   anaconda-project-lock.ymls   anaconda-project.ymls   foo.pysj   Warning: env specs are not locked, which means they may not work consistently for others or when deployed.sI     Consider using the 'anaconda-project lock' command to lock the project.s     Unlocked env specs are: bar(   R   R,   R-   R5   R&  R'  R  R   Rõ  R(   R   R)  R)   R?  R_  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Š  s    sS   
name: archivedproj
env_specs:
  foo:
    packages: []
  bar:
    packages: []
    s   
locking_enabled: false
env_specs:
  foo:
    locked: true
    platforms: [linux-32,linux-64,osx-64,win-32,win-64]
    packages:
      all: []
             s   print('hello')
s   foo.py(   R(   R   R)   R   R   R   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  £  s    	
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_archive_unlocked_warning¢  s    	2c          C@ s   d   }  t  t   |   d  S(   Nc         @ sX   t  j j |  d      f d   } t i d t 6d d 6d  d 6d d 6d d	 6|  d  S(
   Ns   foo.tarc         @ sò   t  j t  j j |  d   t  j t  j j |  d   t |   } t j |    } | sb t  t  j j    sz t  t	   d d d d d d g  t j |    } | s· t  t  j j    sÏ t  t	   d d d d d d g  d  S(	   NRž  R   s
   a/b/c/d.pys
   a/b/c/e.pyR÷  s   foo.pys   anaconda-project.ymls   anaconda-project-local.yml(
   R(   Rn  R   R)   R   R   Rõ  R-   R)  Ré  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ü  s    s6   
name: archivedproj
services:
   REDIS_URL: redis
    s   print('hello')
s   foo.pyR÷  Ro   s
   a/b/c/d.pys
   a/b/c/e.py(   R(   R   R)   R   R   RV   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  Ù  s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_archive_tarØ  s    	'c          C@ s   d   }  t  t   |   d  S(   Nc         @ sX   t  j j |  d      f d   } t i d t 6d d 6d  d 6d d 6d d	 6|  d  S(
   Ns
   foo.tar.gzc         @ sò   t  j t  j j |  d   t  j t  j j |  d   t |   } t j |    } | sb t  t  j j    sz t  t	   d d d d d d g  t j |    } | s· t  t  j j    sÏ t  t	   d d d d d d g  d  S(	   NRž  R   s
   a/b/c/d.pys
   a/b/c/e.pyR÷  s   foo.pys   anaconda-project.ymls   anaconda-project-local.yml(
   R(   Rn  R   R)   R   R   Rõ  R-   R)  Ré  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s6   
name: archivedproj
services:
   REDIS_URL: redis
    s   print('hello')
s   foo.pyR÷  Ro   s
   a/b/c/d.pys
   a/b/c/e.py(   R(   R   R)   R   R   RV   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_archive_tar_gz  s    	'c          C@ s   d   }  t  t   |   d  S(   Nc         @ sX   t  j j |  d      f d   } t i d t 6d d 6d  d 6d d 6d d	 6|  d  S(
   Ns   foo.tar.bz2c         @ sò   t  j t  j j |  d   t  j t  j j |  d   t |   } t j |    } | sb t  t  j j    sz t  t	   d d d d d d g  t j |    } | s· t  t  j j    sÏ t  t	   d d d d d d g  d  S(	   NRž  R   s
   a/b/c/d.pys
   a/b/c/e.pyR÷  s   foo.pys   anaconda-project.ymls   anaconda-project-local.yml(
   R(   Rn  R   R)   R   R   Rõ  R-   R)  Ré  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   2  s    s6   
name: archivedproj
services:
   REDIS_URL: redis
    s   print('hello')
s   foo.pyR÷  Ro   s
   a/b/c/d.pys
   a/b/c/e.py(   R(   R   R)   R   R   RV   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  /  s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_archive_tar_bz2.  s    	'c         @ s#     f d   } t  t   |  d  S(   Nc         @ su   t  j j |  d    d   }  j d |   j t d d d     f d   } t i d t 6d	 d
 6|  d  S(   Ns   foo.zipc          _@ s   t  d   d  S(   NR`  (   R   (   R!   R"   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_ZipFile]  s    s   zipfile.ZipFilet   get_pluginst   fakec         S@ s   i  S(   N(    (   t   x(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   <lambda>d  Ro   c         @ s|   t  j t  j j |  d   t |   } t j |    } | sG t  | j d   k s` t  d g | j	 k sx t  d  S(   NR   s#   Failed to write project archive %s.R`  (
   R(   Rn  R   R)   R   R   Rõ  R-   Rb   R\   (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   f  s    s   
name: archivedproj
    s   print('hello')
s   foo.py(   R(   R   R)   R.   t   plugins_apiR   R   (   Rø  R   RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  Z  s    	(   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt*   test_archive_cannot_write_destination_pathY  s    c         C@ sW   |  j  i
 d  d 6d  d 6d  d 6d  d 6d  d 6d  d 6d  d 6d d	 6d
 d 6d d 6 |  S(   Ns   .git/branchess
   .git/hookss	   .git/infos   .git/objects/infos   .git/objects/packs   .git/refs/headss   .git/refs/tagss   
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        s   .git/configs   TestingGitRepository
s   .git/descriptions   ref: refs/heads/master
s	   .git/HEAD(   R  RV   (   Rà   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _add_empty_git{  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ sl   t  j j |  d      f d   } t t i d t 6d d 6d d 6d d	 6d
 d 6d d 6d d 6 |  d  S(   Ns   foo.zipc         @ s{   t  j t  j j |  d   t |   } t j |    } | sF t  t  j j    s^ t  t	   d d d d g  d  S(   NR   s   foo.pys
   .gitignores   anaconda-project.ymls   anaconda-project-local.yml(
   R(   Rn  R   R)   R   R   Rõ  R-   R)  Rä  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ¢  s    s   
name: archivedproj
        s   print('hello')
s   foo.pys#   /ignored.py
/subdir
/subwithslash/
s
   .gitignores   print("ignore me!")s
   ignored.pyR   s   subdir/foo.pyRJ   s   subdir/subsub/bar.pyR   s   subwithslash/something.py(   R(   R   R)   R   R  R   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_archive_zip_with_gitignore  s    	c         @ s#     f d   } t  t   |  d  S(   Nc         @ sL   t  j j |  d       f d   } t t i d t 6d d 6 |  d  S(   Ns   foo.zipc         @ s«   t  j t  j j |  d   t |   } d d l m     f d   }  j d |  t j	 |   } | sv t
  t  j j   s t
  | j d g k s§ t
  d  S(   NR   i    (   t   check_outputc         @ s     f d   } t  d |  S(   Nc         @ s
     |   S(   N(    (   t   commandline(   t   real_check_output(    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   runË  s    s   import sys
sys.exit(1)
(   R   (   R!   t   cwdR  (   R  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_check_outputÊ  s    s   subprocess.check_outputs.   'git ls-files' failed to list ignored files: .(   R(   Rn  R   R)   R   t
   subprocessR	  R.   R   Rõ  R-   R)  R\   (   R:   R<   R  R]   (   Rö  R>   (   R  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Â  s    s	   
        s   print('hello')
s   foo.py(   R(   R   R)   R   R  R   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ¿  s    
(   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_archive_zip_with_failing_git_commandŸ  s    !c         @ s#     f d   } t  t   |  d  S(   Nc         @ sL   t  j j |  d       f d   } t t i d t 6d d 6 |  d  S(   Ns   foo.zipc         @ sæ   t  j t  j j |  d   t  j t  j j |  d   t |   } d d l m     f d   }  j d |  t j	 |   } | s t
  t  j j   s« t
  t | j  d k sÆ t
  | j d j d  sâ t
  d  S(	   NRž  R   i    (   R	  c         @ s     d d g d |  S(   NR!   s   this-is-not-a-real-commandR  (    (   R!   R  (   R  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR  ð  s    s   subprocess.check_outputi   s   Failed to run 'git ls-files'(   R(   Rn  R   R)   R   R  R	  R.   R   Rõ  R-   R)  R»   R\   R  (   R:   R<   R  R]   (   Rö  R>   (   R  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ç  s    s	   
        s   print('hello')
s   foo.py(   R(   R   R)   R   R  R   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ä  s    
(   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt5   test_archive_zip_with_exception_executing_git_commandã  s     c         @ s#     f d   } t  t   |  d  S(   Nc         @ sL   t  j j |  d       f d   } t t i d t 6d d 6 |  d  S(   Ns   foo.zipc         @ sú   t  j t  j j |  d   t  j t  j j |  d   t |   } | j g  k sY t  d   }  j d |  t j	 |    } | s t  t  j j
    sª t  | j d k s¿ t  t | j  d k sÚ t  | j d j d  sö t  d  S(   NRž  R   c         S@ s   t  d   d  S(   NR`  (   t   OSError(   R:   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_os_walk  s    s   os.walks$   Failed to list files in the project.i    s   Could not list files in(   R(   Rn  R   R)   R   R,   R-   R.   R   Rõ  R)  Rb   R»   R\   R  (   R:   R<   R  R]   (   Rö  R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    	s   
name: archivedproj
        s   print('hello')
s   foo.py(   R(   R   R)   R   R  R   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    
(   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt1   test_archive_zip_with_inability_to_walk_directory  s     c         @ s#     f d   } t  t   |  d  S(   Nc         @ sL   t  j j |  d       f d   } t t i d t 6d d 6 |  d  S(   Ns   foo.zipc         @ s  t  j t  j j |  d   t  j t  j j |  d   t |   } t  j j |  d  } t j | d d   } | j d  Wd  QXd d l m     f d	   }  j d
 |  t	 j
 |   } | sÒ t  t  j j   së t  d | g | j k st  d  S(   NRž  R   s   .projectignoreR   s   utf-8s   
i    (   R   c          @ s3   |  d j  d  r" t d   n   |  |   Sd  S(   Ni    s   .projectignoreR`  (   R    R   (   R!   R"   (   R#   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR$   <  s    s   codecs.opens   Failed to read %s: NOPE(   R(   Rn  R   R)   R   R1   R   Rô   R.   R   Rõ  R-   R)  R\   (   R:   R<   t
   ignorefileRL  R$   R]   (   Rö  R>   (   R#   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   /  s    s   
name: archivedproj
        s   print('hello')
s   foo.py(   R(   R   R)   R   R  R   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ,  s    
(   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_archive_zip_with_unreadable_projectignore+  s    &c         C@ s   d   } t  t   |  d  S(   Nc         @ sI   t  j j |  d      f d   } t t i d t 6d d 6 |  d  S(   Ns   foo.barc         @ sy   t  |   } t j |    } | s+ t  t j j    sD t  | j d k sY t  | j d   g k su t  d  S(   Ns>   Project archive filename must be a .zip, .tar.gz, or .tar.bz2.s    Unsupported archive filename %s.(	   R   R   Rõ  R-   R(   R   R)  Rb   R\   (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Y  s    s   
name: archivedproj
        s   print('hello')
s   foo.py(   R(   R   R)   R   R  R   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  V  s    

(   R   R@   (   R>   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt    test_archive_with_bogus_filenameU  s    	c         C@ s   d   } t  t   |  d  S(   Nc         @ s8   t  j j |  d      f d   } t t   |  d  S(   Ns   foo.zipc         @ s   t  |   } t j j | j j  s+ t  t j |    } | sJ t  t j j    sc t  | j	 d k sx t  | j
 d t g k s t  d  S(   Ns   Can't create an archive.s   %s does not exist.(   R   R(   R   R)  R[   Rû   R-   R   Rõ  Rb   R\   R   (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   r  s    (   R(   R   R)   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  o  s    (   R   R@   (   R>   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_archive_with_no_project_filen  s    	c         C@ s   d   } t  t   |  d  S(   Nc         @ s<   t  j j |  d      f d   } t i d t 6|  d  S(   Ns   foo.zipc         @ s­   t  |   } t j j | j j  s* t  | j j d g d  t j	 |    } | s_ t  t j j    sx t  | j
 d k s t  | j d t g k s© t  d  S(   NRB   RC   s   Can't create an archive.s#   %s has been modified but not saved.(   R   R(   R   R)  R[   Rû   R-   RU  R   Rõ  Rb   R\   R   (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s(   
env_specs:
  default:
    packages: []
(   R(   R   R)   R   R   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    (   R   R@   (   R>   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_archive_with_unsaved_project  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ sW   t  j j |  d      f d   } t t i d t 6d d 6d d 6d d	 6 |  d  S(
   Ns   foo.zipc         @ s\   t  |   } t j |    } | s* t  t j j    sB t  t   d d d g  d  S(   Ns   foo.pys   anaconda-project.ymls   anaconda-project-local.yml(   R   R   Rõ  R-   R(   R   R)  Rä  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ¢  s
    sQ   
name: archivedproj
downloads:
   MYDOWNLOAD: "http://example.com/downloaded.py"
s   print('hello')
s   foo.pys   print("ignore me!")s   downloaded.pyRo   s   downloaded.py.part(   R(   R   R)   R   R  R   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt%   test_archive_zip_with_downloaded_file  s    	c          C@ s5   d   }  t  t i d t 6d d 6d d 6 |   d  S(   Nc         S@ sÕ   t  |   } t j j |  d  } t j j |  s9 t  t j | |  } | sW t  t j j |  so t  t	 | d d d g  t j | |  } | s£ t  t j j |  s» t  t	 | d d d g  d  S(   Ns   foo.zips   foo.pys   anaconda-project.ymls   anaconda-project-local.yml(
   R   R(   R   R)   R2   R-   R   Rõ  R)  Rä  (   R:   R<   Rö  R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ÿ  s    s   
name: archivedproj
s   print('hello')
s   foo.pyRo   s   foo.zip(   R   R  R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt=   test_archive_zip_overwrites_but_does_not_include_the_dest_zipœ  s    	
c          C@ s   d   }  t  t   |   d  S(   Nc         @ sX   t  j j |  d      f d   } t i d t 6d d 6d d 6d d 6d d	 6|  d  S(
   Ns   foo.zipc         @ s   t  j t  j j |  d   t j |   } g  | j k s@ t  t j |    } | s^ t  t  j j	    sv t  t
   d d d d g  d  S(   NR   s   foo.pys   anaconda-project.ymls   .projectignores   bar/(   R(   Rn  R   R)   R   R*   R,   R-   Rõ  R)  Rä  (   R:   R<   R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   á  s    s   
name: archivedproj
        s   print('hello')
s   foo.pyRo   s   foo.pycs   .ipynb_checkpoints/blehs   bar/blah.pyc(   R(   R   R)   R   R   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  Þ  s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_archive_zip_with_projectignoreÝ  s    	i   i   i   c         C@ sœ   t  j j |  d  } t j | d   } x | j   D]x \ } } | t k r | j t  j  sq | t  j } n  | j	 | d  q7 | t
 k r£ | j	 | d  q7 t d   q7 WWd  QX| S(   Ns   foo.zipR   Ro   RC   s   can't put this in a zip(   R(   R   R)   RÞ  Rß  t   itemst   _CONTENTS_DIRR    Rê  t   writestrt   _CONTENTS_FILER-   (   Rø  Rà   Rö  Rã  t   keyt   what(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt	   _make_zipÿ  s    c         C@ sÚ  d } d } | d k r/ | d } | d } n# | d k rR | d } | d } n  t  j j |  d	  } t  j |  t  j j |  d
  } t | d   } | j d  Wd  QXt  j j |  d  } t | j   k rè t  j d |  n  t  j j |  d |  }	 t	 j |	 |   }
 x{ | j
   D]m \ } } t	 j |  } | t k rYt	 j | _ n* | t k rhn | t k rt	 j | _ n  |
 j |  q#WWd  QXt  j |  t  j |  t  j j |  rÖt  j |  n  |	 S(   NR   s   .tart   gzs   :gzs   .gzt   bz2s   :bz2s   .bz2t   a_directoryt   a_fileRC   t   a_links
   /somewhereR   (   R(   R   R)   t   mkdirR   Rô   t   _CONTENTS_SYMLINKRŠ   t   symlinkRå  R  t   TarInfoR  t   DIRTYPEt   typeR   t   SYMTYPEt   addfilet   removet   rmdirR)  (   Rø  Rà   t   compressionRÝ  t	   extensionR&  R'  RL  t	   a_symlinkRö  Rè  R!  R"  t   t(    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt	   _make_tar  s@    

c         @ s#     f d   } t  t   |  d  S(   Nc         @ sx   t  |  i t d 6t d 6t d 6t d 6d     d  k	 rU   j   sU t  n    f d   } t t   |  d  S(   Ns   a/a.txts	   a/q/b.txts   a/cRH   R3  c         @ sz   t  j j |  d  } t j   |  } | j g  k s< t  | sH t  t  j j |  s` t  t | d d d g  d  S(   NR   s   a.txtRW  s   q/b.txt(	   R(   R   R)   R   t	   unarchiveR\   R-   R(  Rô  (   R:   t   unpackedR]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   G  s    (   R7  R   R  RV   R    R-   R   R@   (   Rø  RY   (   R3  (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  9  s    
		(   R   R@   (   R3  Rù  (    (   R3  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   _test_unarchive_tar8  s    c           C@ s   t  d d   d  S(   NR3  (   R:  RV   (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unarchive_tarU  s    c           C@ s   t  d d  d  S(   NR3  R$  (   R:  (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unarchive_tar_gzY  s    c           C@ s   t  d d  d  S(   NR3  R%  (   R:  (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unarchive_tar_bz2]  s    c          C@ s   d   }  t  t   |   d  S(   Nc         @ sN   t  |  i t d 6t d 6t d 6t d 6     f d   } t t   |  d  S(   Ns   a/a.txts	   a/q/b.txts   a/cRH   c         @ s   t  j j |  d  } t j   |  } | j g  k s< t  | sH t  t  j j |  s` t  t | d d d g  | j	 | k s t  d  S(   NR   s   a.txtRW  s   q/b.txt(
   R(   R   R)   R   R8  R\   R-   R(  Rô  t   project_dir(   R:   R9  R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   m  s    (   R#  R   R  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  b  s    	
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_unarchive_zipa  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ sN   t  |  i t d 6t d 6t d 6t d 6     f d   } t t   |  d  S(   Ns   a/a.txts	   a/q/b.txts   a/cRH   c         @ sÀ   t  j   } z& t  j |   t j   d d  } Wd  t  j |  Xt  j j |  d  } | j g  k sm t	  | sy t	  t  j j
 |  s t	  t | d d d g  | j | k sŒ t	  d  S(   NR>  RH   s   a.txtRW  s   q/b.txt(   R(   t   getcwdt   chdirR   R8  RV   R   R)   R\   R-   R(  Rô  R>  (   R:   R  R]   R9  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    (   R#  R   R  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  }  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt'   test_unarchive_zip_to_current_directory|  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ sG   t  |  i t d 6t d 6t d 6     f d   } t t   |  d  S(   Ns   a/a.txts	   a/q/b.txts   a/cc         @ s   t  j j |  d  } t j   d d  d |  } | j g  k sE t  | sQ t  t  j j |  si t  t	 | d d d g  | j
 | k s t  d  S(   NRH   R>  t
   parent_dirs   a.txtRW  s   q/b.txt(   R(   R   R)   R   R8  RV   R\   R-   R(  Rô  R>  (   R:   R9  R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   š  s    (   R#  R   R  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    	
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt6   test_unarchive_zip_to_parent_dir_with_auto_project_dir  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ sG   t  |  i t d 6t d 6t d 6     f d   } t t   |  d  S(   Ns   a/a.txts	   a/q/b.txts   a/cc         @ s   t  j j |  d  } t j   d d  d |  } | j g  k sE t  | sQ t  t  j j |  si t  t	 | d d d g  | j
 | k s t  d  S(   NRH   R>  RC  s   a.txtRW  s   q/b.txt(   R(   R   R)   R   R8  RV   R\   R-   R(  Rô  R>  (   R:   R9  R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ¿  s    (   R7  R   R  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ž  s    	
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt6   test_unarchive_tar_to_parent_dir_with_auto_project_dir·  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   Ns   a/a.txtc         @ sg   t  j j |  d  } t  j |  t j   |  } d | } | j | g k sV t  | sc t  d  S(   NR   s   Directory '%s' already exists.(   R(   R   R)   R)  R   R8  R\   R-   (   R:   R9  R]   t   message(   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Ò  s    
(   R7  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  Ï  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt'   test_unarchive_error_on_dest_dir_existsÎ  s    	c         @ s#     f d   } t  t   |  d  S(   Nc         @ s<   t  |  i t d 6      f d   } t t   |  d  S(   Ns   a/a.txtc         @ s   t  j j |  d  } d   }  j d |  t j   |  }  j   | sV t  t  j j |  sn t  t  j j	 t  j j | d   s t  d  S(   NR   c          _@ s   t  d   d  S(   Nt   FAILURE(   R   (   R!   R"   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR×  ç  s    s   shutil.rmtrees   a.txt(
   R(   R   R)   R.   R   R8  R0   R-   R(  R2   (   R:   R9  R×  R]   (   Rö  R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ä  s    	
(   R#  R   R   R@   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  á  s    (   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt0   test_unarchive_ignore_rmtree_fail_when_unzippingà  s    c          C@ s   d   }  t  t   |   d  S(   Nc         @ s]   t  j j |  d    t   d   } | j d  Wd  QX  f d   } t t   |  d  S(   Ns   foo.barR   RC   c         @ ss   t  j j |  d  } t j   |  } d   } | j | g k sI t  | sV t  t  j j |  so t  d  S(   NR   sE   Unsupported archive filename %s, must be a .zip, .tar.gz, or .tar.bz2(   R(   R   R)   R   R8  R\   R-   R(  (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   þ  s    
(   R(   R   R)   R   Rô   R   R@   (   Rø  RL  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ù  s
    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt%   test_unarchive_error_on_bad_extensionø  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s]   t  j j |  d    t   d   } | j d  Wd  QX  f d   } t t   |  d  S(   Ns   foo.zipR   RC   c         @ so   t  j j |  d  } t j   |  } d } | j | g k sE t  | sR t  t  j j |  sk t  d  S(   NR   s   File is not a zip file(   R(   R   R)   R   R8  R\   R-   R(  (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    (   R(   R   R)   R   Rô   R   R@   (   Rø  RL  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s
    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_unarchive_error_on_corrupt_zip  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s]   t  j j |  d    t   d   } | j d  Wd  QX  f d   } t t   |  d  S(   Ns   foo.tarR   RC   c         @ so   t  j j |  d  } t j   |  } d } | j | g k sE t  | sR t  t  j j |  sk t  d  S(   NR   s%   file could not be opened successfully(   R(   R   R)   R   R8  R\   R-   R(  (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   &  s    (   R(   R   R)   R   Rô   R   R@   (   Rø  RL  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  !  s
    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt#   test_unarchive_error_on_corrupt_tar   s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s8   t  j j |  d      f d   } t t   |  d  S(   Ns   foo.tarc         @ sl   t  j j |  d  } t j   |  } t | j  d k sB t  | sO t  t  j j |  sh t  d  S(   NR   i   (	   R(   R   R)   R   R8  R»   R\   R-   R(  (   R:   R9  R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   8  s
    (   R(   R   R)   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  5  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt'   test_unarchive_error_on_nonexistent_tar4  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s8   t  j j |  d      f d   } t t   |  d  S(   Ns   foo.zipc         @ sl   t  j j |  d  } t j   |  } t | j  d k sB t  | sO t  t  j j |  sh t  d  S(   NR   i   (	   R(   R   R)   R   R8  R»   R\   R-   R(  (   R:   R9  R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   J  s
    (   R(   R   R)   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  G  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt'   test_unarchive_error_on_nonexistent_zipF  s    	c          C@ s=   t  j   d k r  t d  d  Sd   }  t t   |   d  S(   Nt   WindowssM   Can't test tars with symlinks on Windows because there's no way to create onec         @ s   t  |  i t d 6t d 6t d 6t d 6   t j   d  : } | j d  } | d  k	 sa t  | j	   ss t  Wd  QX  f d   } t
 t   |  d  S(   Ns   a/a.txts	   a/q/b.txts   a/cs   a/linkR!  c         @ sz   t  j j |  d  } t j   |  } | j g  k s< t  | sH t  t  j j |  s` t  t | d d d g  d  S(   NR   s   a.txtRW  s   q/b.txt(	   R(   R   R)   R   R8  R\   R-   R(  Rô  (   R:   R9  R]   (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   i  s    (   R7  R   R  R*  Rå  R   t	   getmemberRV   R-   t   issymR   R@   (   Rø  Rè  t   memberRY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ]  s    		(   t   platformt   systemR`   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt"   test_unarchive_tar_ignores_symlinkX  s
    
	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   Ns
   a/../a.txtc         @ s   t  j j |  d  } t j   |  } t  j j |  s@ t  d t  j j |  d  t  j j |  f } | j | g k s t  | s t  d  S(   NR   sF   Archive entry 'a/../a.txt' would end up at '%s' which is outside '%s'.s   a.txt(   R(   R   R)   R   R8  R)  R-   R\   (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   {  s    (   R7  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  x  s    
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_unarchive_tar_error_on_relative_pathw  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   Ns   ../a.txtc         @ sž   t  j   d d  d |  } d } | j | g k s9 t  | sF t  t j j |  d  } t  j   d | } d } | j | g k s t  | s t  t j j |  sŽ t  d  S(   NR>  RC  s?   Archive contains relative path '../a.txt' which is not allowed.R   (	   R   R8  RV   R\   R-   R(   R   R)   R(  (   R:   R]   RF  R9  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    (   R7  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_unarchive_tar_error_on_root_relative_path  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   Ns
   a/../a.txtc         @ s   t  j j |  d  } t j   |  } d t  j j |  d  t  j j |  f } | j | g k sj t  | sw t  t  j j |  s t  d  S(   NR   sF   Archive entry 'a/../a.txt' would end up at '%s' which is outside '%s'.s   a.txt(   R(   R   R)   R   R8  R\   R-   R)  (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   š  s    (   R#  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ¥  s    
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt)   test_unarchive_zip_error_on_relative_path€  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   Ns   ../a.txtc         @ sž   t  j   d d  d |  } d } | j | g k s9 t  | sF t  t j j |  d  } t  j   d | } d } | j | g k s t  | s t  t j j |  sŽ t  d  S(   NR>  RC  s?   Archive contains relative path '../a.txt' which is not allowed.R   (	   R   R8  RV   R\   R-   R(   R   R)   R(  (   R:   R]   RF  R9  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   »  s    (   R#  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ž  s    (   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_unarchive_zip_error_on_root_relative_path·  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   Ns   a.txtc         @ so   t  j j |  d  } t j   |  } t  j j |  s@ t  d } | j | g k s^ t  | sk t  d  S(   NR   s9   Archive does not contain a project directory or is empty.(   R(   R   R)   R   R8  R)  R-   R\   (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   Õ  s    (   R7  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  Ò  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt(   test_unarchive_tar_error_on_no_directoryÑ  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s9   t  |  i t d 6     f d   } t t   |  d  S(   NRH   c         @ so   t  j j |  d  } t j   |  } t  j j |  s@ t  d } | j | g k s^ t  | sk t  d  S(   NR   s9   Archive does not contain a project directory or is empty.(   R(   R   R)   R   R8  R)  R-   R\   (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ç  s    (   R7  R  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ä  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt*   test_unarchive_tar_error_on_only_directoryã  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s@   t  |  i t d 6t d 6     f d   } t t   |  d  S(   Ns   a/b.txts   c/d.txtc         @ ss   t  j j |  d  } t j   |  } t  j j |  s@ t  d d } | j | g k sb t  | so t  d  S(   NR   s<   A valid project archive contains only one project directory s?   with all files inside that directory. 'c/d.txt' is outside 'a'.(   R(   R   R)   R   R8  R)  R-   R\   (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   ù  s    (   R7  R   R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  ö  s    
(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt0   test_unarchive_tar_error_on_multiple_directoriesõ  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s2   t  |  i       f d   } t t   |  d  S(   Nc         @ so   t  j j |  d  } t j   |  } t  j j |  s@ t  d } | j | g k s^ t  | sk t  d  S(   NR   s7   A valid project archive must contain at least one file.(   R(   R   R)   R   R8  R)  R-   R\   (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    (   R7  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  	  s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_unarchive_tar_error_on_empty  s    	c          C@ s   d   }  t  t   |   d  S(   Nc         @ s2   t  |  i       f d   } t t   |  d  S(   Nc         @ so   t  j j |  d  } t j   |  } t  j j |  s@ t  d } | j | g k s^ t  | sk t  d  S(   NR   s7   A valid project archive must contain at least one file.(   R(   R   R)   R   R8  R)  R-   R\   (   R:   R9  R]   RF  (   Rö  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    (   R#  R   R@   (   Rø  RY   (    (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù    s    	(   R   R@   (   Rù  (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_unarchive_zip_error_on_empty  s    	c          C@ sJ   t  j t   }  t j d d d  Wd  QXd t |  j  k sF t  d  S(   Ns
   foo.tar.gzs	   /absolutes   /barsJ   If supplying parent_dir to unarchive, project_dir must be relative or None(   RÐ   RÑ   RÒ   R   R8  RÓ   RÔ   R-   (   RÕ   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt.   test_unarchive_abs_project_dir_with_parent_dir,  s    c         @ s#     f d   } t  t   |  d  S(   Nc         @ sC   t  |  i t d 6t d 6      f d   } t t   |  d  S(   Ns   a/b.txts   a/c.txtc         @ s¶   t  j j |  d   t d d       f d   }  j d |  t j    }   d d k sn t  t  j j   s t  d } | j	 | g k s¥ t  | s² t  d  S(   NR   t   counti    c          @ sM   t  j j   s t    d d   d <  d d k rI t d   n  d  S(   NR`  i   i   s   Not copying second file(   R(   R   R)  R-   R   (   R!   R"   (   t   stateR9  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   mock_copyfileobj>  s    s   tarfile.copyfileobji   s   Not copying second file(
   R(   R   R)   R@   R.   R   R8  R-   R)  R\   (   R:   Rb  R]   RF  (   Rö  R>   (   Ra  R9  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   6  s    (   R7  R   R   R@   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  3  s    (   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt/   test_unarchive_tar_error_on_writing_removes_dir2  s    c         @ s#     f d   } t  t   |  d  S(   Nc         @ sC   t  |  i t d 6t d 6      f d   } t t   |  d  S(   Ns   a/b.txts   a/c.txtc         @ sý   t  j j |  d   t d d d d       f d   }  j d |     f d   }  j d |  t j    }  j     d d	 k s  t    d d
 k s¶ t  t  j j	   sÎ t  d } | j
 | g k sì t  | sù t  d  S(   NR   R`  i    t   rmtree_countc          @ sM   t  j j   s t    d d   d <  d d k rI t d   n  d  S(   NR`  i   i   s   Not copying second file(   R(   R   R)  R-   R   (   R!   R"   (   Ra  R9  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRb  ]  s    s   tarfile.copyfileobjc         @ s:   t  j j   s t    d d   d <t d   d  S(   NRd  i   s   rmtree failed(   R(   R   R)  R-   R   (   R   (   Ra  R9  (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR×  h  s    s   shutil.rmtreei   i   s   Not copying second file(   R(   R   R)   R@   R.   R   R8  R0   R-   R)  R\   (   R:   Rb  R×  R]   RF  (   Rö  R>   (   Ra  R9  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY   X  s    
(   R7  R   R   R@   (   Rø  RY   (   R>   (   Rö  sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRù  U  s    "(   R   R@   (   R>   Rù  (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt;   test_unarchive_tar_error_on_writing_then_error_removing_dirT  s    'c         @ s.     f d   } t  i d t 6d d 6|  d  S(   Nc         @ st   t    d d \ t |   } g  | j k s4 t  t j | d d } | sU t  | j d k sj t  Wd  QXd  S(   Nt   expected_basenames   foo.tar.bz2t   sitet	   unit_tests   http://example.com/whatevs(   R   R   R,   R-   R   t   uploadR  (   R:   R<   R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s
   name: foo
s   print('hello')
s   foo.py(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   test_upload  s
    c          C@ s!   d   }  t  i d t 6|   d  S(   Nc         S@ sW   t  |  d t   } t j |  } | s1 t  d | j j g | j k sS t  d  S(   NR?  sZ   %s: variables section contains wrong value type 42, should be dict or list of requirements(   R
   R   R   Ri  R-   R[   RU   R\   (   R:   R<   R]   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    s   variables:
  42(   R   R   (   RY   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt&   test_upload_with_project_file_problems  s    		c         @ s.     f d   } t  i d t 6d d 6|  d  S(   Nc         @ s|   t  |   } g  | j k s! t  d   }   j d |  t j | d d } | s\ t  | j d j d  sx t  d  S(   Nc         S@ s   t  d   d  S(   NR`  (   R  (   R:   (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyR     s    s   os.walkRg  Rh  i    s   Could not list files in(   R   R,   R-   R.   R   Ri  R\   R  (   R:   R<   R  R]   (   R>   (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyRY     s    	s
   name: foo
s   print('hello')
s   foo.py(   R   R   (   R>   RY   (    (   R>   sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt!   test_upload_cannot_walk_directory  s
    (    (    (ü   t
   __future__R    R   R1   R(   t   tornadoR   RS  RÐ   Rå  RÞ  R*  t   anaconda_projectR   t   anaconda_project.conda_managerR   R   R   R   R   R	   t   anaconda_project.projectR
   t   anaconda_project.prepareR  t,   anaconda_project.internal.test.tmpfile_utilsR   R   R   R   t"   anaconda_project.test.test_prepareR   t!   anaconda_project.local_state_fileR   t   anaconda_project.project_fileR   R   t"   anaconda_project.project_lock_fileR   t#   anaconda_project.test.project_utilsR   t,   anaconda_project.internal.test.fake_frontendR   t-   anaconda_project.internal.test.test_conda_apiR   t!   anaconda_project.test.fake_serverR   t!   anaconda_project.internal.keyringt   internalR€   t#   anaconda_project.internal.conda_apiR   t!   anaconda_project.internal.pluginst   pluginsR  RA   RF   RK   RM   RN   RP   RS   RZ   R^   Rc   Re   Rp   Rr   Rs   R~   R   R   R   R   R   R   R    Rª   R­   R²   RŽ   R¶   R·   RŒ   Rœ   R¿   RÀ   RÆ   RÈ   RÉ   RÊ   RÎ   RÏ   RÖ   R×   RÙ   RÚ   Râ   Rã   Rå   Rç   Rè   Rê   Rë   Rì   Rí   RV   Rþ   Rÿ   R  R  R  R  R  R  R  R  R  R  R  R  R  t   markt   slowR5  RI  RJ  R/   RM  RS  RV  R\  R]  R^  Ra  Rd  Re  Rf  Rh  Ri  Rk  Rm  Ro  Rr  Rt  Ru  Rw  Rx  Rz  R{  R|  R}  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R   R¡  R£  RŠ  R§  Rª  R«  Rµ  R»  RŒ  R¿  RÀ  RÁ  RÂ  RÃ  RÅ  RÇ  RÈ  RÉ  RÏ  RÐ  RÕ  RØ  RÚ  RÜ  Rä  Ré  Rì  Rò  Rô  Rú  Rü  Rý  Rþ  Rÿ  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R   R*  R#  R7  R:  R;  R<  R=  R?  RB  RD  RE  RG  RI  RJ  RK  RL  RM  RN  RU  RV  RW  RX  RY  RZ  R[  R\  R]  R^  R_  Rc  Re  Rj  Rk  Rl  (    (    (    sE   lib/python2.7/site-packages/anaconda_project/test/test_project_ops.pyt   <module>   sŒ  ."	6			&										
		)		 					(	-									(						
			
																								%*	)			"					0	 	6	"				4	9	-	.								 	2	*							z	t	>	3	!	 	9	1	D																 			9	<								+	6	+	+	+	"	#	 	%	$	$	*					 		)						!																					"	+		