ó
î%![c           @   s­  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 e j	 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 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 e d k r©e  j ƒ  n  d S(   iÿÿÿÿN(   t   builder(   t
   exceptions(   t   MANAGER(   t
   test_utils(   t   objectst   InstanceModelTestc           B   s#   e  Z d  „  Z e j d „  ƒ Z RS(   c         C   s@  t  j d d d ƒ} t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ |  j | j
 d ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ |  j | j
 d ƒ t | d	 j ƒ  ƒ } |  j | t j ƒ t | j t j	 d
 ƒ ƒ j ƒ  ƒ } |  j | t j	 ƒ |  j | j
 d ƒ d  S(   NsÓ   
        class A:
            "test"
            def __init__(self):
                self.a = 42
        a = A()
        a.__class__ #@
        a.__module__ #@
        a.__doc__ #@
        a.__dict__ #@
        t   module_namet   fake_modulei    t   Ai   i   t   testi   t   ai*   (   R    t   extract_nodet   nextt   infert   assertIsInstancet   astroidt   ClassDeft   assertEqualt   namet   Constt   valuet   Dictt   getitem(   t   selft	   ast_nodest   clst   modulet   doct   dunder_dictt   attr(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_instance_special_model   s     
$c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j g  ƒ d  S(   Ns   
        class A:
            @property
            def __dict__(self):
                  return []
        A().__dict__
        (	   R    R   R   R   R   R   t   ListR   t   elts(   R   t   ast_nodet   inferred(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt5   test_instance_local_attributes_overrides_object_model6   s
    	(   t   __name__t
   __module__R   t   unittestt   expectedFailureR#   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR      s   	t   BoundMethodModelTestc           B   s   e  Z d  „  Z RS(   c         C   s‹   t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ |  j | j d ƒ d  S(   Ns   
        class A:
            def test(self): pass
        a = A()
        a.test.__func__ #@
        a.test.__self__ #@
        i    R	   i   R   (
   R    R   R   R   R   R   t   FunctionDefR   R   t   Instance(   R   R   t   funct   self_(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_bound_method_modelG   s    	(   R$   R%   R-   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR(   E   s   t   UnboundMethodModelTestc           B   s   e  Z d  „  Z RS(   c         C   sB  t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ t j rJ d } n d } |  j	 | j
 | ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j	 | j
 d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j ƒ |  j	 | j
 t | d j ƒ  ƒ j
 ƒ |  j	 | t | d	 j ƒ  ƒ ƒ |  j t | d
 j ƒ  ƒ j ƒ d  S(   NsÑ   
        class A:
            def test(self): pass
        t = A.test
        t.__class__ #@
        t.__func__ #@
        t.__self__ #@
        t.im_class #@
        t.im_func #@
        t.im_self #@
        i    t   instancemethodt   functioni   R	   i   i   i   i   (   R    R   R   R   R   R   R   t   sixt   PY2R   R   R)   R   t   assertIsNoneR   (   R   R   R   t   unbound_nameR+   R,   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_unbound_method_model[   s"    
			& (   R$   R%   R5   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR.   Y   s   t   ClassModelTestc           B   sw   e  Z d  „  Z e j d d ƒ d „  ƒ Z e j d d ƒ d „  ƒ Z d „  Z e j	 e
 j d ƒ d „  ƒ Z d „  Z RS(	   c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ d  S(   NsM   
        class A:
            __doc__ = "first"
        A.__doc__ #@
        t   first(	   R    R   R   R   R   R   R   R   R   (   R   R!   R"   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt%   test_priority_to_local_defined_values€   s
    	t   maxvers   3.0c         C   s<   t  j d ƒ } |  j t j ƒ  t | j ƒ  ƒ Wd  QXd  S(   Ns=   
        class A:
            pass
        A.__mro__
        (   R    R   t   assertRaisesR   t   InferenceErrorR   R   (   R   R!   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test__mro__old_styleŠ   s    	c         C   s<   t  j d ƒ } |  j t j ƒ  t | j ƒ  ƒ Wd  QXd  S(   NsD   
        class A:
            pass
        A.__subclasses__
        (   R    R   R:   R   R;   R   R   (   R   R!   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test__subclasses__old_style”   s    	c         C   s‹   t  j d ƒ } xu | D]m } t | j ƒ  ƒ } |  j | t j ƒ |  j | j t j ƒ |  j | j	 t j
 ƒ |  j | j	 j d ƒ q Wd  S(   Ns`   
        class A(object):
            pass
        A.mro #@
        A.__subclasses__ #@
        t   type(   R    R   R   R   R   R   t   BoundMethodt   _proxiedR)   t   boundR   R   R   (   R   R   t   nodeR"   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt/   test_class_model_correct_mro_subclasses_proxiedž   s    	s   Needs old style classesc         C   s<   t  j d ƒ } |  j t j ƒ  t | j ƒ  ƒ Wd  QXd  S(   Ns<   
        class A:
            pass
        A.mro #@
        (   R    R   R:   R   R;   R   R   (   R   R!   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_old_style_classes_no_mro¬   s    	c         C   sŸ  t  j d d d ƒ} t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d	 j ƒ  ƒ } |  j | t j ƒ |  j | j d
 ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ |  j g  | j
 D] } | j ^ q>d d g ƒ t | d j ƒ  ƒ } |  j | j
 | j
 ƒ t | d j ƒ  ƒ }	 |  j |	 t j	 ƒ |  j g  |	 j
 D] } | j ^ qÂd g ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ }
 |  j |
 t j ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j g  | j
 D] } | j ^ q|d d g ƒ d  S(   NsP  
        class A(object):
            "test"

        class B(A): pass
        class C(A): pass

        A.__module__ #@
        A.__name__ #@
        A.__qualname__ #@
        A.__doc__ #@
        A.__mro__ #@
        A.mro() #@
        A.__bases__ #@
        A.__class__ #@
        A.__dict__ #@
        A.__subclasses__() #@
        R   R   i    i   R   i   s   fake_module.Ai   R	   i   t   objecti   i   i   R>   i   i	   t   Bt   C(   R    R   R   R   R   R   R   R   R   t   TupleR    R   R   R   R   (   R   R   R   R   t   qualnameR   t   mroR   t
   called_mrot   basest   cls_dictt
   subclasses(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_class_model¶   s@    ""
(   R$   R%   R8   R   t   require_versionR<   R=   RC   R&   t
   skipUnlessR1   R2   RD   RO   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR6   ~   s   	


	
t   ModuleModelTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sN   t  j d ƒ } t | j d ƒ ƒ } |  j | t  j ƒ |  j | j d ƒ d  S(   Ns#   
        __file__ = "mine"
        t   __file__t   mine(   R   t   parseR   t   igetattrR   R   R   R   (   R   R!   t
   file_value(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR8   õ   s
    	c         C   s<   t  j d ƒ } |  j t j ƒ  t | j ƒ  ƒ Wd  QXd  S(   Ns4   
        import sys
        sys.__path__ #@
        (   R    R   R:   R   R;   R   R   (   R   R!   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test__path__not_a_packageý   s    	c   
      C   sß  t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d t j ƒ |  j	 | j d j
 t j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j	 | j
 d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j	 | j
 t j ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j	 | j
 t j j d d ƒ ƒ x: | d	 d
 !D]+ } t | j ƒ  ƒ } |  j | t j ƒ qGWt | d
 j ƒ  ƒ } |  j | t j ƒ |  j	 | j
 d ƒ t | d j ƒ  ƒ }	 |  j |	 t j ƒ d  S(   Nsú   
        import xml
        xml.__path__ #@
        xml.__name__ #@
        xml.__doc__ #@
        xml.__file__ #@
        xml.__spec__ #@
        xml.__loader__ #@
        xml.__cached__ #@
        xml.__package__ #@
        xml.__dict__ #@
        i    i   t   xmli   i   s   .pycs   .pyi   i   i   (   R    R   R   R   R   R   R   R    R   R   R   RY   t   __path__t   __doc__RS   t   replacet   assertIst   UninferableR   (
   R   R   t   pathR   R   t   file_R!   R"   t   packaget   dict_(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_module_model  s.    	!"(   R$   R%   R8   RX   Rc   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyRR   ó   s   		t   FunctionModelTestc           B   s¡   e  Z d  „  Z e j d „  ƒ Z d „  Z d „  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(   c         C   s   t  j d ƒ \ } } t | j ƒ  ƒ } |  j | t j ƒ |  j | j j j	 d ƒ t | j ƒ  ƒ } |  j | t j
 ƒ |  j | j d ƒ d  S(   Ns†   
        class A(object): pass
        def test(self): return 42
        f = test.__get__(A(), A)
        f #@
        f() #@
        R	   i*   (   R    R   R   R   R   R   R?   R   R@   R   R   R   (   R   RA   t   result(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_partial_descriptor_support2  s    c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ d  S(   Ns‹   
        class A(object):
            x = 42
        def test(self): return self.x
        f = test.__get__(A(), A)
        f() #@
        i*   (	   R    R   R   R   R   R   R   R   R   (   R   Re   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt#   test_descriptor_not_inferrring_selfA  s
    	c         C   sM   t  j d ƒ } x7 | D]/ } |  j t j ƒ  t | j ƒ  ƒ Wd  QXq Wd  S(   Ns›   
        class A: pass
        def test(self): return 42
        test.__get__()() #@
        test.__get__(1)() #@
        test.__get__(2, 3, 4) #@
        (   R    R   R:   R   R;   R   R   (   R   R   RB   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt    test_descriptors_binding_invalidP  s
    	c         C   sê  t  j d d d ƒ} t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d	 ƒ t | d
 j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ |  j g  | j
 D] } | j ^ q>d d g ƒ t | d j ƒ  ƒ } |  j | t j ƒ t | d j ƒ  ƒ }	 |  j |	 t j ƒ x4 | d d !D]% }
 |  j t |
 j ƒ  ƒ t j ƒ q½Wd  S(   Ns-  
        def func(a=1, b=2):
            """test"""
        func.__name__ #@
        func.__doc__ #@
        func.__qualname__ #@
        func.__module__  #@
        func.__defaults__ #@
        func.__dict__ #@
        func.__globals__ #@
        func.__code__ #@
        func.__closure__ #@
        R   R   i    R+   i   R	   i   s   fake_module.funci   i   i   i   i   i	   (   R    R   R   R   R   R   R   R   R   RH   R    R   R]   R^   (   R   R   R   R   RI   R   t   defaultst   defaultRb   t   globals_R!   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_function_model\  s.    /t   minvers   3.0c         C   sQ   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j t | j	 ƒ d ƒ d  S(   Ns?   
        def test(): pass
        test.__annotations__
        i    (
   R    R   R   R   R   R   R   R   t   lent   items(   R   R!   t   annotations(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_empty_return_annotationˆ  s
    	c         C   sQ   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j t | j	 ƒ d ƒ d  S(   NsŠ   
        class Class:
            @classmethod
            def class_method(cls):
                cls.__init__.__annotations__ #@
        i    (
   R    R   R   R   R   R   R   R   Rn   Ro   (   R   R!   R"   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pytB   test_builtin_dunder_init_does_not_crash_when_accessing_annotations’  s
    	c         C   sh  t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j | j t j d ƒ ƒ t j ƒ |  j	 | j t j d ƒ ƒ j
 d ƒ |  j | j t j d ƒ ƒ t j ƒ |  j	 | j t j d ƒ ƒ j
 d ƒ |  j	 | j t j d ƒ ƒ j
 d ƒ |  j	 | j t j d ƒ ƒ j
 d	 ƒ |  j	 | j t j d
 ƒ ƒ j
 d ƒ t | d j ƒ  ƒ } |  j | t j ƒ d  S(   Ns‰   
        def test(a: 1, *args: 2, f:4='lala', **kwarg:3)->2: pass
        test.__annotations__ #@
        test.__kwdefaults__ #@
        i    t   returni   R
   i   t   argst   kwargi   t   fi   (   R    R   R   R   R   R   R   R   R   R   R   (   R   R!   Rp   t
   kwdefaults(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_annotations_kwdefaultsž  s    	%%%%%%%R9   c         C   s:  t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ t | d j ƒ  ƒ } |  j | t j	 ƒ t | d j ƒ  ƒ } |  j | t j
 ƒ x1 | d	 D]% } |  j t | j ƒ  ƒ t j ƒ qWd  S(
   Nsî   
        def test(a=1):
          "a"

        test.func_name #@
        test.func_doc #@
        test.func_dict #@
        test.func_globals #@
        test.func_defaults #@
        test.func_code #@
        test.func_closure #@
        i    R	   i   R
   i   i   i   i   (   R    R   R   R   R   R   R   R   R   R   RH   R]   R^   (   R   R   R   R   t   pydictt	   pyglobalsRi   RB   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_function_model_for_python2´  s     	(   R$   R%   Rf   R&   R'   Rg   Rh   Rl   R   RP   Rq   Rr   Rx   R{   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyRd   0  s   			,
t   GeneratorModelTestc           B   s   e  Z d  „  Z RS(   c         C   s  t  j d ƒ } t | d j ƒ  ƒ } |  j | j d ƒ t | d j ƒ  ƒ } |  j | j d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j	 d ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j	 d	 ƒ t | d
 j ƒ  ƒ } |  j | t j
 ƒ d  S(   NsÅ   
        def test():
           "a"
           yield

        gen = test()
        gen.__name__ #@
        gen.__doc__ #@
        gen.gi_code #@
        gen.gi_frame #@
        gen.send #@
        i    R	   i   R
   i   t   gi_codei   t   gi_framei   (   R    R   R   R   R   R   R   R   R   R   R?   (   R   R   R   R   R}   R~   t   send(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt
   test_modelÔ  s    	(   R$   R%   R€   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR|   Ò  s   t   ExceptionModelTestc           B   sD   e  Z e j e j d  ƒ d „  ƒ Z e j e j d ƒ d „  ƒ Z RS(   s   needs Python 3c         C   s¥   t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j	 d ƒ |  j
 t j ƒ  t | d j ƒ  ƒ Wd  QXd  S(   Nsœ   
        try:
            x[42]
        except ValueError as err:
           err.args #@
           err.__traceback__ #@

           err.message #@
        i    i   t	   tracebacki   (   R    R   R   R   R   R   RH   R*   R   R   R:   R   R;   (   R   R   Rt   t   tb(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_model_py3ö  s    	s   needs Python 2c         C   s’   t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j t	 j
 ƒ  t | d j ƒ  ƒ Wd  QXd  S(   Nsœ   
        try:
            x[42]
        except ValueError as err:
           err.args #@
           err.message #@

           err.__traceback__ #@
        i    i   i   (   R    R   R   R   R   R   RH   R   R:   R   R;   (   R   R   Rt   t   message(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_model_py2
  s    	(	   R$   R%   R&   t   skipIfR1   R2   R„   RQ   R†   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR   ô  s   t   DictObjectModelTestc           B   sV   e  Z d  „  Z d „  Z e j e j d ƒ d „  ƒ Z e j	 e j d ƒ d „  ƒ Z
 RS(   c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ d  S(   Ns   {}.__class__t   dict(	   R    R   R   R   R   R   R   R   R   (   R   R!   R"   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test__class__   s    c         C   sI   t  j d ƒ } x3 | D]+ } t | j ƒ  ƒ } |  j | t j ƒ q Wd  S(   NsE   
        {}.values #@
        {}.items #@
        {}.keys #@
        (   R    R   R   R   R   R   R?   (   R   R   RB   R"   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt#   test_attributes_inferred_as_methods&  s
    	s   needs Python 2c   
      C   sW  t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j g  | j D] } | j	 ^ qH d d g ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j g  | j D] } | j	 ^ q  d d g ƒ t | d j ƒ  ƒ } |  j | t j ƒ xh t
 d d g | j ƒ D]N \ } } |  j | t j ƒ |  j t | ƒ g  | j D] }	 |	 j	 ^ q9ƒ qWd  S(   Nsc   
        {1:1, 2:3}.values() #@
        {1:1, 2:3}.keys() #@
        {1:1, 2:3}.items() #@
        i    i   i   i   (   i   i   (   i   i   (   R    R   R   R   R   R   R   R   R    R   t   zipRH   t   list(
   R   R   t   valuesR   t   keyst   keyRo   t   expectedt   elemt   elt(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt&   test_concrete_objects_for_dict_methods0  s    	//%s   needs Python 3c         C   sì   t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j g  | j D] } | j	 ^ qH d d g ƒ t | d j ƒ  ƒ } |  j | t j
 ƒ |  j g  | j D] } | j	 ^ q  d d g ƒ t | d j ƒ  ƒ } |  j | t j ƒ d  S(   Nsc   
        {1:1, 2:3}.values() #@
        {1:1, 2:3}.keys() #@
        {1:1, 2:3}.items() #@
        i    i   i   i   (   R    R   R   R   R   R   t
   DictValuesR   R    R   t   DictKeyst	   DictItems(   R   R   RŽ   R“   R   Ro   (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt-   test_wrapper_objects_for_dict_methods_python3E  s    	//(   R$   R%   RŠ   R‹   R&   RQ   R1   R2   R”   R‡   R˜   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyRˆ     s   		
t   LruCacheModelTestc           B   s&   e  Z e j e j d  ƒ d „  ƒ Z RS(   s   needs Python 3c         C   s¡   t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ t | d j ƒ  ƒ } |  j | t j ƒ |  j | j	 d ƒ t | d j ƒ  ƒ } |  j | t j
 ƒ d  S(   Nsö   
        import functools
        class Foo(object):
            @functools.lru_cache()
            def foo():
                pass
        f = Foo()
        f.foo.cache_clear #@
        f.foo.__wrapped__ #@
        f.foo.cache_info() #@
        i    i   t   fooi   (   R    R   R   R   R   R   R?   R)   R   R   R*   (   R   R   t   cache_cleart   wrappedt
   cache_info(    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   test_lru_cacheX  s    
	(   R$   R%   R&   R‡   R1   R2   Rž   (    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyR™   V  s   t   __main__(   R&   RY   R1   R   R    R   R   R   R   t   astroid_cachet   movest   builtinsR$   t   BUILTINSt   TestCaseR   R(   R.   R6   RR   Rd   R|   R   Rˆ   R™   t   main(    (    (    sB   lib/python2.7/site-packages/astroid/tests/unittest_object_model.pyt   <module>   s*   0%u=¢"*8