
%![c           @   ss  d  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 e j   Z e j j j Z d
 e j f d     YZ d e j f d     YZ d e j f d     YZ d e j e f d     YZ e j e j d  d e j f d     Y Z e d k roe j   n  d S(   s2   tests for the astroid builder and rebuilder moduleiN(   t   builder(   t
   exceptions(   t   manager(   t   nodes(   t
   test_utils(   t   util(   t	   resourcest   FromToLineNoTestc           B   sk   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   c         C   s   t  j d  |  _ d  S(   Ns   data/format.py(   R   t
   build_filet   astroid(   t   self(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   setUp   s    c   
      C   s  |  j  j } | d } |  j | t j  |  j | j d  |  j | j d  | j } |  j | t j	  |  j | j d  |  j | j d  | j
 } |  j | t j  |  j | j d  |  j | j d  | j d } |  j | t j  t t d  rd } n d } |  j | j |  |  j | j |  | j d } |  j | t j  |  j | j d  |  j | j d  | d } |  j | t j  |  j | j d  |  j | j d  | j } |  j | t j	  |  j | j d  |  j | j d  | j
 } |  j | t j  |  j | j d  |  j | j d  x^ t | j  D]M \ } }	 |  j |	 t j  |  j |	 j d |  |  j |	 j d |  qTWd  S(	   Ni    i   i   t   pypy_version_infoi   i   i
   i   (   R	   t   bodyt   assertIsInstanceR   t   Exprt   assertEqualt
   fromlinenot   tolinenot   valuet   Callt   funct   Namet   argst   Constt   hasattrt   syst	   enumerate(
   R
   t   stmtst   discardt   callfunct   namet   strargt   linenot   nameargt   it   arg(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_callfunc_lineno"   sP    
			
		c         C   s   |  j  j } | d } |  j | t j  |  j | j d  |  j | j d  | j d } |  j | t j  |  j | j d  |  j | j d  t	 j
 d k  r |  j | j d  n |  j d  d  S(   Ni   i   i   i    i   sJ   FIXME  http://bugs.python.org/issue10445 (no line number on function args)(   i   i    (   R	   R   R   R   t   FunctionDefR   R   R   t   ReturnR   t   version_infot   blockstart_tolinenot   skipTest(   R
   R   t   functiont   return_(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_function_linenoU   s    
c         C   s   t  j d t  } | d } |  j | j d  |  j | j d  |  j | j j d  |  j | j j d  t j d	 k  r |  j | j	 d  n |  j
 d  d  S(
   Nsp   
            @decorator
            def function(
                arg):
                print (arg)
            R+   i   i   i   i    i   sJ   FIXME  http://bugs.python.org/issue10445 (no line number on function args)(   i   i    (   R    t   parset   __name__R   R   R   t
   decoratorsR   R(   R)   R*   (   R
   R	   R+   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_decorated_function_linenoj   s    
c         C   s   |  j  j } | d } |  j | t j  |  j | j d  |  j | j d  |  j | j d  | j d } |  j | t j	  |  j | j d  |  j | j d  d  S(   Ni   i   i   i   i    (
   R	   R   R   R   t   ClassDefR   R   R   R)   t   Pass(   R
   R   t   class_t   pass_(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_class_lineno~   s    
c         C   s   |  j  j } | d } |  j | t j  |  j | j d  |  j | j d  |  j | j d  |  j | j	 d j d  |  j | j	 d j d  d  S(   Ni   i   i   i    i   i   (
   R	   R   R   R   t   IfR   R   R   R)   t   orelse(   R
   R   t   if_(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_if_lineno   s    
c         C   s   x d D] } t  j | t  } | j d } |  j | j d  |  j | j d  |  j | j d  |  j | j d j d  |  j | j d j d  q Wd  S(   Ns   
            for a in range(4):
              print (a)
              break
            else:
              print ("bouh")
            s}   
            while a:
              print (a)
              break
            else:
              print ("bouh")
            i    i   i   (   s   
            for a in range(4):
              print (a)
              break
            else:
              print ("bouh")
            s}   
            while a:
              print (a)
              break
            else:
              print ("bouh")
            (	   R    R.   R/   R   R   R   R   R)   R8   (   R
   t   codeR	   t   stmt(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_for_while_lineno   s     
c         C   s   t  j d t  } | j d } |  j | j d  |  j | j d  |  j | j d  |  j | j d j d  |  j | j d j d  | j	 d } |  j | j d  |  j | j d  |  j | j d  d  S(   Ns   
            try:
              print (a)
            except:
              pass
            else:
              print ("bouh")
            i    i   i   i   i   (
   R    R.   R/   R   R   R   R   R)   R8   t   handlers(   R
   R	   t   try_t   hdlr(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_try_except_lineno   s    c         C   s   t  j d t  } | j d } |  j | j d  |  j | j d  |  j | j d  |  j | j d j d  |  j | j d j d  d  S(   Nsh   
            try:
              print (a)
            finally:
              print ("bouh")
            i    i   i   (	   R    R.   R/   R   R   R   R   R)   t	   finalbody(   R
   R	   R?   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_try_finally_lineno   s    c         C   s   t  j d t  } | j d } |  j | j d  |  j | j d  |  j | j d  |  j | j d j d  |  j | j d j d  d  S(   Ns   
            try:
              print (a)
            except:
              pass
            finally:
              print ("bouh")
            i    i   i   (	   R    R.   R/   R   R   R   R   R)   RB   (   R
   R	   R?   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_try_finally_25_lineno   s    c         C   s\   t  j d t  } | j d } |  j | j d  |  j | j d  |  j | j d  d  S(   Ns   
            from __future__ import with_statement
            with file("/tmp/pouet") as f:
                print (f)
            i   i   i   (   R    R.   R/   R   R   R   R   R)   (   R
   R	   t   with_(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_with_lineno   s    (   R/   t
   __module__R   R%   R-   R1   R6   R:   R=   RA   RC   RD   RF   (    (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR      s   		3								t   BuilderTestc           B   sR  e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z e	 j
 d k rf e j e  Z n  d   Z d	   Z e j d
 d  d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e j e	 j
 d k d  d    Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d   Z" d   Z# d   Z$ RS(    c         C   s   t  j   |  _  d  S(   N(   R    t   AstroidBuilder(   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR      s    c         C   s-   |  j  t j   |  j j d  Wd  QXd  S(   Ns    (   t   assertRaisesR   t   AstroidSyntaxErrorR    t   string_build(   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_data_build_null_bytes   s    c         C   s-   |  j  t j   |  j j d  Wd  QXd  S(   Ns   "\x1"(   RJ   R   RK   R    RL   (   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt    test_data_build_invalid_x_escape   s    c         C   s   t  j d  d S(   s8   check that a file with no trailing new line is parseables   data/noendingnewline.pyN(   R   R   (   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_missing_newline  s    c         C   s*   |  j  t j   t j d  Wd  QXd  S(   Ns   data/inexistant.py(   RJ   R   t   AstroidBuildingErrorR   R   (   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_missing_file  s    c         C   s  t  j t  } t j r | d } |  j d |  |  j d |  |  j d |  |  j | j  |  j | j   d t  |  j	 | d t
 j  | d } |  j | d j j  n  | j d  | j d	  d
 } |  j	 | j d  d
 t
 j  | j d  | j d  | d } |  j d |  |  j	 | d t
 j  |  j	 | d t
 j  |  j	 | d t
 j  t j r|  j	 | d t
 j  |  j	 | d t
 j  n. |  j	 | d t
 j  |  j	 | d t
 j  d S(   s,   test astroid tree build from a living objectt   fileR   t   modet   reads   %s.typet   dictt   has_keyt   typet   objecti    t   __new__t   opent   helpt   propertyt   __init__t   Nonet   Truet   Falset	   Exceptiont   NotImplementedErrorN(   t   MANAGERt   ast_from_module_namet   BUILTINSt   sixt   PY2t   assertInt
   assertTruet   newstylet   pytypeR   R   R&   t   assertIsNoneR   t   getattrR   t   PY3R2   t
   ImportFrom(   R
   t   builtin_astt   fclasst   dclasst   objectastroidt   pclass(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_build0	  s4    	

 
	c         C   s:   t  j d  } |  j |  |  j | d j j g   d  S(   Nt   time(   Rc   Rd   Ri   R   R   t   defaults(   R
   t   time_ast(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_build1,  s    t   javac         C   sX   y d d l  m } Wn t k
 r4 |  j d  n  X|  j j |  } | j d  d S(   s,   test astroid tree build from a living objecti(   t   DateTimes)   test skipped: mxDateTime is not availableR{   N(   t   mxR{   t   ImportErrorR*   R    t   inspect_buildRm   (   R
   R{   t   dt_ast(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_build24  s    c         C   s   |  j  j t  d  S(   N(   R    R~   t   unittest(   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_build3@  s    t   maxvers   3.0c         C   sb   d d l  } |  j j |  } | d } | } |  j d |  |  j d |  |  j d |  d S(   s,   test astroid tree build from a living objectiNt   OSErrort   errnot   strerrort   filename(   R   R    R~   Rh   (   R
   t   builtin_exceptionsRp   Rq   t	   container(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_build_instanceC  s    
c         C   s   t  j t  } t | j d   } |  j t |  d  | d } |  j | j d  | j   t | j d   } |  j t |  d  | d } |  j | j d  | j   d  S(   NRX   i   i    RW   (	   Rc   Rd   Re   t   listt   igetattrR   t   lenR   t	   as_string(   R
   Rp   t   inferred(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_build_type_objectP  s    


c         C   s   t  j j d d   t  j j d d   d   } t  j t j |  z, t  j d  } |  j	 t
 | d t   Wd  t  j t j |  Xd  S(   NRv   c         S   s   |  j  d k r t |  _ n  d  S(   NRv   (   R   R_   t   transformed(   t   node(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   transform_timec  s    R   (   Rv   N(   Rc   t   _mod_file_cachet   popR^   t   astroid_cachet   register_transformR   t   ModuleRd   Ri   Rm   R`   t   unregister_transform(   R
   R   Rx   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inspect_transform_module_  s    	c         C   s   t  j d d  } |  j | j d  |  j | j d  t  j d d  } |  j | j d  |  j | j d  t  j d d  } |  j | j d  |  j | j d  d S(	   s3   test base properties and method of a astroid modules   data/__init__.pyt   datai   s   data.__init__s   data/tmp__init__.pys   data.tmp__init__i    N(   R   R   R   R   t   package(   R
   t   datap(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_package_namem  s    c         C   s   d } t  j |  } |  j | t j  | j d } |  j | t j  |  j | j t j  |  j | j d j d t j  |  j | j d j d j t j  d S(   s=   check if we added discard nodes as yield parent (w/ compiler)st   
            def yiell(): #@
                yield 0
                if noe:
                    yield more
        i    i   N(	   R    t   extract_nodeR   R   R&   R   R   R   t   Yield(   R
   R;   R   R<   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_yield_parenty  s    !c         C   s&   |  j  j t  } |  j d |  d  S(   Nt   __setattr__(   R    R~   RX   Rh   (   R
   t   obj_ast(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_object  s    c         C   s   d } t  j | t  } t j r` |  j | d j  |  j | d j  |  j | d j  n< |  j | d j  |  j | d j  |  j | d j  |  j | d j  |  j | d j  |  j | d j  d  S(   Nsg  
            class A:
                "old style"

            class B(A):
                "old style"

            class C(object):
                "new style"

            class D(C):
                "new style"

            __metaclass__ = type

            class E(A):
                "old style"

            class F:
                "new style"
        t   At   Bt   Et   Ct   Dt   F(   R    R.   R/   Rf   Rn   Ri   Rj   t   assertFalse(   R
   R   t   mod_ast(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_newstyle_detection  s    	c         C   s   d } t  j | t  } |  j t | j d   d  |  j | j d  d t j  |  j | j d  d j	 d  |  j | j d  d j	 d  |  j
 t j   | j d  Wd  QX|  j
 t j   t | d j d   Wd  QXd  S(	   Ns   
            CSTE = 1

            def update_global():
                global CSTE
                CSTE += 1

            def global_no_effect():
                global CSTE2
                print (CSTE)
        t   CSTEi   i    i   i   t   CSTE2t   global_no_effect(   R    R.   R/   R   R   Rm   R   R   t
   AssignNameR   RJ   R   t   AttributeInferenceErrort   InferenceErrort   nextt   ilookup(   R
   R   R	   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_globals  s       s   This test is skipped on Jython, because the socket object is patched later on with the methods we are looking for. Since we do not understand setattr in for loops yet, we skip thisc         C   sm   d d  l  } |  j j |  } xH | j d  D]7 } |  j d |  |  j d |  |  j d |  Pq. Wd  S(   Nit   sockett   connectt   sendt   close(   R   R    t   module_buildR   Rh   (   R
   R   R	   Rq   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_socket_build  s    c         C   s   d } t  j | t  } |  j d |  t j | d  } |  j | j   |  |  j g  | j	   D] } | j
 ^ qc t j j
 g  d  S(   Ns   l = list(n for n in range(10))
t   n(   R    R.   R/   t   assertNotInR   t   get_name_nodet   assertIsNott   scopeR   t   infert	   __class__R   t   Uninferable(   R
   R   R	   R   R#   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_gen_expr_var_scope  s    %c         C   s)   t  j d  } |  j t   | j  d  S(   Ns
   import sys(   R    R.   R   t   sett   future_imports(   R
   t   mod(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_no_future_imports  s    c         C   s/   t  j d  } |  j t d g  | j  d  S(   Ns%   from __future__ import print_functiont   print_function(   R    R.   R   R   R   (   R
   R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_future_imports  s    c         C   s2   t  j d  } |  j t d d g  | j  d  S(   Nsr   
            from __future__ import print_function
            from __future__ import absolute_import
            R   t   absolute_import(   R    R.   R   R   R   (   R
   R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_two_future_imports  s    	c         C   st   d } t  j |  } t | j d   } |  j t |  d  | d } |  j d | j  |  j d | j  d  S(   Ns   
            class A: pass
            A.type = "class"

            def A_assign_type(self):
                print (self)
            A.assign_type = A_assign_type
            R   i   i    t   assign_typeRW   (   R    R.   R   R   R   R   Rh   t   locals(   R
   R;   R	   t   lclass(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inferred_build  s    
c         C   s   t  j d t  d  S(   Ns}   
            class Counter:
                v = 0
                def inc(self):
                    self.v += 1
            (   R    R.   R/   (   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_augassign_attr  s    c         C   s   d } t  j |  t j d   } |  j d | j  |  j d | j  t j i   } |  j d | j  |  j d | j  d  S(   Ns   
            def func(a=None):
                a.custom_attr = 0
            def func2(a={}):
                a.custom_attr = 0
            t   custom_attr(   R    R.   R   t   const_factoryR^   R   R   t   instance_attrs(   R
   R;   t   nonetype(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_inferred_dont_pollute  s    c         C   sX   d } t  j |  } |  j d | j  d } t  j |  } |  j d | d j  d  S(   Ns   a, b = range(2)t   bsc   
            def visit_if(self, node):
                node.test, body = node.tests[0]
            R   t   visit_if(   R    R.   Rh   R   (   R
   R;   R	   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_asstuple  s    c         C   s   d } t  j |  } g  | j d j D] } | j ^ q& \ } } } |  j | t j  |  j | j  |  j |  |  j | t j  |  j | j d  d S(   s2   test expected values of constants after rebuildingsv   
            def func():
                return None
                return
                return 'None'
            i    R^   N(	   R    R.   R   R   R   R   R   Rl   R   (   R
   R;   R	   t   rett   nonet   nothingt   chain(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_build_constants&  s    /c         C   sK   t  j d  } t | j    } |  j | t j  |  j | j t	  d  S(   Ns#   
        NotImplemented #@
        (
   R    R   R   R   R   R   R   R   R   t   NotImplemented(   R
   R   R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_not_implemented6  s
    	(%   R/   RG   R   RM   RN   RO   RQ   Ru   Ry   t   osR   R   t   expectedFailureR   R   R   t   require_versionR   R   R   R   R   R   R   R   t   skipIfR   R   R   R   R   R   R   R   R   R   R   (    (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyRH      s>   						#									#							
			t   FileBuildTestc           B   st   e  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(   c         C   s   t  j d d  |  _ d  S(   Ns   data/module.pys   data.module(   R   R   t   module(   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR   @  s    c         C   s  |  j  } |  j | j d  |  j | j d  |  j | j d  |  j | j  |  j | j   |  |  j | j   |  |  j | j	 t
 j j t j d    |  j | j d  |  j | j d  |  j | j  |  j | j   |  |  j | j   |  d S(   s3   test base properties and method of a astroid modules   data.modules   test module for astroid
i    s   data/module.pyi   N(   R   R   R   t   docR   Rl   t   parentt   framet   rootRR   R   t   patht   abspathR   t   findt   pure_pythonR   R   t   is_statementt	   statement(   R
   R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_module_base_propsC  s    	(c      
   C   s   |  j  } | j } |  j | | j  t | j    } d d d d d d d d d	 d
 g
 } | j   |  j | t |   d S(   s0   test the 'locals' dictionary of a astroid modulet   MY_DICTt   NameNodet   YOt   YOUPIt   __revision__t   global_accesst   modutilst	   four_argsR   t   redirectN(   R   R   t   assertIst   globalst   sortedt   keyst   sortR   (   R
   R   t   _localsR   t   should(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_module_localsS  s    		
c         C   s   |  j  } | d } |  j | j d  |  j | j d  |  j | j d  |  j | j  |  j | j   |  |  j | j j   |  |  j | j   |  |  j g  | j	 j	 D] } | j ^ q d d g  |  j | j
 d  d S(   s5   test base properties and method of a astroid functionR   s   function testi   t   keyt   valR+   N(   R   R   R   R   R   Ri   R   R   R   R   RW   (   R
   R   R+   R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_function_base_props_  s    	
2c         C   sX   |  j  d j } |  j t |  d  t | j    } |  j | d d d d g  d S(   s2   test the 'locals' dictionary of a astroid functionR   i   R#   R  t   localR  N(   R   R   R   R   R   R   (   R
   R  R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_function_localsm  s    c         C   s   |  j  } | d } |  j | j d  |  j | j d  |  j | j d  |  j | j  |  j | j   |  |  j | j j   |  |  j | j   |  |  j | j	 g   t
 j r |  j | j  n |  j | j  d S(   s2   test base properties and method of a astroid classR   t   hehei   N(   R   R   R   R   R   Ri   R   R   R   t	   basenamesRf   Rn   Rj   R   (   R
   R   t   klass(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_class_base_propst  s    	
	c         C   s   |  j  } | d } | j } t | j    } |  j | d d g  | d } | j } | j   } |  j t |  d d d d d g  d	 S(
   s/   test the 'locals' dictionary of a astroid classR   R]   t   aR   t
   class_attrt   class_methodt   methodt   static_methodN(   R   R   R   R   R   (   R
   R   t   klass1t   locals1R   t   klass2t   locals2(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_class_locals  s    	
	
		c         C   se   |  j  } | d } | d } |  j t | j j    d g  |  j t | j j    d g  d  S(   NR   R   t   yot   member(   R   R   R   R   R   (   R
   R   R  R  (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_class_instance_attrs  s
    	

"c         C   sJ   |  j  } | d } | d } |  j | j g   |  j | j d g  d  S(   NR   R   (   R   R   R
  (   R
   R   R  R  (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_class_basenames  s
    	

c         C   s  |  j  d } | d } |  j | j d  |  j g  | j j D] } | j ^ q= d g  |  j | j d  |  j | j d  |  j | j d  | d } |  j g  | j j D] } | j ^ q d g  |  j | j d  | d	 } |  j | j j g   |  j | j d
  d S(   s3   test base properties and method of a astroid methodR   R  R
   s   method testi/   R  t   clst   classmethodR  t   staticmethodN(   R   R   R   R   R   R   RW   (   R
   R  R  R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_method_base_props  s    
/
/
c         C   s   |  j  d d } | j } t |  } t j d k  rm |  j t |  d  |  j | d d d d	 d
 g  n2 |  j t |  d  |  j | d d d	 d
 g  d S(   s0   test the 'locals' dictionary of a astroid methodR   R  i   i    i   R  t   autreR   R  R
   i   R   N(   i   i    (   R   R   R   R   R(   R   R   (   R
   R  R  R   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_method_locals  s    	"c         C   s*   |  j  t j   t j d  Wd  QXd  S(   Ns   data/invalid_encoding.py(   RJ   R   RK   R   R   (   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_unknown_encoding  s    (   R/   RG   R   R   R  R  R  R  R  R  R  R  R   R!  (    (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR   ?  s   											t   ModuleBuildTestc           B   s   e  Z d    Z RS(   c         C   sl   t  t |   j   t j   } y d d  l } Wn t k
 rO |  j d  n X| j | j	 d  |  _	 d  S(   Nis   Unable to load data.modules   data.module(
   t   superR"  R   R    RI   t   data.moduleR}   R*   R   R   (   R
   t   abuilderR   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR     s    (   R/   RG   R   (    (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR"    s   s#   guess_encoding not used on Python 3t   TestGuessEncodingc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  j |  _ d  S(   N(   R    t   _guess_encodingt   guess_encoding(   R
   (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR     s    c         C   s}   |  j  d  } |  j | d  |  j  d  } |  j | d  |  j  d  } |  j | d  |  j  d  } |  j |  d  S(   Ns   # -*- coding: UTF-8  -*-s   UTF-8s   # -*- coding:UTF-8 -*-s1   
        ### -*- coding: ISO-8859-1  -*-
        s
   ISO-8859-1s2   

        ### -*- coding: ISO-8859-1  -*-
        (   R(  R   Rl   (   R
   t   e(    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt	   testEmacs  s    		c         C   s^   |  j  d  } |  j | d  |  j  d  } |  j | d  |  j  d  } |  j |  d  S(   Ns   # vim:fileencoding=UTF-8s   UTF-8s1   
        ### vim:fileencoding=ISO-8859-1
        s
   ISO-8859-1s3   

        ### vim:fileencoding= ISO-8859-1
        (   R(  R   Rl   (   R
   R)  (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   testVim  s    		c         C   sX   |  j  d  } |  j |  |  j  d  } |  j |  |  j  d  } |  j |  d  S(   Ns   coding = UTF-8s   coding:UTF-8s*   def do_something(a_word_with_coding=None):(   R(  Rl   (   R
   R)  (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   test_wrong_coding  s    c         C   s?   |  j  d  } |  j | d  |  j  d  } |  j |  d  S(   Ns   ﻿ any UTF-8 datas   UTF-8s    any UTF-8 data ﻿(   R(  R   Rl   (   R
   R)  (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   testUTF8  s    (   R/   RG   R   R*  R+  R,  R-  (    (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyR&    s
   				t   __main__(   t   __doc__R   R   R   Rf   R	   R    R   R   R   R   R   t   astroid.testsR   t   AstroidManagerRc   t   movest   builtinsR/   Re   t   TestCaseR   RH   R   t   SysPathSetupR"  R   Rn   R&  t   main(    (    (    s=   lib/python2.7/site-packages/astroid/tests/unittest_builder.pyt   <module>	   s,    L2