ó
î%![c           @   s>  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z 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 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 d l m Z e	 j ƒ  Z e j j j Z d e j e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d e f d „  ƒ  YZ! d e f d „  ƒ  YZ" e j# e j$ d ƒ d e f d „  ƒ  Yƒ Z% d e j e j f d „  ƒ  YZ& d e j f d  „  ƒ  YZ' d! e j f d" „  ƒ  YZ( d# e j f d$ „  ƒ  YZ) d% e j f d& „  ƒ  YZ* d' e j f d( „  ƒ  YZ+ d) e j f d* „  ƒ  YZ, d+ e j f d, „  ƒ  YZ- d- e j f d. „  ƒ  YZ. d/ e j f d0 „  ƒ  YZ/ e j0 d1 ƒ d2 e j f d3 „  ƒ  Yƒ Z1 d4 e j f d5 „  ƒ  YZ2 e d6 k r:e j3 ƒ  n  d S(7   s.   tests for specific behaviour of astroid nodes
iÿÿÿÿN(   t   bases(   t   builder(   t   context(   t
   exceptions(   t   node_classes(   t   nodes(   t   parse(   t   util(   t
   test_utils(   t
   transforms(   t	   resourcest   AsStringTestc           B   s¶   e  Z d  „  Z e j d d ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z e j d ƒ d
 „  ƒ Z e j d ƒ e j d „  ƒ ƒ Z d „  Z d „  Z d „  Z RS(   c         C   s}   d „  } |  j  | d ƒ j ƒ  d ƒ |  j  | d ƒ j ƒ  d ƒ |  j  | d ƒ j ƒ  d ƒ |  j  | d ƒ j ƒ  d ƒ d  S(   Nc         S   s   t  j |  ƒ j d j S(   Ni    (   t   abuildert   string_buildt   bodyt   value(   t   string(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   build)   s    s   1,s   (1, )s   1, 2, 3s	   (1, 2, 3)(   t   assertEqualt	   as_string(   t   selfR   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_tuple_as_string(   s
    	t   minvers   3.0c         C   sA   t  j d ƒ } t | ƒ } |  j | j ƒ  j ƒ  | j ƒ  ƒ d  S(   Ns[   
        def test(a, b, c=42, *, x=42, **kwargs):
            print(a, b, c, args)
        (   t   textwrapt   dedentR   R   R   t   strip(   R   t   codet   node(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_func_signature_issue_1851   s    	c         C   sa   t  j d ƒ } | j d j } t | j ƒ  ƒ } |  j | j ƒ  d ƒ |  j | j ƒ  d ƒ d  S(   Ns8   
        def foo():
            bar = [arg] * 1
        i    s   [Uninferable]s   ([arg]) * (1)(   R   t   extract_nodeR   R   t   nextt   inferR   R   (   R   R   t   binopt   inferred(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt.   test_as_string_for_list_containing_uninferable:   s    	c         C   sº   t  j d ƒ } g  | D] } t | j ƒ  ƒ ^ q } |  j | d j ƒ  d ƒ |  j | d j ƒ  d ƒ |  j | d j ƒ  d ƒ |  j | d j ƒ  d	 ƒ |  j | d
 j ƒ  d ƒ d  S(   Nsž   
        frozenset((1, 2, 3)) #@
        frozenset({1, 2, 3}) #@
        frozenset([1, 2, 3,]) #@

        frozenset(None) #@
        frozenset(1) #@
        i    s   frozenset((1, 2, 3))i   s   frozenset({1, 2, 3})i   s   frozenset([1, 2, 3])i   s   frozenset(None)i   s   frozenset(1)(   R   R   R   R   R   R   t   assertNotEqual(   R   t	   ast_nodesR   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_frozenset_as_stringD   s    	%c         C   s0   t  j d ƒ j d } |  j | j ƒ  d ƒ d  S(   Ns   raise_string(*args, **kwargs)i    (   R   R   R   R   R   (   R   t   ast(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_varargs_kwargs_as_stringV   s    c         C   sS   t  j d d ƒ } t t  j d ƒ d ƒ # } |  j | j ƒ  | j ƒ  ƒ Wd QXd S(   sN   check as_string on a whole module prepared to be returned identically
        s   data/module.pys   data.modulet   rN(   R
   t
   build_filet   opent   findt   assertMultiLineEqualR   t   read(   R   t   modulet   fobj(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_module_as_stringZ   s    c         C   sS   t  j d d ƒ } t t  j d ƒ d ƒ # } |  j | j ƒ  | j ƒ  ƒ Wd QXd S(   sN   check as_string on a whole module prepared to be returned identically
        s   data/module2.pys   data.module2R(   N(   R
   R)   R*   R+   R,   R   R-   (   R   t   module2R/   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_module2_as_stringa   s    c         C   s/   d } t  j | ƒ } |  j | j ƒ  | ƒ d S(   s(   check as_string for python syntax >= 2.7sT   one_two = {1, 2}
b = {v: k for (k, v) in enumerate('string')}
cdd = {k for k in b}

N(   R   R   R,   R   (   R   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_as_stringh   s    c         C   s/   d } t  j | ƒ } |  j | j ƒ  | ƒ d S(   s$   check as_string for python 3k syntaxs¬   print()

def function(var):
    nonlocal counter
    try:
        hello
    except NameError as nexc:
        (*hell, o) = b'hello'
        raise AttributeError from nexc

N(   R   R   R   R   (   R   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_3k_as_stringp   s    c         C   s8   t  j d ƒ } t j | ƒ } |  j | j ƒ  | ƒ d  S(   Ns”   
        def function(var:int):
            nonlocal counter

        class Language(metaclass=Natural):
            """natural language"""
        (   R   R   R   R   R   R   (   R   t   code_annotationsR&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt!   test_3k_annotations_and_metaclass€   s    	c         C   s0   t  j d ƒ j d } |  j | j ƒ  d ƒ d  S(   Ns   a[...]i    (   R   R   R   R   R   (   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_ellipsisŽ   s    c         C   sA   x: d
 D]2 } t  j | ƒ j d	 } |  j | j ƒ  | ƒ q Wd  S(   Ns   a[0]s   a[1:3]s   a[:-1:step]s   a[:,newaxis]s   a[newaxis,:]s
   del L[::2]s   del A[1]s	   del Br[:]i    (   s   a[0]s   a[1:3]s   a[:-1:step]s   a[:,newaxis]s   a[newaxis,:]s
   del L[::2]s   del A[1]s	   del Br[:](   R   R   R   R   R   (   R   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_slices’   s    
c         C   s/   d } t  j | ƒ } |  j | j ƒ  | ƒ d  S(   Ns?  a[:1] = bord[2:]
a[:1] = bord[2:]
del bree[3:d]
bord[2:]
del av[d::f], a[df:]
a[:1] = bord[2:]
del SRC[::1,newaxis,1:]
tous[vals] = 1010
del thousand[key]
del a[::2], a[:-1:step]
del Fee.form[left:]
aout.vals = miles.of_stuff
del (ccok, (name.thing, foo.attrib.value)), Fee.form[left:]
if all[1] == bord[0:]:
    pass

(   R   R   R   R   (   R   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_slice_and_subscripts˜   s    (   t   __name__t
   __module__R   R   t   require_versionR   R"   R%   R'   R0   R2   R3   R4   t   unittestt   expectedFailureR6   R7   R8   R9   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR   &   s   				
							t	   _NodeTestc           B   s#   e  Z d  Z d Z e d „  ƒ Z RS(   s   test transformation of If Nodec         C   sI   y |  j  j d SWn0 t k
 rD t j |  j ƒ } | |  j  _ | SXd  S(   Nt   CODE_Astroid(   t	   __class__t   __dict__t   KeyErrorR   R   t   CODER@   (   R   R.   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   astroid°   s    N(   R:   R;   t   __doc__t   NoneRD   t   propertyRE   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR?   ¬   s   t
   IfNodeTestc           B   s&   e  Z d  Z d Z d „  Z d „  Z RS(   s   test transformation of If NodesC  
        if 0:
            print()

        if True:
            print()
        else:
            pass

        if "":
            print()
        elif []:
            raise

        if 1:
            print()
        elif True:
            print()
        elif func():
            pass
        else:
            raise
    c         C   s×   |  j  t |  j j ƒ d ƒ x' |  j j D] } |  j | t j ƒ q) W|  j |  j j d j ƒ |  j |  j j d j d t j	 ƒ |  j |  j j d j d t j ƒ |  j |  j j d j d j d t j ƒ d S(   s   test transformation for If nodei   i    i   i   i   N(
   R   t   lenRE   R   t   assertIsInstanceR   t   Ift   assertFalset   orelset   Pass(   R   t   stmt(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_if_elif_else_nodeÔ   s    $$c         C   sÖ   |  j  |  j j d ƒ d	 ƒ |  j  |  j j d ƒ d
 ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d j d ƒ d ƒ |  j  |  j j d j d j d ƒ d ƒ d  S(   Ni   i    i   i
   i   i   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RE   t   block_rangeR   RN   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_block_rangeÞ   s    ##*(   R:   R;   RF   RD   RQ   RS   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRI   º   s   	
t   TryExceptNodeTestc           B   s   e  Z d  Z d „  Z RS(   sª   
        try:
            print ('pouet')
        except IOError:
            pass
        except UnicodeError:
            print()
        else:
            print()
    c         C   s  |  j  |  j j d j d ƒ d
 ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d	 ƒ d ƒ |  j  |  j j d j d ƒ d ƒ d  S(   Ni    i   i   i   i   i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RE   R   RR   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRS   ô   s    #######(   R:   R;   RD   RS   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRT   è   s   
t   TryFinallyNodeTestc           B   s   e  Z d  Z d „  Z RS(   s[   
        try:
            print ('pouet')
        finally:
            print ('pouet')
    c         C   s   |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d	 ƒ d  S(
   Ni    i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RE   R   RR   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRS     s    ###(   R:   R;   RD   RS   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRU      s   t   TryExceptFinallyNodeTestc           B   s   e  Z d  Z d „  Z RS(   s   
        try:
            print('pouet')
        except Exception:
            print ('oops')
        finally:
            print ('pouet')
    c         C   sÖ   |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d	 ƒ |  j  |  j j d j d ƒ d
 ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ |  j  |  j j d j d ƒ d ƒ d  S(   Ni    i   i   i   i   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   R   RE   R   RR   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRS     s    #####(   R:   R;   RD   RS   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRV     s   s   Python 2 specific test.t   TryExcept2xNodeTestc           B   s   e  Z d  Z d „  Z RS(   sd   
        try:
            hello
        except AttributeError, (retval, desc):
            pass
    c         C   s1   |  j  j d j d } |  j | j t j ƒ d  S(   Ni    (   RE   R   t   handlersRK   t   nameR   t   Tuple(   R   t   handler(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_tuple_attribute.  s    (   R:   R;   RD   R\   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRW   $  s   t   ImportNodeTestc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   sA   t  t |  ƒ j ƒ  t j d d ƒ |  _ t j d d ƒ |  _ d  S(   Ns   data/module.pys   data.modules   data/module2.pys   data.module2(   t   superR]   t   setUpR
   R)   R.   R1   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR_   4  s    c         C   s{   t  |  j j d ƒ ƒ } |  j t | t j ƒ | ƒ |  j | j d ƒ |  j | j	 ƒ  d ƒ |  j | j
 ƒ  d t ƒ d  S(   Nt   myost   oss	   %s.module(   R   R1   t   igetattrt
   assertTruet
   isinstanceR   t   ModuleR   RY   t   qnamet   pytypet   BUILTINS(   R   R`   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_import_self_resolve9  s
    c         C   sþ   t  |  j j d ƒ ƒ } |  j t | t j ƒ | ƒ |  j | j ƒ  j	 d ƒ |  j | j
 ƒ  d ƒ |  j | j ƒ  d t ƒ t  |  j j d ƒ ƒ } |  j t | t j ƒ | ƒ |  j | j ƒ  j	 d ƒ |  j | j
 ƒ  d ƒ |  j | j ƒ  d t ƒ d  S(	   Nt   NameNodes   astroid.node_classess   astroid.node_classes.Names   %s.typet   abspaths   os.paths   os.path.abspaths   %s.function(   R   R.   Rb   Rc   Rd   R   t   ClassDefR   t   rootRY   Rf   Rg   Rh   R1   t   FunctionDef(   R   t   namenodeRk   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_from_self_resolve@  s    c         C   sç   |  j  d } |  j | j d ƒ d ƒ |  j  d } |  j | j d ƒ d ƒ |  j t j | j d ƒ |  j  d } |  j | j d ƒ d ƒ |  j t j | j d ƒ |  j d } |  j | j d ƒ d ƒ |  j t j | j d ƒ d  S(   NRj   t   NameRa   s   os.patht   YOt   data(   R.   R   t	   real_namet   assertRaisesR   t   AttributeInferenceErrorR1   (   R   t   from_t   imp_(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_real_nameL  s    c         C   s˜   |  j  d } |  j | j ƒ  d ƒ |  j  d } |  j | j ƒ  d ƒ |  j  d } |  j | j ƒ  d ƒ d } t j | ƒ } |  j | j ƒ  | ƒ d  S(   Nt   modutilss   from astroid import modutilsRj   s1   from astroid.node_classes import Name as NameNodeRa   s   import os.pathsY   from . import here
from .. import door
from .store import bread
from ..cave import wine

(   R.   R   R   R   R   R,   (   R   R&   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR3   Y  s    c         C   sŠ   d } t  j | ƒ } | j d j d j } t t j | ƒ ƒ } |  j | d t	 j
 ƒ |  j | d j d ƒ |  j | d t j ƒ d S(   sn  When we import PickleError from nonexistent, a call to the infer
        method of this From node will be made by unpack_infer.
        inference.infer_from will try to import this module, which will fail and
        raise a InferenceException (by mixins.do_import_module). The infer_name
        will catch this exception and yield and Uninferable instead.
        sù   
            try:
                from pickle import PickleError
            except ImportError:
                from nonexistent import PickleError

            try:
                pass
            except PickleError:
                pass
        i   i    t   PickleErroriÿÿÿÿN(   R   R   R   RX   t   typet   listR   t   unpack_inferRK   R   Rl   R   RY   t   assertIsR   t   Uninferable(   R   R   R.   t   handler_typet   excs(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_bad_import_inferenceg  s    c         C   s‰   t  j d ƒ } t j ƒ  } d | _ t | d j | ƒ ƒ d | _ t | d j | ƒ ƒ } |  j | j j	 t
 j j d d ƒ ƒ ƒ d  S(   Ns   data/absimport.pyt   messaget   emailRs   s   email.py(   R
   R)   t
   contextmodt   InferenceContextt
   lookupnameR   R   RM   t   filet
   startswithRa   t   patht   join(   R   R.   t   ctxt   m(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_absolute_import‡  s    		c         C   s)   t  j d d ƒ } |  j d | j ƒ d  S(   Ns   data/module1abs/__init__.pys   data.module1abst   sys(   R
   R)   t   assertInt   locals(   R   R.   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_more_absolute_import‘  s    (
   R:   R;   R_   Ri   Rp   Ry   R3   Rƒ   R   R“   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR]   3  s   						 	
t   CmpNodeTestc           B   s   e  Z d  „  Z RS(   c         C   s0   t  j d ƒ j d } |  j | j ƒ  d ƒ d  S(   Ns   a == 2i    (   R   R   R   R   R   (   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR3   —  s    (   R:   R;   R3   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR”   –  s   t   ConstNodeTestc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s   t  j | ƒ } |  j | j t  j ƒ |  j | j j | j j ƒ |  j	 | j
 | ƒ |  j | j j ƒ |  j | j j ƒ  j | j j ƒ d  S(   N(   R   t   const_factoryRK   t   _proxiedRl   R   RY   RA   R:   R   R   Rc   t   parentRm   R;   (   R   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   _testž  s    c         C   s   |  j  d  ƒ d  S(   N(   R™   RG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt	   test_none§  s    c         C   s   |  j  t ƒ d  S(   N(   R™   t   True(   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt	   test_boolª  s    c         C   s   |  j  d ƒ d  S(   Ni   (   R™   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_int­  s    c         C   s   |  j  d ƒ d  S(   Ng      ð?(   R™   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt
   test_float°  s    c         C   s   |  j  d ƒ d  S(   Ny              ð?(   R™   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_complex³  s    c         C   s   |  j  d ƒ d  S(   Nt   a(   R™   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_str¶  s    c         C   s   |  j  d ƒ d  S(   Nu   a(   R™   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_unicode¹  s    (
   R:   R;   R™   Rš   Rœ   R   Rž   RŸ   R¡   R¢   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR•   œ  s   								t   NameNodeTestc           B   s   e  Z d  „  Z RS(   c         C   s»   d } t  j d k r> |  j t j ƒ  t j | ƒ Wd QXny t j | ƒ } | d } |  j | t j	 ƒ |  j
 | j d ƒ | j d j d } |  j | t j ƒ |  j
 | j d ƒ d S(   s0   test that True and False assignments don't crashsj   
            True = False
            def hello(False):
                pass
            del True
        i   i    NR›   i   (   i   i    (   R   t   version_infoRu   R   t   AstroidBuildingErrorR   R   RK   R   t
   AssignNameR   RY   R   t   targetst   DelName(   R   R   R&   t   assign_truet   del_true(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_assign_to_True¾  s    
(   R:   R;   R«   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR£   ½  s   t   AnnAssignNodeTestc           B   st   e  Z e j d  d ƒ d „  ƒ Z e j d  d ƒ d „  ƒ Z e j d  d ƒ d „  ƒ Z e j d  d ƒ d „  ƒ Z RS(   R   s   3.6c         C   sŠ   t  j d ƒ } t j | ƒ } |  j | t j ƒ |  j | j j	 d ƒ |  j | j
 j	 d ƒ |  j | j j d ƒ |  j | j d ƒ d  S(   Ns#   
            test: int = 5
        t   testt   inti   i   (   R   R   R   R   RK   R   t	   AnnAssignR   t   targetRY   t
   annotationR   t   simple(   R   R   t   assign(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_primitiveÔ  s    	c         C   st   t  j d ƒ } t j | ƒ } |  j | t j ƒ |  j | j j	 d ƒ |  j | j
 j	 d ƒ |  j | j d  ƒ d  S(   Ns   
            test: str
        R­   t   str(   R   R   R   R   RK   R   R¯   R   R°   RY   R±   R   RG   (   R   R   R³   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt$   test_primitive_without_initial_valueà  s    	c         C   sw   t  j d ƒ } t j | ƒ } |  j | t j ƒ |  j | j j	 d ƒ |  j | j
 t j ƒ |  j | j t j ƒ d  S(   Ns0   
            test: Dict[List[str]] = {}
        R­   (   R   R   R   R   RK   R   R¯   R   R°   RY   R±   RE   t	   SubscriptR   t   Dict(   R   R   R³   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRŸ   ë  s    	c         C   sD   t  j d ƒ } t j | ƒ } |  j | j ƒ  j ƒ  | j ƒ  ƒ d  S(   Ns}   
            print()
            test: int = 5
            test2: str
            test3: List[Dict[(str, str)]] = []
        (   R   R   R   R   R   R   R   (   R   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR3   ö  s    	(   R:   R;   R   R<   R´   R¶   RŸ   R3   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR¬   Ó  s   t   ArgumentsNodeTCc           B   s,   e  Z d  „  Z e j d d ƒ d „  ƒ Z RS(   c         C   sÒ   t  j d ƒ } |  j | d j j d ƒ |  j | d j j ƒ t | d j ƒ  ƒ } |  j | j j d ƒ |  j | j j	 d ƒ |  j | j j ƒ t
 j d	 k  rÁ |  j | d j j	 d ƒ n |  j d ƒ d  S(
   NsY   
            def func(a,
                b): pass
            x = lambda x: None
        t   funci   t   xi   i   i    sJ   FIXME  http://bugs.python.org/issue10445 (no line number on function args)(   i   i    (   R   R   R   t   argst
   fromlinenoRM   t   is_statementR   R   t   tolinenoR   R¤   t   skipTest(   R   R&   t   xlambda(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_linenumbering  s    	R   s   3.0c         C   s6   t  j d ƒ } | d j } |  j | j d ƒ ƒ d  S(   Ns:   
            def func(*, x):
                pass
        Rº   R»   (   R   R   R¼   Rc   t   is_argument(   R   R&   R¼   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_kwoargs  s    	(   R:   R;   RÂ   R   R<   RÄ   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR¹     s   	t   UnboundMethodNodeTestc           B   s   e  Z d  „  Z RS(   c         C   sˆ   t  j d ƒ } t | d j ƒ  ƒ } |  j t j ƒ  | j d ƒ Wd  QX| j d ƒ d } |  j | t	 j
 ƒ |  j | j d ƒ d  S(   Nsi   
        class A(object):
            def test(self):
                pass
        meth = A.test
        t   metht   __missssing__R:   i    R­   (   R   R   R   R   Ru   R   Rv   t   getattrRK   R   t   ConstR   R   (   R   R&   R   RY   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_no_super_getattr!  s    	(   R:   R;   RÊ   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRÅ     s   t   BoundMethodNodeTestc           B   s   e  Z d  „  Z RS(   c         C   s   t  j d ƒ } xP d D]H } t | | j ƒ  ƒ } |  j | t j | ƒ |  j | j d	 | ƒ q Wt | d
 j ƒ  ƒ } |  j | t	 j
 ƒ d  S(   NsÜ  
        import abc

        def cached_property():
            # Not a real decorator, but we don't care
            pass
        def reify():
            # Same as cached_property
            pass
        def lazy_property():
            pass
        def lazyproperty():
            pass
        def lazy(): pass
        class A(object):
            @property
            def builtin_property(self):
                return 42
            @abc.abstractproperty
            def abc_property(self):
                return 42
            @cached_property
            def cached_property(self): return 42
            @reify
            def reified(self): return 42
            @lazy_property
            def lazy_prop(self): return 42
            @lazyproperty
            def lazyprop(self): return 42
            def not_prop(self): pass
            @lazy
            def decorated_with_lazy(self): return 42

        cls = A()
        builtin_property = cls.builtin_property
        abc_property = cls.abc_property
        cached_p = cls.cached_property
        reified = cls.reified
        not_prop = cls.not_prop
        lazy_prop = cls.lazy_prop
        lazyprop = cls.lazyprop
        decorated_with_lazy = cls.decorated_with_lazy
        t   builtin_propertyt   abc_propertyt   cached_pt   reifiedt	   lazy_propt   lazypropt   decorated_with_lazyi*   t   not_prop(   RÌ   RÍ   RÎ   RÏ   RÐ   RÑ   RÒ   (   R   R   R   R   RK   R   RÉ   R   R   R    t   BoundMethod(   R   R&   t   propR!   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_is_property6  s    *	
(   R:   R;   RÖ   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyRË   4  s   t   AliasesTestc           B   sA   e  Z d  „  Z d „  Z d „  Z e j e j d ƒ d „  ƒ Z	 RS(   c         C   s   t  j ƒ  |  _ d  S(   N(   R	   t   TransformVisitort   transformer(   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR_   n  s    c         C   s"   t  | d t ƒ} |  j j | ƒ S(   Nt   apply_transforms(   R   t   FalseRÙ   t   visit(   R   R   R.   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   parse_transformq  s    c         C   s  d „  } d „  } d „  } d „  } d „  } d „  } d „  } d „  } |  j  j t j | ƒ |  j  j t j | ƒ |  j  j t j | ƒ |  j  j t j | ƒ |  j  j t j | ƒ |  j  j t j | ƒ |  j  j t j	 | ƒ |  j  j t j
 | ƒ d	 }	 |  j |	 ƒ }
 |  j t |
 j d
 j ƒ d ƒ |  j |
 j d
 t j ƒ |  j |
 j d j d ƒ |  j |
 j d t j ƒ |  j |
 j d j d ƒ |  j |
 j d t j ƒ |  j |
 j d j d
 j d ƒ |  j |
 j d j d
 t j ƒ |  j |
 j d j j j d ƒ |  j |
 j d j t j ƒ |  j |
 j d j d
 j d ƒ |  j |
 j d j d
 t j ƒ |  j |
 j d t j ƒ |  j |
 j d j j d ƒ |  j |
 j d j t j ƒ |  j |
 j d j j j d ƒ |  j |
 j d j t j ƒ d  S(   Nc         S   s   |  j  d g |  _  |  S(   Nt   absolute_import(   RÞ   N(   t   namesRG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt	   test_fromv  s    c         S   s   d |  _  |  S(   Nt   Bar(   RY   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt
   test_classz  s    	c         S   s   d |  _  |  S(   Nt   another_test(   RY   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_function~  s    	c         S   s&   |  j  j d k r" d |  j  _ |  Sd  S(   Nt   FooRá   (   Rº   RY   RG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_callfunc‚  s    c         S   s2   |  j  d k r. t j d |  j |  j |  j ƒ Sd  S(   Nt   foot   bar(   RY   R   R¦   t   linenot
   col_offsetR˜   RG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_assnameˆ  s    
c         S   s    |  j  d k r d |  _  |  Sd  S(   NR    t   b(   t   attrnameRG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_assattrŽ  s    	c         S   s    |  j  d k r d |  _  |  Sd  S(   NR    Rì   (   Rí   RG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_getattr”  s    	c         S   s>   |  j  j d k r: t j d |  j |  j |  j ƒ |  _  |  Sd  S(   Ni   i   (   t   eltR   R   RÉ   Ré   Rê   R˜   RG   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_genexprš  s
    sÍ   
        from __future__ import print_function

        class Foo: pass

        def test(a): return a

        foo = Foo()
        foo.a = test(42)
        foo.a
        (1 for _ in range(0, 42))
        i    i   i   Rá   Rã   i   Rè   i   Rì   i   i   (    RÙ   t   register_transformR   t   Fromt   Classt   Functiont   CallFunct   AssNamet   AssAttrt   Getattrt   GenExprRÝ   R   RJ   R   Rß   RK   t
   ImportFromRY   Rl   Rn   R§   R¦   R   Rº   t   CallRí   t
   AssignAttrt   Exprt	   AttributeRð   t   GeneratorExp(   R   Rà   Râ   Rä   Ræ   Rë   Rî   Rï   Rñ   R   R.   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_aliasesu  sF    								 !! !! s!   Python 3 doesn't have Repr nodes.c         C   so   d „  } |  j  j t j | ƒ |  j d ƒ } |  j | j d j j j d ƒ |  j	 | j d j t j
 ƒ d  S(   Nc         S   s   d |  j  _ |  S(   NRè   (   R   RY   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_backquoteÍ  s    s   `foo`i    Rè   (   RÙ   Rò   R   t	   BackquoteRÝ   R   R   R   RY   RK   t   Repr(   R   R  R.   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt	   test_reprË  s
    	 (
   R:   R;   R_   RÝ   R  R=   t   skipIft   sixt   PY3R  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR×   l  s   			Vt   DeprecationWarningsTestc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s:  d } t  | ƒ } | j d } | j d j d } | j d } t j d t ƒ > } t j t ƒ & | j	 ƒ  |  j
 | d j t ƒ Wd  QXWd  QXt j d t ƒ > } t j t ƒ & | j	 ƒ  |  j
 | d j t ƒ Wd  QXWd  QXt j d t ƒ > } t j t ƒ & | j	 ƒ  |  j
 | d j t ƒ Wd  QXWd  QXd  S(   Nsx   
        class C: pass
        c = C()
        with warnings.catch_warnings(record=True) as w:
            pass
        i    i   i   t   record(   R   R   R§   t   warningst   catch_warningsR›   R   t   enable_warningt   PendingDeprecationWarningt   ass_typeRK   R„   (   R   R   R.   t   filter_stmts_mixint   assign_type_mixint   parent_assign_type_mixint   w(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_asstype_warningsÚ  s"    
#
#
c         C   sÓ   d } xÆ t  j t  j t  j t  j t  j t  j t  j f D]” } t j	 d t
 ƒ * } t j t ƒ  t d | ƒ Wd  QXWd  QX|  j | d j t ƒ | | j j | j j f } |  j t | d j ƒ | ƒ q7 Wd  S(   NsF   %r is deprecated and slated for removal in astroid 2.0, use %r insteadR
  i*   i    (   R   t   DiscardR  R÷   Rø   Rù   Rö   Ró   R  R  R›   R   R  R  Rd   RK   R„   RA   R:   t   __wrapped__R   Rµ   (   R   t
   msg_formatt   clsR  t
   actual_msg(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_isinstance_warningsó  s    "(   R:   R;   R  R  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR	  Ù  s   	s   3.5t   Python35AsyncTestc           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  j d ƒ \ } } } } |  j | t j ƒ |  j | t j ƒ |  j | t j ƒ |  j | t j ƒ |  j | j t j	 ƒ d  S(   Ns¦   
        async def func(): #@
            async for i in range(10): #@
                f = __(await i)
            async with test(): #@
                pass
        (
   R   R   RK   R   t   AsyncFunctionDeft   AsyncFort	   AsyncWitht   AwaitR   Rq   (   R   t	   async_deft	   async_fort
   async_witht
   await_node(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_async_await_keywords  s    c         C   s2   t  | ƒ } |  j | j ƒ  j ƒ  | j ƒ  ƒ d  S(   N(   R   R   R   R   (   R   R   t   ast_node(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   _test_await_async_as_string  s    c         C   s    t  j d ƒ } |  j | ƒ d  S(   Ns<   
        async def function():
            await 42
        (   R   R   R&  (   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_await_as_string  s    	c         C   s    t  j d ƒ } |  j | ƒ d  S(   NsY   
        async def function():
            async with (42):
                pass
        (   R   R   R&  (   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_asyncwith_as_string  s    	c         C   s    t  j d ƒ } |  j | ƒ d  S(   Nsf   
        async def function():
            async for i in range(10):
                await 42
        (   R   R   R&  (   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_asyncfor_as_string$  s    	(   R:   R;   R$  R&  R'  R(  R)  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR     s
   				t   ContextTestc           B   s†   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 e
 j d d	 ƒ d
 „  ƒ Z e
 j d d ƒ d „  ƒ Z RS(   c         C   s)   t  j d ƒ } |  j | j t j ƒ d  S(   Ns   f[1](   R   R   R   R   RE   t   Load(   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_subscript_load/  s    c         C   s0   t  j d ƒ } |  j | j d j t j ƒ d  S(   Ns   del f[1]i    (   R   R   R   R§   R   RE   t   Del(   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_subscript_del3  s    c         C   s6   t  j d ƒ } | j d } |  j | j t j ƒ d  S(   Ns   f[1] = 2i    (   R   R   R§   R   R   RE   t   Store(   R   R   t	   subscript(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_subscript_store7  s    c         C   s)   t  j d ƒ } |  j | j t j ƒ d  S(   Ns   [](   R   R   R   R   RE   R+  (   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_list_load<  s    c         C   s0   t  j d ƒ } |  j | j d j t j ƒ d  S(   Ns   del []i    (   R   R   R   R§   R   RE   R-  (   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_list_del@  s    c         C   s*   |  j  t j ƒ  t j d ƒ Wd  QXd  S(   Ns   [0] = 2(   Ru   R   t   AstroidSyntaxErrorR   R   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_list_storeD  s    c         C   s)   t  j d ƒ } |  j | j t j ƒ d  S(   Ns   (1, )(   R   R   R   R   RE   R+  (   R   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_tuple_loadH  s    c         C   s*   |  j  t j ƒ  t j d ƒ Wd  QXd  S(   Ns	   (1, ) = 3(   Ru   R   R4  R   R   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_tuple_storeL  s    R   s   3.5c         C   s2   t  j d ƒ } | j } |  j | j t j ƒ d  S(   Ns   a = *b(   R   R   R   R   R   RE   R+  (   R   R   t   starred(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_starred_loadP  s    	s   3.0c         C   s=   t  j d ƒ } | j d j d } |  j | j t j ƒ d  S(   Ns   a, *b = 1, 2i    i   (   R   R   R§   t   eltsR   R   RE   R/  (   R   R   R8  (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   test_starred_storeV  s    (   R:   R;   R,  R.  R1  R2  R3  R5  R6  R7  R   R<   R9  R;  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyR*  -  s   								t   __main__(4   RF   Ra   R   R   R=   R  R  RE   R    R   R   R†   R   R   R   R   R   R   R	   t   astroid.testsR
   t   AstroidBuilderR   t   movest   builtinsR:   Rh   t   SysPathSetupt   TestCaseR   R?   RI   RT   RU   RV   R  R  RW   R]   R”   R•   R£   R¬   R¹   RÅ   RË   R×   R	  R<   R  R*  t   main(    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_nodes.pyt   <module>   sV   †.c!/8m',0