ó
î%![c           @   sz  d  Z  y d d l Z e Z Wn e k
 r5 e Z n Xd d l Z d d l Z y d d l Z e Z	 WnA e k
 r§ y d d l
 Z e Z	 Wq¨ e k
 r£ e Z	 q¨ Xn Xy d d l Z e Z Wn e k
 r× e Z n Xy d d l Z e Z Wn e k
 re Z n Xy d d l Z e Z Wn e k
 r7e Z n Xy d d l Z e Z Wn e k
 rge Z n Xd 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 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! e j" e d ƒ d e j f d „  ƒ  Yƒ Z# d e j f d „  ƒ  YZ$ e j" e d ƒ d e j f d „  ƒ  Yƒ Z% d e j f d „  ƒ  YZ& e j" e	 d ƒ d e j f d „  ƒ  Yƒ Z' e j" e d  ƒ d! e j f d" „  ƒ  Yƒ Z( e j" e d# ƒ d$ e j f d% „  ƒ  Yƒ Z) d& „  Z* d' e j f d( „  ƒ  YZ+ e j, d) ƒ d* e j f d+ „  ƒ  Yƒ Z- d, e j f d- „  ƒ  YZ. e j, d) ƒ d. e j f d/ „  ƒ  Yƒ Z/ e j, d) ƒ d0 e j f d1 „  ƒ  Yƒ Z0 d2 e j f d3 „  ƒ  YZ1 e j" e d4 ƒ d5 e j f d6 „  ƒ  Yƒ Z2 e3 d7 k rve j4 ƒ  n  d S(8   s/   Tests for basic functionality in astroid.brain.iÿÿÿÿN(   t   MANAGER(   t   bases(   t   builder(   t   nodes(   t   util(   t
   test_utilst   HashlibTestc           B   s   e  Z d  „  Z RS(   c         C   s$  t  j d ƒ } xd d g D] } | | } |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j d | ƒ |  j t | d	 j j ƒ d
 ƒ |  j t | d	 j j ƒ d ƒ |  j t | d j j ƒ d
 ƒ |  j t | d j j ƒ d ƒ |  j t | d j j ƒ d ƒ q Wd S(   s-   Tests that brain extensions for hashlib work.t   hashlibt   md5t   sha1t   updatet   digestt	   hexdigestt
   block_sizet   digest_sizet   __init__i   i   N(   R    t   ast_from_module_namet   assertInt   assertEqualt   lent   argst   defaults(   t   selft   hashlib_modulet
   class_namet	   class_obj(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_hashlibB   s    
    (   t   __name__t
   __module__R   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR   A   s   t   CollectionsDequeTestsc           B   s5   e  Z d  „  Z d „  Z e j d d ƒ d „  ƒ Z RS(   c         C   s   t  j d ƒ } t | j ƒ  ƒ S(   NsP   
        import collections
        q = collections.deque([])
        q
        (   R   t   extract_nodet   nextt   infer(   R   t   node(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   _inferred_queue_instanceT   s    	c         C   s&   |  j  ƒ  } |  j | j d ƒ ƒ d  S(   Nt   __len__(   R"   t
   assertTruet   getattr(   R   t   inferred(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt
   test_deque\   s    t   minvers   3.5c         C   sI   |  j  ƒ  } |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Nt   copyt   insertt   index(   R"   R   t   locals(   R   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_deque_py35methods`   s    (   R   R   R"   R'   R   t   require_versionR-   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR   S   s   		t   NamedTupleTestc           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   su   t  j d ƒ } |  j g  | j ƒ  D] } | j ^ q" d d d g ƒ x* | j ƒ  D] } |  j | j d  k ƒ qQ Wd  S(   Nsx   
        from collections import namedtuple

        class X(namedtuple("X", ["a", "b", "c"])):
           pass
        t   Xt   tuplet   object(   R   R   R   t	   ancestorst   namet   assertFalset   parentt   None(   R   t   klasst   anc(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_basej   s    	c         C   sQ   t  j d ƒ } t d „  | j ƒ  Dƒ ƒ } |  j d d d h t | j ƒ ƒ d  S(   Ns¤   
        from collections import namedtuple

        name = "X"
        fields = ["a", "b", "c"]
        class X(namedtuple(name, fields)):
           pass
        c         s   s$   |  ] } | j  d  k r | Vq d S(   R0   N(   R4   (   t   .0t   base(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pys	   <genexpr>€   s    t   at   bt   c(   R   R   R   R3   t   assertSetEqualt   sett   instance_attrs(   R   R8   R<   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_inferencew   s    	c         C   s2   t  j d ƒ } |  j t j t | j ƒ  ƒ ƒ d  S(   Ns~   
        from collections import namedtuple

        def foo(fields):
           return __(namedtuple("foo", fields))
        (   R   R   t   assertIsR   t   UninferableR   R    (   R   R8   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt!   test_namedtuple_inference_failure„   s    	c         C   s»   t  j d ƒ } t | j ƒ  ƒ } |  j t | j d ƒ ƒ d ƒ |  j t | j d ƒ ƒ d ƒ |  j t j	 ƒ  | j d ƒ Wd  QX|  j t | j d ƒ ƒ d ƒ |  j
 | j d ƒ d  S(   Ns_   
        import six

        result = __(six.moves.urllib.parse.urlparse('gopher://'))
        t   schemei   t   portt   foot   geturlt   ParseResult(   R   R   R   R    t   assertGreaterEqualR   R%   t   assertRaisest   astroidt   AttributeInferenceErrorR   R4   (   R   t   resultt   instance(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt"   test_namedtuple_advanced_inference   s    	c         C   s\   t  j d ƒ } t | j ƒ  ƒ } x4 | j j ƒ  D]# \ } } |  j | d j | ƒ q1 Wd  S(   Nsa   
        from collections import namedtuple
        namedtuple('a', 'a b c')(1, 2, 3) #@
        i    (   R   R   R   R    RB   t   itemsR   t   attrname(   R   RP   R&   R4   t   attr(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_instance_attrs   s
    	c         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j t j | ƒ d  S(   Nst   
        x = [A] * 2
        from collections import namedtuple
        l = namedtuple('a', x)
        l(1)
        (   R   R   R   R    RD   R   RE   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt"   test_namedtuple_uninferable_fields¦   s    	c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j d | j ƒ |  j d | j ƒ d  S(   Nsx   
        from collections import namedtuple
        Tuple = namedtuple("Tuple", "field other")
        Tuple #@
        t   fieldt   other(   R   R   R   R    R   R,   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt#   test_namedtuple_access_class_fields°   s
    	c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j d | j ƒ |  j d | j ƒ d  S(   Ns   
        from collections import namedtuple
        Tuple = namedtuple("Tuple", "abc def", rename=True)
        Tuple #@
        t   abct   _1(   R   R   R   R    R   R,   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_rename_keywordsº   s
    	c         C   s^   t  j d ƒ } t | j ƒ  ƒ } |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Ns…   
        from collections import namedtuple
        Tuple = namedtuple("Tuple", "abc abc abc", rename=True)
        Tuple #@
        R[   R\   t   _2(   R   R   R   R    R   R,   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt!   test_namedtuple_rename_duplicatesÄ   s    	c         C   s^   t  j d ƒ } t | j ƒ  ƒ } |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Ns†   
        from collections import namedtuple
        Tuple = namedtuple("Tuple", "a b c", rename=UNINFERABLE)
        Tuple #@
        R=   R>   R?   (   R   R   R   R    R   R,   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt"   test_namedtuple_rename_uninferableÏ   s    	c         C   sq   t  j d ƒ } t | j ƒ  ƒ } |  j | j d ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Ns›   
        from collections import namedtuple
        Tuple = namedtuple(typename="Tuple", field_names="a b c", rename=UNINFERABLE)
        Tuple #@
        t   TupleR=   R>   R?   (   R   R   R   R    R   R4   R   R,   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_func_formÚ   s    	c         C   sq   t  j d ƒ } t | j ƒ  ƒ } |  j | j d ƒ |  j d | j ƒ |  j d | j ƒ |  j d | j ƒ d  S(   Ns’   
        from collections import namedtuple
        Tuple = namedtuple("Tuple", field_names="a b c", rename=UNINFERABLE)
        Tuple #@
        Ra   R=   R>   R?   (   R   R   R   R    R   R4   R   R,   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt)   test_namedtuple_func_form_args_and_kwargsæ   s    	(   R   R   R:   RC   RF   RR   RV   RW   RZ   R]   R_   R`   Rb   Rc   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR/   h   s   								
	
	
			t   DefaultDictTestc           B   s   e  Z d  „  Z RS(   c         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j t j | ƒ d  S(   Ns`   
        from collections import defaultdict

        X = defaultdict(int)
        X[0]
        (   R   R   R   R    RD   R   RE   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_1õ   s    	(   R   R   Re   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRd   ó   s   t   ModuleExtenderTestc           B   s   e  Z d  „  Z RS(   c         C   sJ   t  j } x: | j t j D]( \ } } t j d d  ƒ } | | ƒ q Wd  S(   Nt   __main__(   R    t
   _transformt
   transformsR   t   ModuleR7   (   R   t   transformert   extendert   _t   n(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   testExtensionModules  s    	(   R   R   Ro   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRf      s   s    This test requires nose library.t   NoseBrainTestc           B   s   e  Z d  „  Z RS(   c         C   sÙ   t  j d ƒ } t | d j j ƒ  ƒ } t | d j j ƒ  ƒ } t | d j j ƒ  ƒ } |  j | t j ƒ |  j | t j ƒ |  j | t j ƒ |  j | j	 ƒ  d ƒ |  j | j	 ƒ  d ƒ |  j | j	 ƒ  d ƒ d  S(   Ns  
        from nose.tools import assert_equal
        from nose.tools import assert_equals
        from nose.tools import assert_true
        assert_equal = assert_equal #@
        assert_true = assert_true #@
        assert_equals = assert_equals #@
        i    i   i   s"   unittest.case.TestCase.assertEquals!   unittest.case.TestCase.assertTrue(
   R   R   R   t   valueR    t   assertIsInstanceRN   t   BoundMethodR   t   qname(   R   t   methodst   assert_equalt   assert_truet   assert_equals(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_nose_tools  s    	(   R   R   Ry   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRp     s   t   SixBrainTestc           B   s8   e  Z d  „  Z d „  Z e j e j d ƒ d „  ƒ Z RS(   c         C   ss  t  j d ƒ } t | d j ƒ  ƒ } |  j | t j ƒ |  j | j t	 j
 rS d n d ƒ t | d j ƒ  ƒ } t	 j
 r¢ |  j | t j ƒ |  j | j d ƒ n |  j | t j ƒ t | j d ƒ ƒ } t | j d ƒ ƒ } t	 j r=|  j | t j ƒ |  j | j ƒ  d	 ƒ |  j | t j ƒ |  j | j ƒ  d
 ƒ nR |  j | t j ƒ |  j | j ƒ  d ƒ |  j | t j ƒ |  j | j ƒ  d ƒ t | d j ƒ  ƒ } t	 j
 r×|  j | t j ƒ |  j | j d ƒ n |  j | t j ƒ t | j d ƒ ƒ } |  j | t j ƒ t | j d ƒ ƒ } |  j | t j ƒ t | d j ƒ  ƒ }	 t	 j
 r‚|  j |	 t j ƒ |  j |	 j d ƒ n |  j |	 t j ƒ t |	 j d ƒ ƒ }
 t |	 j d ƒ ƒ } t	 j r|  j |
 t j ƒ |  j |
 j ƒ  d ƒ |  j | t j ƒ |  j | j ƒ  d ƒ nR |  j |
 t j ƒ |  j |
 j ƒ  d ƒ |  j | t j ƒ |  j | j ƒ  d ƒ d  S(   Ns¥   
        import six
        six.moves.http_client #@
        six.moves.urllib_parse #@
        six.moves.urllib_error #@
        six.moves.urllib.request #@
        i    s   http.clientt   httplibi   s   urllib.parset   urljoint	   urlencodes   urlparse.urljoins   urllib.urlencodes   urllib.parse.urljoins   urllib.parse.urlencodei   s   urllib.errort   URLErrort   ContentTooShortErrori   s   urllib.requestt   urlopent   urlretrieves   urllib2.urlopens   urllib.urlretrieves   urllib.request.urlopens   urllib.request.urlretrieve(   R   R   R   R    Rr   R   Rj   R   R4   t   sixt   PY3RN   t   Instancet   igetattrt   PY2t   FunctionDefRt   t   ClassDef(   R   t	   ast_nodest   http_clientt   urllib_parseR|   R}   t   urllib_errort   urlerrort   content_too_shortt   urllib_requestR€   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_attribute_access%  s^    						c         C   sf   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ t j rF d } n d } |  j	 | j
 ƒ  | ƒ d  S(   NsZ   
        from six.moves import http_client
        http_client.HTTPSConnection #@
        s   http.client.HTTPSConnections   httplib.HTTPSConnection(   R   R   R   R    Rr   R   Rˆ   R‚   Rƒ   R   Rt   (   R   t   ast_nodeR&   Rt   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_from_importsk  s    			s)   The python 2 six brain uses dummy classesc         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ d S(   sk   Make sure ulrlib submodules can be imported from

        See PyCQA/pylint#1640 for relevant issue
        sQ   
        from six.moves.urllib.parse import urlparse
        urlparse #@
        N(   R   R   R   R    Rr   R   R‡   (   R   R‘   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_from_submodule_importsx  s    	(	   R   R   R   R’   t   unittestt   skipIfR‚   R†   R“   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRz   #  s   	F	sc   multiprocesing is required for this test, but on some platforms it is missing (Jython for instance)t   MultiprocessingBrainTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   so   t  j d ƒ } | j d ƒ } t | j d ƒ ƒ } t j d k  rX |  j | t j	 ƒ n |  j | t
 j ƒ d  S(   Ns(   
        import multiprocessing
        t   multiprocessingt	   cpu_counti   i   (   i   i   (   R   R   t   do_import_moduleR   R…   t   syst   version_infoRr   R   R‡   RN   Rs   (   R   t   moduleR˜   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt&   test_multiprocessing_module_attributes  s    	c         C   sD   t  j d ƒ } t | j ƒ  ƒ } | j ƒ  } |  j | j d ƒ d  S(   NsN   
        import multiprocessing
        multiprocessing.SyncManager()
        s   multiprocessing.managers(   R   R   R   R    t   rootR   R4   (   R   Rœ   t   inferred_sync_mgr(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_module_name›  s
    	c         C   sA  t  j d ƒ } t | d j ƒ  ƒ } |  j | j ƒ  d j t j j	 j
 ƒ ƒ t | d j ƒ  ƒ } |  j | j ƒ  d j t j j	 j
 ƒ ƒ t | d j ƒ  ƒ } d j t j r¶ d n d ƒ } |  j | j ƒ  | ƒ t | d	 j ƒ  ƒ } d
 } |  j | j ƒ  | ƒ t | d j ƒ  ƒ } d j t j r2d n d ƒ }	 |  j | j ƒ  |	 ƒ t | d j ƒ  ƒ }
 d } |  j |
 j ƒ  | ƒ xI d D]A } t | | j ƒ  ƒ } |  j | j ƒ  d j t j | ƒ ƒ qŠWt | d j ƒ  ƒ } |  j | j ƒ  d ƒ t | d j ƒ  ƒ } |  j | j d ƒ ƒ |  j | j d ƒ ƒ d  S(   Ns*  
        import multiprocessing
        manager = multiprocessing.Manager()
        queue = manager.Queue()
        joinable_queue = manager.JoinableQueue()
        event = manager.Event()
        rlock = manager.RLock()
        bounded_semaphore = manager.BoundedSemaphore()
        condition = manager.Condition()
        barrier = manager.Barrier()
        pool = manager.Pool()
        list = manager.list()
        dict = manager.dict()
        value = manager.Value()
        array = manager.Array()
        namespace = manager.Namespace()
        t   queues   {}.Queuet   joinable_queuet   events   threading.{}t   Eventt   _Eventt   rlocks   threading._RLockt   bounded_semaphoret   BoundedSemaphoret   _BoundedSemaphoret   pools   multiprocessing.pool.Poolt   listt   dicts   {}.{}t   arrays   array.arrayt   managert   startt   shutdown(   R«   R¬   (   R   t   parseR   R    R   Rt   t   formatR‚   t   movesR¡   R   Rƒ   R   t   BUILTINSR$   R%   (   R   Rœ   R¡   R¢   R£   t
   event_nameR¦   t
   rlock_nameR§   t   semaphore_nameRª   t	   pool_nameRU   t   objR­   R®   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_multiprocessing_manager¤  s<    	(   R   R   R   R    Rº   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR–   ‡  s   			t   ThreadingBrainTestc           B   s>   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   |  j  d ƒ d  S(   Nt   Lock(   t   _test_lock_object(   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt	   test_lockà  s    c         C   s   |  j  d ƒ d  S(   Nt   RLock(   R½   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt
   test_rlockã  s    c         C   s   |  j  d ƒ d  S(   Nt	   Semaphore(   R½   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_semaphoreæ  s    c         C   s   |  j  d ƒ d  S(   NR¨   (   R½   (   R   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_boundedsemaphoreé  s    c         C   s;   t  j d j | ƒ ƒ } t | j ƒ  ƒ } |  j | ƒ d  S(   Ns:   
        import threading
        threading.{0}()
        (   R   R   R²   R   R    t   assert_is_valid_lock(   R   t   object_namet   lock_instanceR&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR½   ì  s    c         C   so   |  j  | t j ƒ |  j | j ƒ  j d ƒ x< d d d d h D]( } |  j  t | j | ƒ ƒ t j ƒ q? Wd  S(   Nt	   threadingt   acquiret   releaset	   __enter__t   __exit__(	   Rr   RN   R„   R   Rž   R4   R   R…   Rs   (   R   R&   t   method(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRÄ   ô  s    (   R   R   R¾   RÀ   RÂ   RÃ   R½   RÄ   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR»   ß  s   					s‰   The enum module was only added in Python 3.4. Support for older Python versions may be available through the enum34 compatibility module.t   EnumBrainTestc           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 d ƒ } t | d j ƒ  ƒ } | d } |  j | j ƒ  d ƒ d j t j ƒ } x? d
 D]7 } t t	 | j
 | ƒ ƒ ƒ } |  j | | j ƒ  ƒ q^ W| j
 d ƒ d	 } |  j | t j ƒ d  S(   Ns­   
        import enum

        class MyEnum(enum.Enum):
            one = "one"
            two = "two"

            def mymethod(self, x):
                return 5

        t   MyEnumt   ones   .MyEnum.ones   {}.propertyR4   Rq   t   mymethodi    (   R4   Rq   (   R   R±   R   R    R   t   pytypeR²   R   R´   t   iterR%   R   t   decoratornamesRr   RN   R‡   (   R   Rœ   t   enumerationRÏ   t   property_typet   propnamet   propt   meth(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_simple_enum  s    
	
c         C   sE   t  j d ƒ } | d } t | j d ƒ ƒ } |  j | j d ƒ d  S(   Nsˆ   
        class Enumeration(object):
            def __init__(self, name, enum_list):
                pass
            test = 42
        t   Enumerationt   testi*   (   R   R±   R   R…   R   Rq   (   R   Rœ   RÔ   RÛ   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt#   test_looks_like_enum_false_positive  s
    	
c         C   s_   t  j d ƒ } t | d j ƒ  ƒ } | d } | j d ƒ d } |  j | j d ƒ d ƒ d  S(   Ns   
        import enum

        class Mixin:
            pass

        class MyEnum(Mixin, enum.Enum):
            one = 1
        RÎ   RÏ   t	   __class__i    s   .Mixins=   Enum instance should share base classes with generating class(   R   R±   R   R    R%   R$   t   is_subtype_of(   R   Rœ   RÔ   RÏ   t   clazz(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_enum_multiple_base_classes&  s    	
c         C   st   t  j d ƒ } t | d j ƒ  ƒ } | d } | j d ƒ d } d j t j d ƒ } |  j | j	 | ƒ d ƒ d  S(	   NsV   
        import enum

        class MyEnum(enum.IntEnum):
            one = 1
        RÎ   RÏ   RÝ   i    s   {}.{}t   ints.   IntEnum based enums should be a subtype of int(
   R   R±   R   R    R%   R²   R   R´   R$   RÞ   (   R   Rœ   RÔ   RÏ   Rß   t   int_type(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_int_enum7  s    	
c         C   s§   t  j d ƒ \ } } t | j ƒ  ƒ } |  j | t j ƒ t | j ƒ  ƒ } |  j | t j ƒ |  j t | j d ƒ ƒ t j	 ƒ |  j t | j d ƒ ƒ t j	 ƒ d  S(   Nsr   
        from enum import Enum
        f = Enum('Audience', ['a', 'b', 'c'])
        f #@
        f(1) #@
        R4   Rq   (
   R   R   R   R    Rr   R   R„   R…   R   t   Const(   R   t   clsRQ   t   inferred_clst   inferred_instance(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt)   test_enum_func_form_is_class_not_instanceG  s    "c         C   sN   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j d ƒ ƒ d  S(   Nsi   
        from enum import Enum
        Animal = Enum('Animal', 'ant bee cat dog')
        Animal
        t   __iter__(	   R   R   R   R    Rr   RN   R„   R$   R%   (   R   RQ   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_enum_func_form_iterableU  s
    	c         C   sc   t  j d ƒ \ } } t | j ƒ  ƒ } |  j | t j ƒ t | j ƒ  ƒ } |  j | t j ƒ d  S(   Ns‘   
        from enum import Enum
        Animal = Enum('Animal', 'ant bee cat dog')
        Animal['ant'] #@
        Animal['ant'].name #@
        (   R   R   R   R    Rr   RN   R„   Rä   (   R   RQ   R4   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt!   test_enum_func_form_subscriptable_  s    c         C   sK   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j t ƒ d  S(   Ns   
        from enum import Enum
        Animal = Enum('Animal', 'ant bee cat dog')
        for i in Animal.__members__:
            i #@
        (	   R   R   R   R    Rr   RN   Rä   Rq   t   str(   R   RQ   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt&   test_enum_func_form_has_dunder_membersl  s
    	(
   R   R   RÙ   RÜ   Rà   Rã   Rè   Rê   Rë   Rí   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRÍ   û  s   						
	s(   This test requires the dateutil library.t   DateutilBrainTestc           B   s   e  Z d  „  Z RS(   c         C   s?   t  j d ƒ } t | d j ƒ  ƒ } |  j | j ƒ  d ƒ d  S(   NsS   
        from dateutil.parser import parse
        d = parse('2000-01-01')
        t   ds   datetime.datetime(   R   R±   R   R    R   Rt   (   R   Rœ   t   d_type(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_parserz  s    	(   R   R   Rñ   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRî   x  s   s&   This test requires the pytest library.t   PytestBrainTestc           B   s   e  Z d  „  Z RS(   c         C   s¢   t  j d ƒ } t | j ƒ  ƒ } d d d d d d d d	 d
 d d d d g } t j j d ƒ d d k r} | d d g 7} n  x | D] } |  j | | ƒ q„ Wd  S(   Ns1   
        import pytest
        pytest #@
        t   deprecated_callt   warnst   exitt   failt   skipt   importorskipt   xfailt   markt   raisest   freeze_includest	   set_tracet   fixturet   yield_fixturet   .i    t   3t   approxt   register_assert_rewrite(   R   R   R   R    t   pytestt   __version__t   splitR   (   R   R‘   Rœ   t   attrsRU   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_pytest†  s    	(   R   R   R  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRò   ƒ  s   c          C   sI   d d l  }  x6 t j t j t j f D] } t | |  j ƒ s% t Sq% Wt S(   s‘   Check if streams are being overwritten,
    for example, by pytest

    stream inference will not work if they are overwritten

    PY3 only
    iÿÿÿÿN(	   t   ioRš   t   stdoutt   stderrt   stdint
   isinstancet   IOBaset   Falset   True(   R	  t   stream(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   streams_are_fine–  s
    t   IOBrainTestc           B   s/   e  Z e j e j o e ƒ  d  ƒ d „  ƒ Z RS(   s\   Needs Python 3 io model / doesn't work with plain pytest.use pytest -s for this test to workc         C   s¾   x· d d d h D]¦ } t  j d j | ƒ ƒ } t | j ƒ  ƒ } t | j d ƒ ƒ } |  j | t  j ƒ |  j | j	 d ƒ t | j d ƒ ƒ } |  j | t  j ƒ |  j | j	 d ƒ q Wd  S(	   NR
  R  R  s7   
            import sys
            sys.{}
            t   buffert   BufferedWritert   rawt   FileIO(
   RN   R   R²   R   R    R…   Rr   R„   R   R4   (   R   R4   R!   R&   t   buffer_attrR  (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_sys_streams¦  s    (   R   R   R”   t
   skipUnlessR‚   Rƒ   R  R  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR  ¥  s   s   3.6t   TypingBrainc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   su   t  j d ƒ } |  j g  | j ƒ  D] } | j ^ q" d d d g ƒ x* | j ƒ  D] } |  j | j d  k ƒ qQ Wd  S(   NsŠ   
        from typing import NamedTuple

        class X(NamedTuple("X", [("a", int), ("b", str), ("c", bytes)])):
           pass
        R0   R1   R2   (   R   R   R   R3   R4   R5   R6   R7   (   R   R8   R9   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR:   ¼  s    	c         C   sQ   t  j d ƒ } t d „  | j ƒ  Dƒ ƒ } |  j d d d h t | j ƒ ƒ d  S(   NsŠ   
        from typing import NamedTuple

        class X(NamedTuple("X", [("a", int), ("b", str), ("c", bytes)])):
           pass
        c         s   s$   |  ] } | j  d  k r | Vq d S(   R0   N(   R4   (   R;   R<   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pys	   <genexpr>Ð  s    R=   R>   R?   (   R   R   R   R3   R@   RA   RB   (   R   R8   R<   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRC   É  s    	c         C   sN   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j ƒ  d ƒ d  S(   Nsœ   
        from typing import NamedTuple

        name = "X"
        fields = [("a", int), ("b", str), ("c", bytes)]
        NamedTuple(name, fields)
        s   typing.NamedTuple(	   R   R   R   R    Rr   RN   R„   R   Rt   (   R   R8   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt$   test_namedtuple_inference_nonliteralÔ  s
    	c         C   s\   t  j d ƒ } t | j ƒ  ƒ } x4 | j j ƒ  D]# \ } } |  j | d j | ƒ q1 Wd  S(   Ns{   
        from typing import NamedTuple
        NamedTuple("A", [("a", int), ("b", str), ("c", bytes)])(1, 2, 3) #@
        i    (   R   R   R   R    RB   RS   R   RT   (   R   RP   R&   R4   RU   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyRV   á  s
    	c         C   sZ   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j d d d h t | j	 ƒ ƒ d  S(   Nso   
        from typing import NamedTuple
        NamedTuple("A", [("a", int), ("b", str), ("c", bytes)])
        R=   R>   R?   (
   R   R   R   R    Rr   R   Rˆ   R@   RA   RB   (   R   RP   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_simpleê  s
    	c         C   sN   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j ƒ  d ƒ d  S(   NsG   
        from typing import NamedTuple
        NamedTuple("A")
        s   typing.NamedTuple(	   R   R   R   R    Rr   RN   R„   R   Rt   (   R   RP   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_few_argsó  s
    	c         C   sN   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ |  j | j ƒ  d ƒ d  S(   Nsk   
        from typing import NamedTuple
        NamedTuple("A", [("a",), ("b", str), ("c", bytes)])
        s   typing.NamedTuple(	   R   R   R   R    Rr   RN   R„   R   Rt   (   R   RP   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_few_fieldsü  s
    	c         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ d  S(   Nsˆ   
        from typing import NamedTuple

        class Example(NamedTuple):
            mything: int

        Example(mything=1)
        (   R   R   R   R    Rr   RN   R„   (   R   RP   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_namedtuple_class_form  s    	(
   R   R   R:   RC   R  RV   R  R  R  R   (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR  ¹  s   											t   ReBrainTestc           B   s   e  Z d  „  Z RS(   c         C   s—   d d  l  } g  t | ƒ D] } | j ƒ  r | ^ q } t j d ƒ } xJ | D]B } |  j | | ƒ |  j t | | j ƒ  ƒ j	 t
 | | ƒ ƒ qM Wd  S(   Niÿÿÿÿt   re(   R"  t   dirt   isupperR    R   R   R   R   R    Rq   R%   (   R   R"  R4   t   namest   re_ast(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_regex_flags  s    +(   R   R   R'  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR!    s   t   BrainFStringsc           B   s   e  Z d  „  Z RS(   c         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ d  S(   Ns   
        max_width = 10

        test1 = f'{" ":{max_width+4}}'
        print(f'"{test1}"')

        test2 = f'[{"7":>{max_width}}:0]'
        test2
        (   R   R   R   R    RD   R   RE   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt%   test_no_crash_on_const_reconstruction  s    	(   R   R   R)  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR(    s   t   BrainNamedtupleAnnAssignTestc           B   s   e  Z d  „  Z RS(   c         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ d  S(   Ns|   
        from enum import Enum
        from typing import Optional

        class A(Enum):
            B: str = 'B'
        (   R   R   R   R    Rr   R   Rˆ   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt)   test_no_crash_on_ann_assign_in_namedtuple0  s    	(   R   R   R+  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR*  -  s   t   BrainUUIDTestc           B   s   e  Z d  „  Z RS(   c         C   s8   t  j d ƒ } t | j ƒ  ƒ } |  j | t j ƒ d  S(   Nsk   
        import uuid
        u = uuid.UUID('{12345678-1234-5678-1234-567812345678}')
        u.int
        (   R   R   R   R    Rr   R   Rä   (   R   R!   R&   (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_uuid_has_int_member>  s    	(   R   R   R-  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR,  <  s   s$   These tests require the attr libraryt	   AttrsTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   sR   t  j d ƒ } t | j d ƒ d j ƒ  ƒ j d ƒ d } |  j | t  j ƒ d  S(   Nsœ   
        import attr

        @attr.s
        class Foo:

            d = attr.ib(attr.Factory(dict))

        f = Foo()
        f.d['answer'] = 42
        t   fi    Rï   (   RN   R±   R   R%   R    Rr   t   Unknown(   R   Rœ   t   should_be_attribute(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_attr_transformJ  s    
	,c         C   sO   d } t  t j | ƒ j ƒ  ƒ } | j d ƒ \ } t | t j ƒ sK t ‚ d S(   s(   Make sure special attrs attributes exists`   
        import attr

        @attr.s
        class Foo:
            pass
        Foo()
        t   __attrs_attrs__N(	   R   RN   R   R    R%   R  R   R0  t   AssertionError(   R   t   codet   foo_instt	   attr_node(    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   test_special_attributesZ  s    
c         C   s#   d } t  t j | ƒ j ƒ  ƒ d  S(   NsÈ   
        import attr

        class Cls: pass
        @attr.s
        class Foo:
            temp = Cls()
            temp.prop = 5
            bar_thing = attr.ib(default=temp)
        Foo()
        (   R   RN   R   R    (   R   R5  (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt0   test_dont_consider_assignments_but_without_attrsj  s    (   R   R   R2  R8  R9  (    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyR.  H  s   		Rg   (5   t   __doc__R—   R  t   HAS_MULTIPROCESSINGt   ImportErrorR  Rš   R”   t   enumt   HAS_ENUMt   enum34t   noset   HAS_NOSEt   dateutilt   HAS_DATEUTILR  t
   HAS_PYTESTRU   t   attr_modulet   HAS_ATTRR‚   RN   R    R   R   R   R   R   t   TestCaseR   R   R/   Rd   Rf   R  Rp   Rz   R–   R»   RÍ   Rî   Rò   R  R  R.   R  R!  R(  R*  R,  R.  R   t   main(    (    (    s;   lib/python2.7/site-packages/astroid/tests/unittest_brain.pyt   <module>   sš   











‹d		T		y
	X
0