ó
¼S]c           @@ s(  d  d l  m Z m Z d  d l Z d  d l m Z m Z m Z d  d l m	 Z	 m
 Z
 m Z m Z d  d l m 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   with_file_contentst   with_named_file_contentst   with_directory_contents(   t   EnvSpect   _load_environment_ymlt   _load_requirements_txtt!   _find_out_of_sync_importable_spec(   t   CondaLockSetc          C@ s   d „  }  t  d |  ƒ d  S(   Nc         S@ s‹   t  |  ƒ } | d  k	 s t ‚ | j d k s3 t ‚ | j d	 k sH t ‚ | j d
 k s] t ‚ | j d k sr t ‚ | j d k s‡ t ‚ d  S(   Nt   foos   bar=1.0t   bazt   pippys
   poppy==2.0t   channel1t   channel2t(   e91a2263df510c9b188b132b801ba53aa99cc407(   s   bar=1.0R   (   R   s
   poppy==2.0(   R   R   (   R   t   Nonet   AssertionErrort   namet   conda_packagest   pip_packagest   channelst   logical_hash(   t   filenamet   spec(    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   check   s    s{   
name: foo
dependencies:
  - bar=1.0
  - baz
  - pip:
    - pippy
    - poppy==2.0
channels:
  - channel1
  - channel2
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_load_environment_yml   s    	c          C@ s   d „  }  t  d |  ƒ d  S(   Nc         S@ s‹   t  |  ƒ } | d  k	 s t ‚ | j d k s3 t ‚ | j d	 k sH t ‚ | j d
 k s] t ‚ | j d k sr t ‚ | j d k s‡ t ‚ d  S(   NR
   s   bar=1.0R   R   s
   poppy==2.0R   R   R   (   s   bar=1.0R   (   R   s
   poppy==2.0(   R   R   (   R   R   R   R   R   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   1   s    s‚   
prefix: /opt/foo
dependencies:
  - bar=1.0
  - baz
  - pip:
    - pippy
    - poppy==2.0
channels:
  - channel1
  - channel2
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt%   test_load_environment_yml_with_prefix0   s    	c          C@ s   d „  }  t  d |  ƒ d  S(   Nc         S@ s—   t  |  ƒ } | d  k	 s t ‚ | j t j j |  ƒ k s? t ‚ | j d k sT t ‚ | j d	 k si t ‚ | j	 d
 k s~ t ‚ | j
 d k s“ t ‚ d  S(   Ns   bar=1.0R   R   s
   poppy==2.0R   R   R   (   s   bar=1.0R   (   R   s
   poppy==2.0(   R   R   (   R   R   R   R   t   ost   patht   basenameR   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   L   s    !sq   
dependencies:
  - bar=1.0
  - baz
  - pip:
    - pippy
    - poppy==2.0
channels:
  - channel1
  - channel2
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt!   test_load_environment_yml_no_nameK   s    	c          C@ s   d „  }  t  d |  ƒ d  S(   Nc         S@ sv   t  |  ƒ } | d  k	 s t ‚ | j d k s3 t ‚ | j d k sH t ‚ | j d k s] t ‚ | j d k sr t ‚ d  S(   NR
   (    (    (    (   R   R   R   R   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   f   s    s-   
name: foo
dependencies: 42
channels: 57
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt.   test_load_environment_yml_with_broken_sectionse   s    		c          C@ s   d „  }  t  d |  ƒ d  S(   Nc         S@ sv   t  |  ƒ } | d  k	 s t ‚ | j d k s3 t ‚ | j d k sH t ‚ | j d k s] t ‚ | j d k sr t ‚ d  S(   NR
   (    (    (    (   R   R   R   R   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   w   s    s5   
name: foo
dependencies:
 - pip: 42
channels: 57
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt1   test_load_environment_yml_with_broken_pip_sectionv   s    		c          C@ s   d „  }  t  d |  ƒ d  S(   Nc         S@ s¦   t  |  ƒ } | d  k	 s t ‚ | j d k s3 t ‚ | j d
 k sH t ‚ | j d k s] t ‚ | j d k sr t ‚ | j t d ƒ k s t ‚ | j	 d	 k s¢ t ‚ d  S(   Nt   defaultt   MyApps   Framework==0.9.4s   Library>=0.2s)   svn+http://myrepo/svn/MyThing#egg=MyThingt	   Frameworkt   Libraryt   MyThingt(   784ba385d4cd468756e3cbc57f33e97afdc38059(    (    (   R#   s   Framework==0.9.4s   Library>=0.2s)   svn+http://myrepo/svn/MyThing#egg=MyThing(   R#   R$   R%   R&   (
   R   R   R   R   R   R   R   t   pip_package_names_sett   setR   (   R   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   ‰   s    s  
MyApp
# Comment; this is a framework
Framework==0.9.4

  # blank line above this indented comment!
 Library>=0.2
-e svn+http://myrepo/svn/MyThing#egg=MyThing
--index-url http://example.com/private-pypi/
--find-links http://example.com/private-packages/
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_load_requirements_txtˆ   s    	c          C@ s(   d „  }  t  i d d 6d d 6|  ƒ d  S(   Nc         S@ s[   t  t j j |  d ƒ ƒ } | d  k	 s- t ‚ | j d k sB t ‚ | j d k sW t ‚ d  S(   Ns   requirements.txtR"   t   at   bt   ct   d(   R+   R,   R-   R.   (   R   R   R   t   joinR   R   R   R   (   t   dirnameR   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   ¥   s    s&   
a
b
-r more-requirements.txt
        s   requirements.txts   
c
d
s   more-requirements.txt(   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt$   test_load_recursive_requirements_txt¤   s
    	c          C@ s   d „  }  t  d d |  ƒ d  S(   Nc         S@ sj   t  |  ƒ } | d  k	 s t ‚ t | g t j j |  ƒ ƒ \ } } | d  k sT t ‚ | d  k sf t ‚ d  S(   N(   R   R   R   R   R   R   R0   (   R   R   t   desyncedR   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   º   s
    $s   environment.ymls{   
name: foo
dependencies:
  - bar=1.0
  - baz
  - pip:
    - pippy
    - poppy==2.0
channels:
  - channel1
  - channel2
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt!   test_find_in_sync_environment_yml¹   s    		c          C@ s   d „  }  t  d d |  ƒ d  S(   Nc      	   S@ s¿   t  |  ƒ } | d  k	 s t ‚ t d | j d | j d d | j d | j ƒ } t | g t	 j
 j |  ƒ ƒ \ } } | d  k	 s… t ‚ | j | j k s t ‚ | t	 j
 j |  ƒ k s» t ‚ d  S(   NR   R   i   R   R   (   R   R   R   R   R   R   R   R   R   R   R   R0   R   R   (   R   R   t   changedR2   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   Ó   s    		$s   environment.yamls{   
name: foo
dependencies:
  - bar=1.0
  - baz
  - pip:
    - pippy
    - poppy==2.0
channels:
  - channel1
  - channel2
    (   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt%   test_find_out_of_sync_environment_ymlÒ   s    	c          C@ s"   t  d ƒ }  |  d  k s t ‚ d  S(   Nt   nopenopenope(   R   R   R   (   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt(   test_load_environment_yml_does_not_existò   s    c          C@ s=   t  g  d ƒ \ }  } |  d  k s' t ‚ | d  k s9 t ‚ d  S(   NR6   (   R   R   R   (   R   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt$   test_find_out_of_sync_does_not_exist÷   s    c          C@ sá   t  d d d d d g d d d g d	 d
 d g d d d d ƒ }  t  d d d d d d d g d d d g d	 d d g d d d |  f ƒ } | j ƒ  } i d d 6d d g d	 6d d 6d d i d d g d 6g d 6| k sÝ t ‚ d  S(   NR   t   hiR   t   qt   rR   t   zoot   booR   t   x1t   y1t   inherit_from_namest   inherit_fromR
   t   descriptions   The Foo SpecR+   R,   R-   R.   t   xt   yt   pipt   packages(    (    (   R9   (   R   t   to_jsonR   (   R9   R   t   json(    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_to_jsoný   s.    		c          C@ su   t  d d d d d g d g  d d d	 g d
 d d d ƒ }  |  j ƒ  } i d d	 g d 6d d g d 6| k sq t ‚ d  S(   NR   R
   R   R+   R,   R   R   RC   RD   R@   RA   RF   (    (    (   R   RG   R   (   R   RH   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt-   test_to_json_no_description_no_pip_no_inherit  s    	c          C@ s’   t  d d d d d g d d d g d	 d
 d g d d ƒ }  |  j ƒ  } i d
 d g d	 6d d g d 6d d i d d g d 6g d 6| k sŽ t ‚ d  S(   NR   R
   R   R+   R,   R   R-   R.   R   RC   RD   R@   R9   t   helloRA   RE   RF   (   R9   RK   (   R   RG   R   (   R   RH   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt!   test_to_json_multiple_inheritance(  s    		c          C@ sŽ   t  d d d d d g d d d g d	 d
 d g ƒ }  t  d d d d d d g d d g d	 d
 d d g ƒ } | j |  ƒ } d | k sŠ t ‚ d  S(   NR   R
   R   R+   R,   R   R-   R.   R   RC   RD   t   barR:   t   zsF     channels:
      x
      y
    + z
  a
  b
+ q
  pip:
      c
    - d(   R   t	   diff_fromR   (   t   spec1t   spec2t   diff(    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_diff_from:  s    36c          @ s)   d „  ‰  ‡  f d †  }  t  d |  ƒ d  S(   Nc         S@ s­   t  j j | d ƒ } |  j | ƒ t | ƒ } | d  k	 s@ t ‚ | j d k sU t ‚ | j d k sj t ‚ | j	 d k s t ‚ | j
 d k s” t ‚ | j d k s© t ‚ d  S(   Ns	   saved.ymlR
   t   xyzs   bar=1.0R   t   abcR   s
   poppy==2.0R   R   t(   ee1be9dc875857a69ccabb96cb45b5b828a6dff9(   RT   s   bar=1.0R   RU   (   R   s
   poppy==2.0(   R   R   (   R   R   R/   t   save_environment_ymlR   R   R   R   R   R   R   R   (   R   R0   t   savedRQ   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt
   check_saveC  s    c         @ s¤   t  |  ƒ ‰  ˆ  d  k	 s t ‚ ˆ  j d k s3 t ‚ ˆ  j d k sH t ‚ ˆ  j d k s] t ‚ ˆ  j d k sr t ‚ ˆ  j d
 k s‡ t ‚ t i  ‡ ‡  f d †  ƒ d  S(   NR
   RT   s   bar=1.0R   RU   R   s
   poppy==2.0R   R   RV   c         @ s   ˆ  ˆ |  ƒ S(   N(    (   R0   (   RY   R   (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   <lambda>\  t    (   RT   s   bar=1.0R   RU   (   R   s
   poppy==2.0(   R   R   (	   R   R   R   R   R   R   R   R   R   (   R   (   RY   (   R   sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyR   Q  s    s‹   
name: foo
dependencies:
  - xyz
  - bar=1.0
  - baz
  - abc
  - pip:
    - pippy
    - poppy==2.0
channels:
  - channel1
  - channel2
    (   R   (   R   (    (   RY   sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_save_environment_ymlB  s    	c          C@ s}   t  i d g d 6d d d d d d g ƒ}  t d	 d
 d d d g d d d g d d d g d |  ƒ } d | j k sy t ‚ d  S(   Ns   a=1.0=1t   allt	   platformss   linux-32s   linux-64s   osx-64s   win-32s   win-64R   R
   R   R+   R,   R   R-   R.   R   RC   RD   t   lock_set(   s   a=1.0=1(   R	   R   t   conda_packages_for_createR   (   R_   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt%   test_overwrite_packages_with_lock_seto  s    +3c          C@ s×   t  i d d g d 6d d d d d d	 g ƒ}  t d
 d d d d g d d d g d d d g d |  ƒ } d | j k s| t ‚ d | j k s‘ t ‚ t d d g ƒ | j k s² t ‚ t d d g ƒ | j k sÓ t ‚ d  S(   Ns   a=1.0=1s   q=2.0=2R]   R^   s   linux-32s   linux-64s   osx-64s   win-32s   win-64R   R
   R   R+   R,   R   R-   R.   R   RC   RD   R_   R:   (   R+   R,   (   s   a=1.0=1s   q=2.0=2(   R	   R   R   R   R`   R)   t   conda_package_names_sett"   conda_package_names_for_create_set(   R_   R   (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_lock_set_affects_name_setsx  s    3!c          C@ sC  t  i d g d 6d d d d d d g ƒ}  t d	 d
 d d d g d d d g d d d g d |  ƒ } t d	 | j d | j d | j d | j d d  ƒ } | j | j k s¯ t ‚ | j | j k sÇ t ‚ | j	 | j
 k sß t ‚ | j	 | j
 k s÷ t ‚ | j	 | j	 k st ‚ | j
 | j k s't ‚ | j
 | j k s?t ‚ d  S(   Ns   a=1.0=1R]   R^   s   linux-32s   linux-64s   osx-64s   win-32s   win-64R   R
   R   R+   R,   R   R-   R.   R   RC   RD   R_   (   R	   R   R   R   R   R   R   R`   R   R   t   locked_hasht   import_hash(   R_   t   with_lock_spect   without_lock_spec(    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_lock_set_affects_hash†  s     +3					c          C@ sÐ   t  d d d d d g d d d g d	 d
 d g d d ƒ }  t  d |  j d |  j d |  j d	 |  j d d ƒ } |  j |  j k s„ t ‚ |  j |  j k sœ t ‚ | j | j k s´ t ‚ | j | j k sÌ t ‚ d  S(   NR   R
   R   R+   R,   R   R-   R.   R   RC   RD   R^   s   linux-64(   s   linux-64(    (	   R   R   R   R   R   R   Re   R   Rf   (   t   with_platforms_spect   without_platforms_spec(    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   test_platforms_affect_hashœ  s    3					(#   t
   __future__R    R   R   t,   anaconda_project.internal.test.tmpfile_utilsR   R   R   t   anaconda_project.env_specR   R   R   R   t   anaconda_project.conda_managerR	   R   R   R   R    R!   R*   R1   R3   R5   R7   R8   RI   RJ   RL   RS   R\   Ra   Rd   Ri   Rl   (    (    (    sB   lib/python2.7/site-packages/anaconda_project/test/test_env_spec.pyt   <module>   s0   "									 							-				