Ñò
Ú‡ Lc           @   s¼  d  d k  Z  d  d k l Z d  d k l Z l Z l Z l Z d  d k l Z d  d k	 l
 Z
 l Z d Z e  i i e  i i e ƒ d ƒ Z d „  Z e i 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$ e/ f d% „  ƒ  YZ0 d& „  Z1 d' „  Z2 d S((   iÿÿÿÿN(   t   pprint(   t
   setuputilst	   misctaskst   taskst   options(   t   Mock(   t   _set_environmentt   FakeExitExceptioni    s   other_pavement.pyc             s—   t  i d „  ƒ ‰  t ˆ  _ t ˆ  _ t  i t  i d ƒ ‡  f d †  ƒ ƒ }  t d ˆ  d |  ƒ t t  i i	 d ƒ p t
 ‚ |  ƒ  ˆ  i p t
 ‚ d  S(   Nc           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   t1   s    R   c              s   ˆ  i  p t ‚ t ˆ  _ d  S(   N(   t   calledt   AssertionErrort   Truet   t2_was_called(    (   R   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   t2   s    R   (   R   t   taskt   FalseR	   R   t   needsR   t   hasattrt   environmentt   pavementR
   (   R   (    (   R   s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_basic_dependencies   s    		!c           C   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt	   global_t1    s    c          C   s\   t  t _ t  t _ t i t i d ƒ d „  ƒ ƒ }  t d |  ƒ |  ƒ  t i p t ‚ d  S(   Ns    paver.tests.test_tasks.global_t1c           S   s   t  i p t ‚ t t  _ d  S(   N(   R   R	   R
   R   R   (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   (   s    R   (	   R   R   R	   R   R   R   R   R   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt(   test_longname_resolution_in_dependencies$   s    		c             sä   t  t  t  t  g ‰  t i ‡  f d †  ƒ }  t i t i d ƒ ‡  f d †  ƒ ƒ } t i ‡  f d †  ƒ } t i t i d d ƒ ‡  f d †  ƒ ƒ } t d |  d | d | d | ƒ | ƒ  ˆ  t t t t g j p t d	 ˆ  ‚ d  S(
   Nc              s.   ˆ  t  t  t  t  g j p t ‚ t ˆ  d <d  S(   Ni    (   R   R
   R   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   5   s     R   c              s.   ˆ  t  t t t g j p t ‚ t  ˆ  d <d  S(   Ni   (   R   R   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   :   s     c              s.   ˆ  t  t  t t g j p t ‚ t  ˆ  d <d  S(   Ni   (   R   R   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   t3@   s     R   R   c              s.   ˆ  t  t  t  t g j p t ‚ t  ˆ  d <d  S(   Ni   (   R   R   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   t4E   s     R   s   Called was: %s(   R   R   R   R   R   R   R
   (   R   R   R   R   (    (   R	   s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_chained_dependencies2   s    !$c          C   s¯   t  i d „  ƒ }  t  i t  i d g ƒ d „  ƒ ƒ } t  i t  i d ƒ d „  ƒ ƒ } t d |  d | d | ƒ } | ƒ  |  i p t ‚ t |  _ | ƒ  |  i p t ‚ d  S(   Nc           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   tP   s    R   c           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   T   s    c           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   Y   s    R   R   (   R   R   R   R   R	   R
   R   (   R   R   R   t   env(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_backwards_compatible_needsO   s    	c             sì   d d d d g ‰  t  i ‡  f d †  ƒ }  t  i t  i d ƒ ‡  f d †  ƒ ƒ } t  i t  i d ƒ ‡  f d †  ƒ ƒ } t  i t  i d d ƒ ‡  f d †  ƒ ƒ } t d |  d | d | d	 | ƒ | ƒ  ˆ  d
 d
 d
 d
 g j p t ‚ d  S(   Ni    c              s4   ˆ  d d d d g j p t  ‚ ˆ  d c d 7<d  S(   Ni    i   (   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   i   s     R   c              s4   ˆ  d d d d g j p t  ‚ ˆ  d c d 7<d  S(   Ni   i    (   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   n   s     c              s4   ˆ  d d d d g j p t  ‚ ˆ  d c d 7<d  S(   Ni   i    i   (   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   t   s     R   R   c              s4   ˆ  d d d d g j p t  ‚ ˆ  d c d 7<d  S(   Ni   i    i   (   R
   (    (   R	   (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   z   s     R   i   (   R   R   R   R   R
   (   R   R   R   R   (    (   R	   s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_tasks_dont_repeatf   s    !!$c          C   sà   t  i d „  ƒ }  t d |  ƒ y2 t  i d g ƒ \ } } | GHt p
 t d ‚ Wn t  i j
 o n Xt  i d g ƒ \ } } | |  j p t ‚ t  i d d g ƒ \ } } | |  j p t ‚ | d g j p t ‚ d  S(   Nc           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   …   s    R   t   foos0   Expected BuildFailure exception for unknown taskR   (   R   R   R   t   _parse_command_lineR   R
   t   BuildFailure(   R   t   trt   argsR   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_basic_command_line„   s    c          C   ss   d d k  l }  t i d „  ƒ } t d | d |  ƒ t i i ƒ  } | | j p t ‚ |  i | j p t ‚ d  S(   Niÿÿÿÿ(   t   doctoolsc           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ›   s    R   R$   (	   t   paverR$   R   R   R   R   t	   get_tasksR
   t   html(   R$   R   t	   task_list(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_list_tasks˜   s    c          C   s;   t  i d „  ƒ }  t d |  ƒ |  ƒ  |  i p t ‚ d  S(   Nc         S   s   d  S(   N(    (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ¥   s    R   (   R   R   R   R	   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_environment_insertion¤   s    c          C   sy   t  i d „  ƒ }  t  i d „  ƒ } t d |  d | ƒ } d | i _ |  ƒ  | ƒ  |  i p t ‚ | i p t ‚ d  S(   Nc         S   s   |  i  d j p t ‚ d  S(   Ni   (   R   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ®   s    c         S   s2   |  i  d j p t ‚ | i |  j p t ‚ d  S(   Ni   (   R   R
   R   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ²   s    R   R   i   (   R   R   R   R   R   R	   R
   (   R   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_add_options_to_environment­   s    c          C   s6   t  d t ƒ }  |  i d ƒ } | d  j	 p t ‚ d  S(   NR   t   help(   R   R   t   get_taskt   NoneR
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_shortname_access¿   s    c          C   s|   t  d t ƒ }  |  i d ƒ } | d  j	 p t ‚ |  i d ƒ } | d  j p t ‚ |  i d ƒ } | d  j p t ‚ d  S(   NR   s   paver.tasks.helps   nosuchmodule.nosuchtasks   paver.tasks.nosuchtask(   R   R   R-   R.   R
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_longname_accessÅ   s    c          C   s^   t  i t  i d g ƒ d „  ƒ ƒ }  t d |  ƒ } t  i d d d g ƒ |  i p t ‚ d  S(	   Ns   foo=t   fs   Foobeedoobee!c         S   s5   |  i  d j p t ‚ |  i i  d j p t ‚ d  S(   Nt   1(   R   R
   R   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   Ò   s    R   s   --fooR2   (   s   foo=R1   s   Foobeedoobee!(   R   R   t   cmdoptsR   t   _process_commandsR	   R
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_task_command_line_optionsÑ   s
    c          C   sx   t  i d „  ƒ }  t  i d „  ƒ } t d |  d | ƒ } t  i d d d d g ƒ |  i p t ‚ | i p t ‚ d  S(   Nc         S   s3   |  i  d j p t ‚ t |  d ƒ p t ‚ d  S(   NR2   t   bar(   R   R
   R   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   Ý   s    c         S   s2   |  i  d j p t ‚ |  i d j p t ‚ d  S(   NR2   t   2(   R   R
   R6   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   â   s    R   R   s   foo=1s   bar=2(   R   R   R   R4   R	   R
   (   R   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt#   test_setting_of_options_with_equalsÜ   s    c          C   s¥   t  i t  i d g ƒ d „  ƒ ƒ }  t  i t  i d ƒ t  i d g ƒ d	 „  ƒ ƒ ƒ } t d |  d
 | ƒ } t  i d i ƒ  ƒ |  i p t ‚ | i p t ‚ d  S(   Ns   foo=R1   s   Foo!c         S   s   |  i  i d j p t ‚ d  S(   NR2   (   R   R   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   í   s    R   s   bar=t   bs   Bar!c         S   s   |  i  i d j p t ‚ d  S(   NR7   (   R   R6   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ò   s    R   s   t2 --foo 1 -b 2(   s   foo=R1   s   Foo!(   s   bar=R9   s   Bar!(	   R   R   R3   R   R   R4   t   splitR	   R
   (   R   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt    test_options_inherited_via_needsì   s    !c          C   s±   t  i t  i d g ƒ d „  ƒ ƒ }  t  i t  i d ƒ t  i d g ƒ d „  ƒ ƒ ƒ } t d |  d	 | ƒ } y( t  i d
 i ƒ  ƒ t p
 t d ‚ Wn t  i	 j
 o n Xd  S(   Ns   foo=R1   s   Foo!c         S   s   t  p t ‚ d  S(   N(   R   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   þ   s    R   s   force=s   Force!c         S   s   t  p t ‚ d  S(   N(   R   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR     s    R   s   t2 -f 1s"   shoudl have gotten a PavementError(   s   foo=R1   s   Foo!(   s   force=R1   s   Force!(
   R   R   R3   R   R   R4   R:   R   R
   t   PavementError(   R   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_options_shouldnt_overlapý   s    !c          C   s>   t  ƒ  }  t i d g ƒ |  i i d i d j p t ‚ d  S(   Ns   this.is.cool=1t   isR2   (   R   R   R4   R   t   thist   coolR
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_dotted_options  s    	c          C   s.   t  ƒ  }  t i d g ƒ |  i p t ‚ d  S(   Ns   -n(   R   R   R4   t   dry_runR
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_dry_run  s    	c          C   s¸   t  i t  i d „  ƒ ƒ }  t  i d „  ƒ } t d |  d | ƒ } t  i d i ƒ  ƒ |  i p t ‚ t  i t  i d „  ƒ ƒ } t d | ƒ } t  i d i ƒ  ƒ | i p t ‚ d  S(	   Nc         S   s$   |  i  d d d g j p t ‚ d  S(   NR2   R   t   3(   R"   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR     s    c         S   s   t  p
 t d ‚ d  S(   Ns.   Should not have run t2 because of consume_args(   R   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR      s    R   R   s	   t1 1 t2 3c         S   s:   |  i  d d j p t ‚ |  i  d d j p t ‚ d  S(   Ni    s   -vi   R2   (   R"   R
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   (  s    R   s   t3 -v 1(   R   R   t   consume_argsR   R4   R:   R	   R
   (   R   R   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_consume_args  s    c          C   s{   t  i d  d „ ƒ }  t  i d d d „ ƒ } t d |  d | ƒ } t  i d d g ƒ |  i p t ‚ | i p t ‚ d  S(   Nc         S   s   | d  j p t ‚ d  S(   N(   R.   R
   (   R   t   optarg(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   3  s    R   R6   c         S   s,   | d j p t  ‚ | d j p t  ‚ d  S(   NR   R6   (   R
   (   R   t   optarg1t   optarg2(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   7  s    R   R   (   R   R   R.   R   R4   R	   R
   (   R   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_optional_args_in_tasks2  s    c          C   s   t  i d „  ƒ }  t d |  d t ƒ } t  i d d g ƒ | i d d j p t ‚ g  | _ t  i d g ƒ | i d d j p t ‚ d  S(   Nc         S   s   |  d d ƒ d  S(   Ns   Hi %st   there(    (   t   debug(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   B  s    R   t   patch_prints   -viÿÿÿÿs   Hi there(   R   R   R   R   R4   t   patch_capturedR
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_debug_loggingA  s    	c          C   s„   t  i d „  ƒ }  t d |  d t ƒ } t  i d g ƒ | i d d j p t ‚ g  | _ t  i d d g ƒ | i p t ‚ d  S(   Nc         S   s   |  d d ƒ d  S(   Ns   Hi %st   you(    (   t   info(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   O  s    R   RM   iÿÿÿÿs   Hi yous   -q(   R   R   R   R   R4   RN   R
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_base_loggingN  s    	c          C   s   t  i d „  ƒ }  t d |  d t ƒ } t  i d g ƒ | i d d j p t ‚ g  | _ t  i d d g ƒ | i d d j p t ‚ d  S(   Nc         S   s   |  d d ƒ d  S(   Ns   Hi %st   error(    (   RS   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   \  s    R   RM   iÿÿÿÿs   Hi errors   -q(   R   R   R   R   R4   RN   R
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt!   test_error_show_up_no_matter_what[  s    	c          C   sŒ   t  i d „  ƒ }  t d |  d t ƒ } y t  i d g ƒ WnJ t j
 o> d d i | i ƒ j p t ‚ | i	 d j p t ‚ n Xd  S(   Nc         S   s'   |  d ƒ | d ƒ t  i d ƒ ‚ d  S(   Ns   This is debug msgs   This is error msgs   Yo, problem, yo(   R   R    (   RL   RS   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   i  s    

R   RM   s   This is debug msgs   
i   (
   R   R   R   R   R4   R   t   joinRN   R
   t	   exit_code(   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt)   test_all_messages_for_a_task_are_capturedh  s     c          C   s   t  i d „  ƒ }  t d |  d t ƒ } t  i d g ƒ | i d d j p t ‚ g  | _ t  i d d g ƒ | i d d j p t ‚ d  S(   Nc         S   s   |  d ƒ d  S(   Ns   This is a %s message(    (   RS   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   w  s    R   RM   iÿÿÿÿs   This is a %s messages   -q(   R   R   R   R   R4   RN   R
   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt4   test_messages_with_formatting_and_no_args_still_workv  s    	c          C   s    t  ƒ  }  t i g  ƒ |  i d j p t ‚ t  ƒ  }  t i d g ƒ |  i } | d j p t ‚ t  ƒ  }  t i d d g ƒ |  i } | d j p t ‚ d  S(   Ns   pavement.pys   --file=foo.pys   foo.pys   -f(   R   R   t   _parse_global_optionst   pavement_fileR
   (   R   t   set_pavement(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_alternate_pavement_optionƒ  s    					c          C   s§   t  i d „  ƒ }  t d |  d t d d ƒ } y) t  i d g ƒ t o d p t ‚ WnJ t j
 o> d d i | i	 ƒ j p t ‚ | i
 d j p t ‚ n Xd  S(	   Nc         S   s   |  d ƒ d d d  S(   Ns   Dividing by zero!i   i    (    (   RL   RS   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ”  s    
R   RM   t
   patch_exiti   s   Expecting FakeExitExceptions   Dividing by zero!s   
(   R   R   R   R   R4   R   R
   R   RU   RN   RV   (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt*   test_captured_output_shows_up_on_exception“  s     c          C   sI   t  i d „  ƒ }  t d |  ƒ } t  i d g ƒ t d j p t ‚ d  S(   Nc         S   s4   d |  _  t i t d ƒ |  i  d j p t ‚ d  S(   Ni   R   (   R   R   t   call_pavementt   subpavementR
   (   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt
   private_t1¢  s    	Ra   i   (   R   R   R   R4   t   OP_T1_CALLEDR
   (   Ra   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_calling_subpavement¡  s    t   MyTaskFinderc           B   s,   e  Z d  „  Z d „  Z e i d „  ƒ Z RS(   c         C   s   | d j o |  i  Sd  S(   NR   (   R   R.   (   t   selft   name(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR-   °  s    c         C   s   t  |  i g ƒ S(   N(   t   setR   (   Re   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR&   µ  s    c         C   s   t  |  _ d  S(   N(   R   t
   foo_called(   Re   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   ¸  s    (   t   __name__t
   __module__R-   R&   R   R   R   (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyRd   ¯  s   		c          C   so   t  ƒ  }  t ƒ  } |  i i | ƒ |  i d ƒ } | | i j p t ‚ |  i ƒ  } | i | j p t ‚ d  S(   NR   (   R   Rd   t   task_finderst   appendR-   R   R
   R&   (   R   t   mtfR   t	   all_tasks(    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   test_task_finders¼  s    		c          C   sZ   d „  }  t  d |  ƒ } y% t i d g ƒ t p
 t d ‚ Wn t i j
 o n Xd  S(   Nc           S   s   d  S(   N(    (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyR   Æ  s    R   sB   Expected a BuildFailure when calling something that is not a task.(   R   R   R4   R   R
   R    (   R   R   (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt(   test_calling_a_function_rather_than_taskÅ  s    	(3   t   osR    R%   R   R   R   R   t   paver.tests.mockR   t   paver.tests.utilsR   R   Rb   t   pathRU   t   dirnamet   __file__R`   R   R   R   R   R   R   R   R#   R)   R*   R+   R/   R0   R5   R8   R;   R=   RA   RC   RF   RJ   RO   RR   RT   RW   RX   R\   R^   Rc   t   objectRd   Ro   Rp   (    (    (    s5   /Users/admin/projects/paver/paver/tests/test_tasks.pyt   <module>   sJ   "!																														