ó
î%![c           @   s$  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z m Z m Z d  d l m	 Z	 d  d l
 m Z 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 e j e j f d „  ƒ  YZ d e f d „  ƒ  YZ e d k r e j ƒ  n  d S(   iÿÿÿÿN(   t   MANAGERt   Instancet   nodes(   t   BUILTINS(   t   AstroidBuildert   extract_node(   t
   exceptions(   t   build_module(   t   AstroidManager(   t   require_version(   t	   resources(   t
   transformst   NonRegressionTestsc           B   sþ   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 e
 d ƒ d	 „  ƒ Z e
 d
 ƒ 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 e
 d d ƒ d „  ƒ Z RS(   c         C   s9   t  j j d t j d ƒ ƒ t t _ |  j t j	 t
 <d  S(   Ni    t   data(   t   syst   patht   insertR
   t   findt   TrueR    t   always_load_extensionst	   _builtinst   astroid_cacheR   (   t   self(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   setUp   s    	c         C   sI   t  j |  j ƒ t t  _ t j j d ƒ t j j t	 j
 d ƒ d  ƒ d  S(   Ni    R   (   R    t   clear_cacheR   t   FalseR   R   R   t   popt   path_importer_cacheR
   R   t   None(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   tearDown!   s    	c         C   sJ   t  ƒ  } i  | _ g  | _ i  | _ i  | _ t j ƒ  | _ | j ƒ  | S(   N(	   R   t   __dict__t   _failed_import_hooksR   t   _mod_file_cacheR   t   TransformVisitort
   _transformR   (   R   t   manager(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   brainless_manager*   s    					
c         C   sº   |  j  ƒ  } | j d ƒ } t | j d ƒ ƒ } |  j | j d ƒ t | j d ƒ ƒ } |  j | t j ƒ |  j	 | j
 ƒ |  j | j d ƒ t | j d ƒ ƒ } |  j | j d ƒ d  S(   Ns(   package.import_package_subpackage_modulet   packaget
   subpackages   package.subpackaget   modules   package.subpackage.module(   R$   t   ast_from_module_namet   nextt   igetattrt   assertEqualt   namet   assertIsInstanceR   t   Modulet
   assertTrueR%   (   R   t   mant   modR%   R&   R'   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_module_path6   s    c         C   s¬   |  j  ƒ  } d t j k s! t ‚ | j d ƒ } |  j | t j ƒ |  j | j	 ƒ t
 | j d ƒ d j ƒ  ƒ } |  j | t j ƒ |  j | j	 ƒ |  j | j d ƒ d  S(   Ns   package.sidepackaget   absimpt   sidepackagei    s   absimp.sidepackage(   R$   R    R   t   AssertionErrorR(   R-   R   R.   R/   R%   R)   t   getattrt   inferR+   R,   (   R   R#   R%   R&   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_package_sidepackageC   s    c         C   s?   t  ƒ  } i  | _ t j t | _ | j t d d ƒ t ƒ d  S(   Nt   module_namet    (	   R   t   _doneR   t   modulest   __name__t   _modulet   object_buildR   t   Whatever(   R   t   builder(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_living_propertyO   s    		c         C   ss   y d d  l  } Wn t k
 r0 |  j d ƒ n Xt ƒ  } d } | j | t t ƒ } | d } |  j | j ƒ d  S(   Niÿÿÿÿs$   test skipped: pygtk is not availablesV   
import pygtk
pygtk.require("2.6")
import gobject

class A(gobject.GObject):
    pass
t   A(	   t   pygtkt   ImportErrort   skipTestR   t   string_buildR=   t   __file__R/   t   newstyle(   R   RD   RA   R   t   astroidt   a(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_new_style_class_detectionV   s    	
c         C   sŽ   y d d l  } Wn t k
 r0 |  j d ƒ n Xt ƒ  } d } | j | t t ƒ } | j d j j	 } | j
 ƒ  } |  j t | ƒ d ƒ d S(   s   test don't crash on numpyiÿÿÿÿNs$   test skipped: numpy is not availables/   
from numpy import multiply

multiply(1, 2, 3)
i   (   t   numpyRE   RF   R   RG   R=   RH   t   bodyt   valuet   funct   inferredR+   t   len(   R   RM   RA   R   RJ   t   callfuncRQ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_numpy_crashj   s    	s   3.0c         C   se   t  ƒ  } | j d ƒ } | j d j j d } |  j | j d ƒ |  j t | j ƒ  ƒ j t	 ƒ d  S(   Ns   def test(x=True): passi    t   x(
   R   RG   RN   t   argsR+   R,   R)   R7   RO   R   (   R   RA   RJ   t   default(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_nameconstant}   s
    	s   2.7c         C   sH   t  ƒ  } d } | j | t t ƒ } t | j t j ƒ ƒ d j ƒ  d  S(   Ns@   
with open('a.txt') as stream, open('b.txt'):
    stream.read()
iÿÿÿÿ(	   R   RG   R=   RH   t   listt   nodes_of_classR   t   CallRQ   (   R   RA   R   RJ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_with_infer_assignnames†   s    	c         C   sR   t  ƒ  } d } | j | t t ƒ } | j t j ƒ } x | D] } | j q= Wd  S(   Ns{   
import recursion as base

_real_Base = base.Base

class Derived(_real_Base):
    pass

def run():
    base.Base = Derived
(   R   RG   R=   RH   RZ   R   t   ClassDeft   type(   R   RA   R   RJ   t   classest   klass(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt!   test_recursion_regression_issue25’   s    	c         C   s?   t  ƒ  } d } | j | t t ƒ } |  j | d j d ƒ d  S(   Ns˜   

def test():
    def factory(func):
        def newfunc():
            func()
        return newfunc
    return factory

@test()
def crash():
    pass
t   crasht   function(   R   RG   R=   RH   R+   R^   (   R   RA   R   RJ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt    test_decorator_callchain_issue42§   s    	c         C   s†   t  ƒ  } d } | j | t t ƒ } | d } t | j | ƒ ƒ } |  j | t ƒ t | j j	 d j
 ƒ  ƒ } |  j | j d ƒ d  S(   Nsw   
def test():
    compiler = int()
    class B(compiler.__class__):
        pass
    compiler = B()
    return compiler
t   testi    t   int(   R   RG   R=   RH   R)   t   infer_call_resultR-   R   t   _proxiedt   basesR7   R+   R,   (   R   RA   R   RJ   Re   t   resultt   base(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_filter_stmts_scoping¹   s    	
c         C   sU   t  ƒ  j t j d ƒ ƒ } | d } t | j ƒ  ƒ } |  j | d j ƒ  d ƒ d  S(   Ns  
        import string
        Template = string.Template

        class A(Template):
            pass

        class B(A):
            pass

        def test(x=False):
            if x:
                string.Template = A
            else:
                string.Template = B
        RC   i    s   string.Template(   R   RG   t   textwrapt   dedentRY   t	   ancestorsR+   t   qname(   R   t   nodeR`   Ro   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt'   test_ancestors_patching_class_recursionÊ   s
    
c         C   s}   t  d ƒ } t | j ƒ  ƒ } t j rc |  j t | ƒ d ƒ |  j | d j ƒ  d j t	 ƒ ƒ n |  j t | ƒ d ƒ d  S(   Ns]  
        def with_metaclass(meta, *bases):
            class metaclass(meta):
                def __new__(cls, name, this_bases, d):
                    return meta(name, bases, d)
        return type.__new__(metaclass, 'temporary_class', (), {})

        import lala

        class A(with_metaclass(object, lala.lala)): #@
            pass
        i   i    s	   {}.object(
   R   RY   Ro   t   sixt   PY3R+   RR   Rp   t   formatR   (   R   Rq   Ro   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_ancestors_yes_in_basesß   s    		c         C   s,   t  d ƒ } |  j t j t | j ƒ  ƒ d  S(   NsH   
        def gen(): yield
        GEN = gen()
        next(GEN)
        (   R   t   assertRaisesR   t   InferenceErrorR)   R7   (   R   Rq   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt$   test_ancestors_missing_from_function÷   s    	c         C   s-   t  d d ƒ } t | j j ƒ  ƒ j ƒ  d  S(   Nuº   
        from __future__ import unicode_literals

        class MyClass(object):
            def method(self):
                "With unicode : %s "

        instance = MyClass()
        u   â€™(   R   R)   RO   R7   t	   as_string(   R   Rq   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_unicode_in_docstring   s    c         C   s[   t  d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j ƒ |  j | j t j ƒ d  S(   Ns¬   
        def no_op(*args):
            pass
        def foo(*args):
            def inner(*more_args):
                args + more_args #@
            return inner
        (	   R   R)   R7   R-   R   t   Tuplet   assertIsNotNonet   parentt   BinOp(   R   Rq   RQ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt'   test_binop_generates_nodes_with_parents  s    	c         C   s;   t  d ƒ } t | j ƒ  ƒ } |  j | j ƒ  t ƒ  ƒ d  S(   Ns  
        class Parent(object):
            @property
            def foo(self):
                pass

        class Child(Parent):
            @Parent.foo.getter
            def foo(self): #@
                return super(Child, self).foo + ['oink']
        (   R   R)   R7   R+   t   decoratornamest   set(   R   Rq   RQ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt,   test_decorator_names_inference_error_leaking  s    
	c         C   s5   t  d ƒ } t | j ƒ  ƒ } |  j | t j ƒ d  S(   Ns7   
        import ssl
        ssl.PROTOCOL_TLSv1
        (   R   R)   R7   R-   R   t   Const(   R   Rq   RQ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_ssl_protocol.  s    	c         C   s    t  d ƒ } t | j ƒ  ƒ d  S(   Ns‘   
        class APropert():
            @property
            def property(self):
                return self
        APropert().property
        (   R   R)   R7   (   R   Rq   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   test_recursive_property_method6  s    	c         C   s    t  d ƒ } t | j ƒ  ƒ d  S(   Ns[   
        import collections
        collections.namedtuple('{}'.format("a"), '')()
        (   R   R)   R7   (   R   Rq   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt.   test_uninferable_string_argument_of_namedtuple@  s    	t   maxverc         C   s,   t  d ƒ } |  j t | j ƒ  ƒ d ƒ d  S(   Nsœ   
        import exceptions
        try:
            {}["a"]
        except KeyError, exceptions.IndexError:
            pass

        IndexError #@
        i   (   R   R+   RR   RQ   (   R   Rq   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt#   test_reassignment_in_except_handlerG  s    	(   R=   t
   __module__R   R   R$   R2   R8   RB   RL   RT   R	   RX   R\   Ra   Rd   Rl   Rr   Rv   Ry   R{   R€   Rƒ   R…   R†   R‡   R‰   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyR      s.   																						
	R@   c           B   s   e  Z e d  „  d  „  ƒ Z RS(   c         C   s   |  S(   N(    (   RU   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   <lambda>V  s    (   R=   RŠ   t   propertyRK   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyR@   U  s   t   __main__(   R   t   unittestRm   Rs   RJ   R    R   R   t   astroid.basesR   t   astroid.builderR   R   R   t   astroid.raw_buildingR   t   astroid.managerR   t   astroid.test_utilsR	   t   astroid.testsR
   R   t   AstroidCacheSetupMixint   TestCaseR   t   objectR@   R=   t   main(    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_regrtest.pyt   <module>   s$   	ÿ <