ó
v®¸Qc           @€  s©   d  Z  d d l m Z d d l Z d d l Z d d l m Z d d l m Z y e	 Wn e
 k
 rr d „  Z	 n Xd e j f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ d S(   s  Unit tests for pytree.py.

NOTE: Please *don't* add doc strings to individual test methods!
In verbose mode, printing of the module, class and method name is much
more helpful than printing of (the first line of) the docstring,
especially when debugging a test.
iÿÿÿÿ(   t   with_statementNi   (   t   support(   t   pytreec         C€  s   t  |  ƒ } | j ƒ  | S(   N(   t   listt   sort(   t   lstt   l(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   sorted   s    
t	   TestNodesc           B€  sI  e  Z d  Z e j d$ k r' d „  Z n  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% RS(%   s(   Unit tests for nodes (Base, Leaf, Node).i   i   c         C€  sî   t  j d d ƒ } t j d t ƒ : } t j d t ƒ |  j | j ƒ  d ƒ | j	 d ƒ Wd  QX|  j | j
 d ƒ |  j t | ƒ d ƒ x$ | D] } |  j | j t k ƒ q W|  j t | d j ƒ d	 ƒ |  j t | d
 j ƒ d ƒ d  S(   Nid   t   foot   recordt   alwayst    t   hii   i    s3   get_prefix() is deprecated; use the prefix propertyi   s3   set_prefix() is deprecated; use the prefix property(   R   t   Leaft   warningst   catch_warningst   Truet   simplefiltert   DeprecationWarningt   assertEqualt
   get_prefixt
   set_prefixt   prefixt   lent
   assertTruet   categoryt   strt   message(   t   selfR   t   wt   warning(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_deprecated_prefix_methods$   s    c         C€  s   d  S(   N(    (   R   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_instantiate_base3   s    c         C€  s<   t  j d d ƒ } |  j | j d ƒ |  j | j d ƒ d  S(   Nid   R	   (   R   R   R   t   typet   value(   R   t   l1(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt	   test_leaf8   s    c         C€  s,   t  j d d ƒ } |  j t | ƒ d ƒ d  S(   Nid   R	   s   Leaf(100, 'foo')(   R   R   R   t   repr(   R   R$   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_repr=   s    c         C€  s`   t  j d d ƒ } |  j t | ƒ d ƒ t  j d d d d d f ƒ} |  j t | ƒ d ƒ d  S(	   Nid   R	   t   contextt    i
   i   s    foo(   i
   i   (   R   R   R   R   (   R   R$   t   l2(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_strA   s    c         C€  s5   t  j d d ƒ } d | _ |  j t | ƒ d ƒ d  S(   Ni   i   t   foo_t   foo_5(   R   R   R   R   R   (   R   R$   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_str_numeric_valueG   s    	c         C€  sˆ   t  j d d ƒ } t  j d d d d d	 f ƒ} |  j | | ƒ t  j d d ƒ } t  j d d ƒ } |  j | | ƒ |  j | | ƒ d  S(
   Nid   R	   R(   R)   i   i    ie   t   bar(   i   i    (   R   R   R   t   assertNotEqual(   R   R$   R*   t   l3t   l4(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_equalityN   s    c         C€  se   t  j d d ƒ } |  j | j d ƒ |  j | j ƒ d | _ |  j | j d ƒ |  j | j ƒ d  S(   Nid   R	   R   s     ##

(   R   R   R   R   t   assertFalset   was_changedR   (   R   R$   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_prefixW   s    	c         C€  sl   t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } |  j | j d ƒ |  j | j | | g ƒ d  S(   Nid   R	   iÈ   R/   iè  (   R   R   t   NodeR   R"   t   children(   R   R$   R*   t   n1(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt	   test_node_   s
    c         C€  sx   t  j d d ƒ } t  j d d d d d
 f ƒ} t  j d | | g ƒ } |  j t | ƒ d	 t | ƒ t | ƒ f ƒ d  S(   Nid   R	   R/   R(   R)   i   i    iè  s   Node(1000, [%s, %s])(   i   i    (   R   R   R7   R   R&   (   R   R$   R*   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_reprf   s
    c         C€  sb   t  j d d ƒ } t  j d d d d d
 f ƒ} t  j d | | g ƒ } |  j t | ƒ d	 ƒ d  S(   Nid   R	   R/   R(   R)   i   i    iè  s   foo bar(   i   i    (   R   R   R7   R   R   (   R   R$   R*   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_strm   s    c         C€  s€   t  j d d ƒ } |  j | j d ƒ t  j d | g ƒ } |  j | j d ƒ d | _ |  j | j d ƒ |  j | j d ƒ d  S(   Nid   R	   R   iè  R)   (   R   R   R   R   R7   (   R   R$   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_prefixs   s    	c         C€  s  t  j d d d d ƒ} t  j d d d d ƒ} t  j d | | g ƒ } |  j | j ƒ  | j ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ t  j d d d d	 ƒ} t  j d | | g ƒ } |  j | j ƒ  | j ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ d  S(
   Nid   R	   R   t   aR/   t   biè  R   t   c(   R   R   R7   R   t
   get_suffixR   (   R   R$   R*   R9   R1   t   n2(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_get_suffix|   s    c         C€  sf   t  j d d ƒ } t  j d g  d d d f ƒ} |  j | | ƒ t  j d d	 ƒ } |  j | | ƒ d  S(
   Niè  R(   R)   i   i    ié  (    (   i   i    (    (   R   R7   R   R0   (   R   R9   RB   t   n3(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_equalityŒ   s
    c         C€  s™   t  j d d ƒ } t  j d d ƒ } t  j d | g ƒ } t  j d | g ƒ } |  j | | ƒ t  j d d ƒ } t  j d | g ƒ } |  j | | ƒ d  S(   Nid   R	   iè  R/   (   R   R   R7   R   R0   (   R   R$   R*   R9   RB   R1   RD   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_recursive_equality“   s    c         C€  sþ   t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | | g ƒ } |  j | j | | | g ƒ |  j t | j t ƒ ƒ |  j | j	 ƒ t  j d d ƒ } | j
 | ƒ |  j | j | | | g ƒ |  j t | j t ƒ ƒ |  j | j	 ƒ d  S(   Nid   R	   t   +R/   iè  t   -(   R   R   R7   R   R8   R   t
   isinstanceR   R4   R5   t   replace(   R   R$   R*   R1   R9   t   l2new(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_replace   s    c         C€  s¯   t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | | g ƒ } | j t  j d d ƒ t  j d d ƒ g ƒ |  j t | ƒ d ƒ |  j t | j t	 ƒ ƒ d  S(   Nid   R	   RG   R/   iè  t   *s   foo**bar(
   R   R   R7   RJ   R   R   R   RI   R8   R   (   R   R$   R*   R1   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_replace_with_list«   s    +c         C€  s¤   t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d | g ƒ } t  j d | | g ƒ } |  j t | j ƒ  ƒ | | | g ƒ d  S(   Nid   R	   R/   t   fooeyiè  (   R   R   R7   R   R   t   leaves(   R   R$   R*   R1   RB   RD   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leavesµ   s    c         C€  s¬   t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d g  ƒ } t  j d | | g ƒ } |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ d  S(   Nid   R	   R/   iè  i   i   i    (   R   R   R7   R   t   depth(   R   R$   R*   RB   RD   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt
   test_depth¿   s    c         C€  s•   t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d | | g ƒ } |  j t | j ƒ  ƒ | | | | | g ƒ d  S(   Nid   R	   R/   RO   iè  (   R   R   R7   R   R   t
   post_order(   R   R$   R*   R1   t   c1R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_post_orderÊ   s    c         C€  s•   t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d | | g ƒ } |  j t | j ƒ  ƒ | | | | | g ƒ d  S(   Nid   R	   R/   RO   iè  (   R   R   R7   R   R   t	   pre_order(   R   R$   R*   R1   RU   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_pre_orderÒ   s    c         C€  sa  t  j d d ƒ } |  j | j ƒ | j ƒ  |  j | j ƒ t  j d d ƒ } t  j d | g ƒ } |  j | j ƒ | j ƒ  |  j | j ƒ t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | | g ƒ } t  j d | g ƒ } |  j | j ƒ |  j | j ƒ |  j | j ƒ | j ƒ  |  j | j ƒ |  j | j ƒ |  j | j ƒ d  S(   Nid   t   fiè  R	   RG   R/   (   R   R   R4   R5   t   changedR   R7   (   R   R$   R9   R*   R1   RB   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_changedÚ   s*    


c         C€  sZ   xS d D]K } t  j d d d | ƒ} |  j t | ƒ | d ƒ |  j | j | ƒ q Wd  S(   Nt   xyz_R   id   R   R   (   R\   R   (   R   R   R   R   R   R   (   R   R   R$   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_constructor_prefixô   s    c         C€  s°   x© d
 D]¡ } t  j d d ƒ } t  j d d d d ƒ} t  j d | | g d | ƒ} |  j t | ƒ | d	 ƒ |  j | j | ƒ |  j | j | ƒ |  j | j d ƒ q Wd  S(   NR\   R   id   R   R	   R   t   _iè  t   self_foo(   s   xyz_R   (   R   R   R7   R   R   R   R   (   R   R   R$   R*   R9   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_constructor_prefixú   s    c         C€  so  t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d | g ƒ } |  j | j ƒ  d ƒ |  j | j g  ƒ |  j | j | ƒ |  j | j d  ƒ |  j | j d  ƒ |  j | j	 ƒ |  j
 | j	 ƒ |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ |  j | j g  ƒ |  j | j d  ƒ |  j | j d  ƒ |  j | j d  ƒ |  j
 | j	 ƒ |  j
 | j	 ƒ d  S(   Nid   R	   iè  i    i   (   R   R   R7   R   t   removeR8   t   parentt   NoneR4   R5   R   (   R   R$   R*   R9   RB   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_remove  s&    c         C€  sb   t  j d g  ƒ } | j ƒ  |  j | j d  ƒ t  j d d ƒ } | j ƒ  |  j | j d  ƒ d  S(   Niè  id   R	   (   R   R7   Ra   R   Rb   Rc   R   (   R   R9   R$   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_remove_parentless  s    

c         C€  s/  t  j d d ƒ } t  j d | g ƒ } t  j d d ƒ } | j d | ƒ |  j | j d  ƒ |  j | j | ƒ |  j | j | g ƒ t  j d | g ƒ } | j d | ƒ |  j | j d  ƒ |  j | j | ƒ |  j | j d  ƒ |  j | j | g ƒ |  j t	 | j d | ƒ |  j t
 | j d t ƒ d  S(   Nid   R	   iè  R/   i    i   (   R   R   R7   t	   set_childR   Rb   Rc   R8   t   assertRaisest
   IndexErrort	   ExceptionR   (   R   R$   R9   R*   RB   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_set_child$  s    c         C€  sÐ   t  j d d ƒ } t  j d | g ƒ } t  j d d ƒ } | j d | ƒ |  j | j | ƒ |  j | j | | g ƒ t  j d d ƒ } | j d | ƒ |  j | j | | | g ƒ |  j t | j d t	 ƒ d  S(   Nid   R	   iè  R/   i    t   abci   (
   R   R   R7   t   insert_childR   Rb   R8   Rg   Ri   R   (   R   R$   R9   R*   R1   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_insert_child9  s    c         C€  s¿   t  j d g  ƒ } t  j d d ƒ } | j | ƒ |  j | j | ƒ |  j | j | g ƒ t  j d d ƒ } | j | ƒ |  j | j | ƒ |  j | j | | g ƒ |  j t | j t	 ƒ d  S(   Niè  id   R	   R/   (
   R   R7   R   t   append_childR   Rb   R8   Rg   Ri   R   (   R   R9   R$   R*   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_append_childI  s    c         C€  s|   t  j d g  ƒ } t  j d g  ƒ } t  j d | | g ƒ } |  j | j | k ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Niè  (   R   R7   R   t   next_siblingR   Rc   (   R   R9   RB   t   p1(    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_next_siblingY  s    c         C€  s|   t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } |  j | j | k ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Nid   R>   R?   iè  (   R   R   R7   R   Rp   R   Rc   (   R   R$   R*   Rq   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_next_siblingb  s    c         C€  s|   t  j d g  ƒ } t  j d g  ƒ } t  j d | | g ƒ } |  j | j | k ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Niè  (   R   R7   R   t   prev_siblingR   Rc   (   R   R9   RB   Rq   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_prev_siblingk  s    c         C€  s|   t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } |  j | j | k ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Nid   R>   R?   iè  (   R   R   R7   R   Rt   R   Rc   (   R   R$   R*   Rq   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_prev_siblingt  s    (   i   i   (&   t   __name__t
   __module__t   __doc__t   syst   version_infoR    R!   R%   R'   R+   R.   R3   R6   R:   R;   R<   R=   RC   RE   RF   RL   RN   RQ   RS   RV   RX   R[   R]   R`   Rd   Re   Rj   Rm   Ro   Rr   Rs   Ru   Rv   (    (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyR      sF   																
		
	
						
												t   TestPatternsc           B€  s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s&   Unit tests for tree matching patterns.c   
      C€  s‘  t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d | g ƒ } t  j d | | g ƒ } t  j d d d d ƒ} i  } |  j | j | d | ƒƒ |  j | i  ƒ |  j | j | d | ƒƒ |  j | i  ƒ |  j | j | d | ƒƒ |  j | i  ƒ |  j | j | d | ƒƒ |  j | i | d 6ƒ i  } |  j | j | d | ƒƒ |  j | i  ƒ t  j d | g d d ƒ}	 |  j |	 j | d | ƒƒ |  j | i  ƒ |  j |	 j | d | ƒƒ |  j | i  ƒ |  j |	 j | d | ƒƒ |  j | i | d 6| d 6ƒ i  } |  j |	 j | d | ƒƒ |  j | i  ƒ |  j |	 j | d | ƒƒ |  j | i  ƒ d  S(	   Nid   R	   R/   iè  t   namet   plt   resultst   pn(	   R   R   R7   t   LeafPatternR4   t   matchR   R   t   NodePattern(
   R   R$   R*   R1   R9   RB   t   rootR~   t   rR€   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_basic_patterns‚  s>    c         C€  sB  t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } t  j d | g ƒ } t  j d | | g ƒ } t  j d d d d ƒ} t  j d | g d d ƒ} t  j | g | | g g d d ƒ}	 i  }
 |  j |	 j | g |
 ƒ ƒ |  j |
 i  ƒ |  j |	 j | g |
 ƒ ƒ |  j |
 i  ƒ |  j	 |	 j | g |
 ƒ ƒ |  j t
 |
 j ƒ  ƒ d d d g ƒ |  j |
 d | ƒ |  j |
 d | ƒ |  j |
 d | g ƒ |  j |
 i | d 6| d 6| g d 6ƒ i  }
 |  j	 |	 j | | g |
 ƒ ƒ |  j |
 i | d 6| | g d 6ƒ |  j	 |
 d | k ƒ i  }
 d  S(	   Nid   R	   R/   iè  R}   R~   R€   t   pw(   R   R   R7   R   Rƒ   t   WildcardPatternR4   t	   match_seqR   R   R   t   keys(   R   R$   R*   R1   R9   RB   R„   R~   R€   R‡   R…   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_wildcard¦  s2    $%($c         C€  s’  t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } t  j d d ƒ } | | | | | | g } t  j d | ƒ } t  j d d d	 ƒ }	 t  j d d d
 ƒ }
 t  j d d d ƒ } t  j d d d ƒ } t  j d d d ƒ } t  j d d d ƒ } t  j |	 |
 | g | | g |	 |
 g | | g | | g g d d d d d d ƒ} |  j g  | j | ƒ D] } | d ^ q{d d d d d g ƒ t  j d d d | g d d ƒ } t t  j | g | g ƒ ƒ } |  j t	 | ƒ d ƒ | d \ } } |  j | d ƒ |  j t
 | d ƒ d ƒ |  j | d | | | | | | g ƒ x2 d D]* } |  j | d | t  j d | ƒ ƒ q`Wd  S(   Ni   R>   R?   R@   t   dt   eRY   iè  t   pat   pbt   pct   pdt   pet   pft   mint   maxi   R}   R‡   i    i   i   i   i   R"   t   contentt   prt   abcdeft   p(   R   R   R7   R   Rˆ   R   t   generate_matchesRƒ   R   R   R   (   R   t   lat   lbt   lct   ldt   let   lfRP   R„   RŽ   R   R   R‘   R’   R“   R‡   t   xR—   t   matchesR@   R…   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_generate_matchesÅ  s8    !)!&c         C€  sÄ   t  j d t  j d ƒ t  j d d ƒ t  j d ƒ f ƒ } t  j d d ƒ } t  j d d ƒ } t  j d d	 ƒ } t  j d | | | g ƒ } i  } |  j | j | | ƒ ƒ |  j | d | g ƒ d  S(
   NiK  i   R}   t   argsi   t   (i   R¡   t   )(	   R   Rƒ   R   Rˆ   R   R7   R   R‚   R   (   R   t   patternR$   R*   R1   t   nodeR…   (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   test_has_key_exampleã  s    	(   Rw   Rx   Ry   R†   R‹   R£   R©   (    (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyR|   ~  s
   	$		(   Ry   t
   __future__R    Rz   R   R   R   t   lib2to3R   R   t	   NameErrort   TestCaseR   R|   (    (    (    s/   /sys/lib/python2.7/lib2to3/tests/test_pytree.pyt   <module>
   s   ÿ a