ó
î%![c           @   s’   d  d l  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 e  j f d „  ƒ  YZ	 e
 d	 k rŽ e  j ƒ  n  d S(
   iÿÿÿÿN(   t   builder(   t   InferenceError(   t   nodes(   t   node_classes(   t   utilt   InferenceUtilc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sä   t  j d t t ƒ } | j d d } | j d k s; t ‚ g  | j t j	 ƒ D] } | j
 d k rN | ^ qN } t | ƒ d k s‡ t ‚ | d j d k s  t ‚ |  j t j | | d ƒ t ƒ |  j t j | | d ƒ t ƒ d  S(   Nsx   
        x = 10
        for x in range(5):
            print (x)

        if x > 0:
            print ('#' * x)
        t   xi    i   i   i   i   (   R    t   parset   __name__t   __file__t   localst   linenot   AssertionErrort   nodes_of_classR   t   Namet   namet   lent   assertEqualR   t   are_exclusivet   False(   t   selft   modulet   xass1t   nt   xnames(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyt   test_not_exclusive   s    4 c         C   s!  t  j d ƒ } | j d d } | j d d } | j d d } | j d d } | j d d } | j d d } |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ d  S(	   Ns£   
        if 1:
            a = 1
            a = 2
        elif 2:
            a = 12
            a = 13
        else:
            a = 3
            a = 4
        t   ai    i   i   i   i   i   (   R    R   R
   R   R   R   R   t   True(   R   R   t   a1t   a2t   a3t   a4t   a5t   a6(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyt   test_if#   s    
	c         C   sS  t  j d ƒ } | j d d } | j d d } | j d d } | j d d } |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ |  j t j | | ƒ t ƒ d  S(   Nsj  
        try:
            def exclusive_func2():
                "docstring"
        except TypeError:
            def exclusive_func2():
                "docstring"
        except:
            def exclusive_func2():
                "docstring"
        else:
            def exclusive_func2():
                "this one redefine the one defined line 42"
        t   exclusive_func2i    i   i   i   (   R    R   R
   R   R   R   R   R   (   R   R   t   f1t   f2t   f3t   f4(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyt   test_try_except<   s    	c         C   sm   t  j d ƒ } t | j ƒ  ƒ } t t j | ƒ ƒ } |  j t | ƒ d ƒ |  j	 t
 d „  | Dƒ ƒ ƒ d  S(   Ns@   
        x = [A] * 1
        f = [x, [A] * 2]
        f
        i   c         s   s   |  ] } | t  j k Vq d  S(   N(   t   astroid_utilt   Uninferable(   t   .0t   elt(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pys	   <genexpr>c   s   (   R    t   extract_nodet   nextt   infert   listR   t   unpack_inferR   R   t
   assertTruet   all(   R   t   nodet   inferredt   unpacked(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyt#   test_unpack_infer_uninferable_nodesZ   s    	c         C   sN   t  j d ƒ } t | j ƒ  ƒ } |  j t ƒ  t t j | ƒ ƒ Wd  QXd  S(   Ns   
        ()
        (	   R    R-   R.   R/   t   assertRaisesR   R0   R   R1   (   R   R4   R5   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyt   test_unpack_infer_empty_tuplef   s
    	(   R   t
   __module__R   R"   R(   R7   R9   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyR      s
   				t   __main__(   t   unittestt   astroidR    R   R   R   R   R)   t   TestCaseR   R   t   main(    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_utils.pyt   <module>   s   _