ó
Š]c           @€  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*   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*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_deprecated_prefix_methods$   s    c         C€  s   |  j  t t j ƒ d  S(   N(   t   assertRaisest   AssertionErrorR   t   Base(   R   (    (    s*   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*   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*   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*   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*   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*   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*   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È   R2   iè  (   R   R   t   NodeR   R%   t   children(   R   R'   R-   t   n1(    (    s*   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	   R2   R+   R,   i   i    iè  s   Node(1000, [%s, %s])(   i   i    (   R   R   R:   R   R)   (   R   R'   R-   R<   (    (    s*   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	   R2   R+   R,   i   i    iè  s   foo bar(   i   i    (   R   R   R:   R   R   (   R   R'   R-   R<   (    (    s*   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   R:   (   R   R'   R<   (    (    s*   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   aR2   t   biè  R   t   c(   R   R   R:   R   t
   get_suffixR   (   R   R'   R-   R<   R4   t   n2(    (    s*   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   R:   R   R3   (   R   R<   RE   t   n3(    (    s*   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è  R2   (   R   R   R:   R   R3   (   R   R'   R-   R<   RE   R4   RG   (    (    s*   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 | j t ƒ |  j | j ƒ t  j d d ƒ } | j	 | ƒ |  j | j | | | g ƒ |  j | j t ƒ |  j
 | j ƒ d  S(   Nid   R	   t   +R2   iè  t   -(   R   R   R:   R   R;   t   assertIsInstanceR   R7   R8   t   replaceR   (   R   R'   R-   R4   R<   t   l2new(    (    s*   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 | j t ƒ d  S(   Nid   R	   RJ   R2   iè  t   *s   foo**bar(	   R   R   R:   RM   R   R   RL   R;   R   (   R   R'   R-   R4   R<   (    (    s*   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	   R2   t   fooeyiè  (   R   R   R:   R   R   t   leaves(   R   R'   R-   R4   RE   RG   R<   (    (    s*   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	   R2   iè  i   i   i    (   R   R   R:   R   t   depth(   R   R'   R-   RE   RG   R<   (    (    s*   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	   R2   RR   iè  (   R   R   R:   R   R   t
   post_order(   R   R'   R-   R4   t   c1R<   (    (    s*   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	   R2   RR   iè  (   R   R   R:   R   R   t	   pre_order(   R   R'   R-   R4   RX   R<   (    (    s*   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	   RJ   R2   (   R   R   R7   R8   t   changedR   R:   (   R   R'   R<   R-   R4   RE   (    (    s*   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*   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(   R_   R   (   R   R   R:   R   R   R   R   (   R   R   R'   R-   R<   (    (    s*   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   R:   R   t   removeR;   t   parentt   NoneR7   R8   R   (   R   R'   R-   R<   RE   (    (    s*   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   R:   Rd   R   Re   Rf   R   (   R   R<   R'   (    (    s*   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è  R2   i    i   (   R   R   R:   t	   set_childR   Re   Rf   R;   R!   t
   IndexErrort	   ExceptionR   (   R   R'   R<   R-   RE   (    (    s*   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è  R2   i    t   abci   (
   R   R   R:   t   insert_childR   Re   R;   R!   Rk   R   (   R   R'   R<   R-   R4   (    (    s*   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	   R2   (
   R   R:   R   t   append_childR   Re   R;   R!   Rk   R   (   R   R<   R'   R-   (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_append_childI  s    c         C€  sy   t  j d g  ƒ } t  j d g  ƒ } t  j d | | g ƒ } |  j | j | ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Niè  (   R   R:   t   assertIst   next_siblingR   Rf   (   R   R<   RE   t   p1(    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_next_siblingY  s    c         C€  sy   t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } |  j | j | ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Nid   RA   RB   iè  (   R   R   R:   Rr   Rs   R   Rf   (   R   R'   R-   Rt   (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_leaf_next_siblingb  s    c         C€  sy   t  j d g  ƒ } t  j d g  ƒ } t  j d | | g ƒ } |  j | j | ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Niè  (   R   R:   Rr   t   prev_siblingR   Rf   (   R   R<   RE   Rt   (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_node_prev_siblingk  s    c         C€  sy   t  j d d ƒ } t  j d d ƒ } t  j d | | g ƒ } |  j | j | ƒ |  j | j d  ƒ |  j | j d  ƒ d  S(   Nid   RA   RB   iè  (   R   R   R:   Rr   Rw   R   Rf   (   R   R'   R-   Rt   (    (    s*   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.   R1   R6   R9   R=   R>   R?   R@   RF   RH   RI   RO   RQ   RT   RV   RY   R[   R^   R`   Rc   Rg   Rh   Rl   Ro   Rq   Ru   Rv   Rx   Ry   (    (    (    s*   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	   R2   iè  t   namet   plt   resultst   pn(	   R   R   R:   t   LeafPatternR7   t   matchR   R   t   NodePattern(
   R   R'   R-   R4   R<   RE   t   rootR   t   rRƒ   (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_basic_patterns‚  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 ƒ } 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 | ƒ i  }
 d  S(	   Nid   R	   R2   iè  R€   R   Rƒ   t   pw(   R   R   R:   R„   R†   t   WildcardPatternR7   t	   match_seqR   R   R   t   keysRr   (   R   R'   R-   R4   R<   RE   R‡   R   Rƒ   RŠ   Rˆ   (    (    s*   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   RA   RB   RC   t   dt   eR\   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   R:   R„   R‹   R   t   generate_matchesR†   R   R   R   (   R   t   lat   lbt   lct   ldt   let   lfRS   R‡   R‘   R’   R“   R”   R•   R–   RŠ   t   xRš   t   matchesRC   Rˆ   (    (    s*   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   R:   R   R…   R   (   R   t   patternR'   R-   R4   t   nodeRˆ   (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   test_has_key_exampleã  s    	(   Rz   R{   R|   R‰   RŽ   R¦   R¬   (    (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyR   ~  s
   	$		(   R|   t
   __future__R    R}   R   R   R   t   lib2to3R   R   t	   NameErrort   TestCaseR   R   (    (    (    s*   lib/python2.7/lib2to3/tests/test_pytree.pyt   <module>
   s   ÿ a