ó
4¶†\c           @   sh   d  d l  m Z d  d l m Z m Z m Z m Z m Z m	 Z	 d  d l
 m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   messages(   t   FunctionScopet
   ClassScopet   ModuleScopet   Argumentt   FunctionDefinitiont
   Assignment(   t   TestCaset   TestCodeSegmentsc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s(   
    Tests for segments of a module
    c         C   s0   |  j  d d t ƒ|  j  d t j d t ƒd  S(   NsH   
        def foo():
            def bar():
                pass
        t
   is_segmentsI   
        def foo():
            def bar():
                x = 0
        (   t   flakest   Truet   mt   UnusedVariable(   t   self(    (    s>   lib/python2.7/site-packages/pyflakes/test/test_code_segment.pyt   test_function_segment   s    c         C   s0   |  j  d d t ƒ|  j  d t j d t ƒd  S(   NsH   
        class Foo:
            class Bar:
                pass
        R	   sI   
        class Foo:
            def bar():
                x = 0
        (   R
   R   R   R   (   R   (    (    s>   lib/python2.7/site-packages/pyflakes/test/test_code_segment.pyt   test_class_segment   s    c   	      C   sè  |  j  d d t ƒ} | j } g  | D] } | j t k r% | ^ q% } g  | D] } | j t k rM | ^ qM } g  | D] } | j t k ru | ^ qu } |  j t | ƒ d ƒ |  j t | ƒ d ƒ |  j t | ƒ d ƒ | d } | d } |  j	 | t ƒ |  j	 | t ƒ |  j
 d | ƒ |  j
 d | ƒ |  j
 d | ƒ |  j
 d | ƒ |  j
 d	 | ƒ |  j
 d
 | ƒ |  j	 | d t ƒ |  j	 | d t ƒ |  j	 | d t ƒ |  j	 | d t ƒ |  j	 | d	 t ƒ |  j	 | d
 t ƒ d  S(   Nsi   
        class Foo:
            x = 0
            def bar(a, b=1, *d, **e):
                pass
        R	   i    i   t   xt   bart   at   bt   dt   e(   R
   R   t
   deadScopest	   __class__R   R   R   t   assertEqualt   lent   assertIsInstancet   assertInR   R   R   (	   R   t   checkert   scopest   scopet   module_scopest   class_scopest   function_scopest   class_scopet   function_scope(    (    s>   lib/python2.7/site-packages/pyflakes/test/test_code_segment.pyt   test_scope_class&   s2    	(((

c         C   s  |  j  d d t ƒ} | j } g  | D] } | j t k r% | ^ q% } g  | D] } | j t k rM | ^ qM } |  j t | ƒ d ƒ |  j t | ƒ d ƒ | d } | d } |  j | t ƒ |  j | t ƒ |  j	 d | ƒ |  j	 d | ƒ |  j	 d | ƒ |  j	 d	 | ƒ |  j	 d
 | ƒ |  j	 d | ƒ |  j	 d | ƒ |  j	 d | ƒ |  j	 d | ƒ |  j | d
 t
 ƒ |  j | d t ƒ |  j | d t ƒ |  j | d t ƒ |  j | d	 t ƒ |  j | d t ƒ |  j | d t ƒ |  j | d t ƒ |  j | d t ƒ d  S(   Nsf   
        def foo(a, b=1, *d, **e):
            def bar(f, g=1, *h, **i):
                pass
        R	   i    i   i   R   R   R   R   R   t   ft   gt   ht   i(   R
   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R   R   R    R"   t   function_scope_foot   function_scope_bar(    (    s>   lib/python2.7/site-packages/pyflakes/test/test_code_segment.pyt   test_scope_functionR   s:    	((

(   t   __name__t
   __module__t   __doc__R   R   R%   R,   (    (    (    s>   lib/python2.7/site-packages/pyflakes/test/test_code_segment.pyR      s
   			,N(   t   pyflakesR    R   t   pyflakes.checkerR   R   R   R   R   R   t   pyflakes.test.harnessR   R   (    (    (    s>   lib/python2.7/site-packages/pyflakes/test/test_code_segment.pyt   <module>   s   .