
^Yc           @   s   d  d l  m Z d  d l m Z d  d l m Z m Z m Z m	 Z	 m
 Z
 d  d l m Z m Z m Z d e f d     YZ d e f d     YZ d	 e f d
     YZ d e f d     YZ d S(   i(   t   version_info(   t   messages(   t   FutureImportationt   Importationt   ImportationFromt   StarImportationt   SubmoduleImportation(   t   TestCaset   skipt   skipIft   TestImportationObjectc           B   s   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 d   Z d   Z d   Z d   Z RS(   c         C   sC   t  d d  d  } | j d k s' t  t |  d k s? t  d  S(   Nt   as   import a(   R   t   Nonet   source_statementt   AssertionErrort   str(   t   selft   binding(    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_import_basic   s    c         C   sC   t  d d  d  } | j d k s' t  t |  d k s? t  d  S(   Nt   cR   s   import a as cs   a as c(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_import_as   s    c         C   s@   t  d d   } | j d k s$ t  t |  d k s< t  d  S(   Ns   a.bs
   import a.b(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_import_submodule   s    c         C   sC   t  d d  d  } | j d k s' t  t |  d k s? t  d  S(   NR   s   a.bs   import a.b as cs   a.b as c(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_import_submodule_as    s    c         C   sC   t  d d  d  } | j d k s' t  t |  d k s? t  d  S(   NR   s   a.bs   import a.b as as   a.b as a(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt$   test_import_submodule_as_source_name&   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   NR   t   .s   from . import as   .a(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_relative+   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   NR   s   ..s   from .. import as   ..a(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_relative_parent0   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   Nt   bs   ..as   from ..a import bs   ..a.b(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt$   test_importfrom_relative_with_module5   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   NR   s   ..aR   s   from ..a import b as cs
   ..a.b as c(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt'   test_importfrom_relative_with_module_as:   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   NR   R   s   from a import bs   a.b(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_member?   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   NR   s   a.bs   from a.b import cs   a.b.c(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt    test_importfrom_submodule_memberD   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   NR   R   R   s   from a import b as cs   a.b as c(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_member_asI   s    c         C   sF   t  d d  d d  } | j d k s* t  t |  d k sB t  d  S(   Nt   ds   a.bR   s   from a.b import c as ds
   a.b.c as d(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt#   test_importfrom_submodule_member_asN   s    c         C   s@   t  d d   } | j d k s$ t  t |  d k s< t  d  S(   Ns   a.bs   from a.b import *s   a.b.*(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_starS   s    c         C   s@   t  d d   } | j d k s$ t  t |  d k s< t  d  S(   Ns   .bs   from .b import *s   .b.*(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_star_relativeX   s    c         C   sC   t  d d  d   } | j d k s' t  t |  d k s? t  d  S(   Nt   print_functions%   from __future__ import print_functions   __future__.print_function(   R   R   R   R   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importfrom_future]   s    (   t   __name__t
   __module__R   R   R   R   R   R   R   R   R   R   R   R    R"   R#   R$   R&   (    (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyR
      s    															t   Testc           B   s  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 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 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' d&   Z( d'   Z) d(   Z* d)   Z+ d*   Z, d+   Z- d,   Z. d-   Z/ d.   Z0 d/   Z1 d0   Z2 d1   Z3 d2   Z4 d3   Z5 d4   Z6 d5   Z7 d6   Z8 d7   Z9 d8   Z: d9   Z; d:   Z< d;   Z= d<   Z> e? e@ dj k d>  d?    ZA d@   ZB dA   ZC dB   ZD dC   ZE dD   ZF e? e@ dk k dE  dF    ZG dG   ZH dH   ZI dI   ZJ dJ   ZK dK   ZL dL   ZM dM   ZN dN   ZO dO   ZP dP   ZQ e? e@ dl k  dQ  dR    ZR e? e@ dm k dS  dT    ZS dU   ZT dV   ZU dW   ZV dX   ZW dY   ZX dZ   ZY d[   ZZ d\   Z[ d]   Z\ d^   Z] d_   Z^ d`   Z_ e` da  db    Za dc   Zb dd   Zc de   Zd df   Ze dg   Zf dh   Zg di   Zh RS(n   c         C   s6   |  j  d t j t j  |  j  d t j t j  d  S(   Ns   import fu, bars   from baz import fu, bar(   t   flakest   mt   UnusedImport(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_unusedImporte   s    c         C   sG  |  j  d t j  |  j  d t j  |  j  d t j  |  j  d t j  |  j  d t j  |  j  d t j  |  j  d t j  |  j  d t j  |  j  d	 t j  |  j  d t j  } | j d
 } | j d k s t  | j d k s t  |  j  d t j  } | j d
 } | j d k s.t  | j d k sCt  d  S(   Ns   from . import fus   from . import fu as bazs   from .. import fus   from ... import fus   from .. import fu as bazs   from .bar import fus   from ..bar import fus   from ...bar import fus   from ...bar import fu as bazi    s   %r imported but unuseds   .fus
   .fu as baz(   s   .fu(   s
   .fu as baz(   R*   R+   R,   R   t   messageR   t   message_args(   R   t   checkert   error(    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_unusedImport_relativei   s"    c         C   s6   |  j  d t j t j  |  j  d t j t j  d  S(   Ns   import fu as FU, bar as FUs#   from moo import fu as FU, bar as FU(   R*   R+   t   RedefinedWhileUnusedR,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_aliasedImport   s    		c         C   s+   |  j  d  |  j  d  |  j  d  d S(   s5   Imported aliases can shadow the source of the import.s   from moo import fu as moo; moos   import fu as fu; fus   import fu.bar as fu; fuN(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_aliasedImportShadowModule   s    c         C   s+   |  j  d  |  j  d  |  j  d  d  S(   Ns   import fu; print(fu)s   from baz import fu; print(fu)s   import fu; del fu(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedImport   s    c         C   s8   |  j  d  |  j  d  |  j  d  |  j  d  d  S(   Ns   from . import fu; assert fus   from .bar import fu; assert fus   from .. import fu; assert fus'   from ..bar import fu as baz; assert baz(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedImport_relative   s    c         C   s=   |  j  d t j  |  j  d t j  |  j  d t j  d  S(   Ns   import fu; fu = 3s   import fu; fu, bar = 3s   import fu; [fu, bar] = 3(   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedWhileUnused   s    c         C   s   |  j  d t j  d S(   se   
        Test that importing a module twice within an if
        block does raise a warning.
        s[   
        i = 2
        if i==1:
            import os
            import os
        os.pathN(   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedIf   s    c         C   s   |  j  d  d S(   sl   
        Test that importing a module twice in if
        and else blocks does not raise a warning.
        si   
        i = 2
        if i==1:
            import os
        else:
            import os
        os.pathN(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedIfElse   s    c         C   s   |  j  d t j  d S(   sa   
        Test that importing a module twice in a try block
        does raise a warning.
        sj   
        try:
            import os
            import os
        except:
            pass
        os.pathN(   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTry   s    c         C   s   |  j  d  d S(   sp   
        Test that importing a module twice in a try
        and except block does not raise a warning.
        sY   
        try:
            import os
        except:
            import os
        os.pathN(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTryExcept   s    c         C   s   |  j  d  d S(   s~   
        Test that importing a module twice using a nested
        try/except and if blocks does not issue a warning.
        s   
        try:
            if True:
                if True:
                    import os
        except:
            import os
        os.pathN(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTryNested   s    c         C   s   |  j  d  d  S(   Ns   
        try:
            from aa import mixer
        except AttributeError:
            from bb import mixer
        except RuntimeError:
            from cc import mixer
        except:
            from dd import mixer
        mixer(123)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTryExceptMulti   s    
c         C   s   |  j  d t j  d  S(   Ns   
        try:
            from aa import mixer
        except ImportError:
            pass
        else:
            from bb import mixer
        mixer(123)
        (   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTryElse   s    c         C   s   |  j  d  d  S(   Ns   
        try:
            import funca
        except ImportError:
            from bb import funca
            from bb import funcb
        else:
            from bbb import funcb
        print(funca, funcb)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTryExceptElse   s    	c         C   s   |  j  d  d  S(   Ns   
        try:
            from aa import a
        except ImportError:
            from bb import a
        finally:
            a = 42
        print(a)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedTryExceptFinally   s    c         C   s   |  j  d  d  S(   Ns   
        try:
            import b
        except ImportError:
            b = Ellipsis
            from bb import a
        else:
            from aa import a
        finally:
            a = 42
        print(a, b)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt"   test_redefinedTryExceptElseFinally  s    c         C   s   |  j  d t j  d  S(   Ns>   
        import fu
        def fu():
            pass
        (   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedByFunction  s    c         C   s   |  j  d t j t j  d S(   sr   
        Test that shadowing a global name with a nested function definition
        generates a warning.
        sx   
        import fu
        def bar():
            def baz():
                def fu():
                    pass
        N(   R*   R+   R3   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedInNestedFunction   s    c         C   s)   |  j  d t j t j t j t j  d S(   sr   
        Test that shadowing a global name with a nested function definition
        generates a warning.
        s   
        import fu
        def bar():
            import fu
            def baz():
                def fu():
                    pass
        N(   R*   R+   R3   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt#   test_redefinedInNestedFunctionTwice-  s    c         C   s   |  j  d  d S(   s   
        Test that a global import which is redefined locally,
        but used later in another scope does not generate a warning.
        sq  
        import unittest, transport

        class GetTransportTestCase(unittest.TestCase):
            def test_get_transport(self):
                transport = 'transport'
                self.assertIsNotNone(transport)

        class TestTransportMethodArgs(unittest.TestCase):
            def test_send_defaults(self):
                transport.Transport()
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedButUsedLater=  s    c         C   s   |  j  d t j  d  S(   Ns>   
        import fu
        class fu:
            pass
        (   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedByClassO  s    c         C   s   |  j  d  d S(   s   
        If an imported name is redefined by a class statement which also uses
        that name in the bases list, no warning is emitted.
        sM   
        from fu import bar
        class bar(bar):
            pass
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedBySubclassV  s    c         C   s   |  j  d  d S(   si   
        Test that shadowing a global with a class attribute does not produce a
        warning.
        sS   
        import fu
        class bar:
            fu = 1
        print(fu)
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedInClassa  s    c         C   s$   |  j  d  |  j  d t j  d S(   sN   
        Test that import within class is a locally scoped attribute.
        s2   
        class bar:
            import fu
        s>   
        class bar:
            import fu

        fu
        N(   R*   R+   t   UndefinedName(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importInClassm  s    c         C   s   |  j  d  d  S(   NsD   
        import fu
        def fun():
            print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInFunction}  s    c         C   s*   |  j  d t j t j  |  j  d  d  S(   NsF   
        import fu
        def fun(fu):
            print(fu)
        sX   
        import fu
        def fun(fu):
            print(fu)
        print(fu)
        (   R*   R+   R,   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_shadowedByParameter  s    c         C   s   |  j  d  d  S(   Ns	   fu = None(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_newAssignment  s    c         C   s$   |  j  d  |  j  d t j  d  S(   Ns   import fu; fu.bar.bazs   import fu; "bar".fu.baz(   R*   R+   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInGetattr  s    c         C   s   |  j  d  d  S(   Ns   import fu; print(fu.bar[1:])(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInSlice  s    c         C   s   |  j  d  d  S(   Ns6   
        import fu
        if True: print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInIfBody  s    c         C   s   |  j  d  d  S(   Ns/   
        import fu
        if fu: pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInIfConditional  s    c         C   s   |  j  d  d  S(   NsH   
        import fu
        if False: pass
        elif fu: pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInElifConditional  s    c         C   s   |  j  d  d  S(   NsJ   
        import fu
        if False: pass
        else: print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInElse  s    c         C   s   |  j  d  d  S(   Ns   import fu; fu.bar()(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInCall  s    c         C   s   |  j  d  d  S(   NsC   
        import fu
        class bar:
            bar = fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInClass  s    c         C   s   |  j  d  d  S(   NsO   
        import fu
        class bar(object, fu.baz):
            pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInClassBase  s    c         C   s   |  j  d  d  S(   NsR   
        import fu
        def bleh():
            pass
        print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_notUsedInNestedScope  s    c         C   s   |  j  d  d  S(   NsN   
        import fu
        for bar in range(9):
            print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInFor  s    c         C   s   |  j  d  d  S(   Nsn   
        import fu
        for bar in range(10):
            pass
        else:
            print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInForElse  s    c         C   s   |  j  d t j  d  S(   NsH   
        import fu
        for fu in range(2):
            pass
        (   R*   R+   t   ImportShadowedByLoopVar(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedByFor  s    c         C   s   |  j  d t j  d S(   si   
        Test that shadowing a global name with a for loop variable generates a
        warning.
        sS   
        import fu
        fu.bar()
        for fu in ():
            pass
        N(   R*   R+   R[   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_shadowedByFor  s    c         C   s*   |  j  d t j  |  j  d t j  d S(   s   
        Test that shadowing a global name with a for loop variable nested in a
        tuple unpack generates a warning.
        sl   
        import fu
        fu.bar()
        for (x, y, z, (a, b, c, (fu,))) in ():
            pass
        sl   
        import fu
        fu.bar()
        for [x, y, z, (a, b, c, (fu,))] in ():
            pass
        N(   R*   R+   R[   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_shadowedByForDeep  s    c         C   s   |  j  d  d  S(   NsD   
        import fu
        def fun():
            return fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInReturn  s    c         C   s   |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d	  |  j  d
  |  j  d  |  j  d  |  j  d  |  j  d  |  j  d  d  S(   Ns   import fu; 3 + fu.bars   import fu; 3 % fu.bars   import fu; 3 - fu.bars   import fu; 3 * fu.bars   import fu; 3 ** fu.bars   import fu; 3 / fu.bars   import fu; 3 // fu.bars   import fu; -fu.bars   import fu; ~fu.bars   import fu; 1 == fu.bars   import fu; 1 | fu.bars   import fu; 1 & fu.bars   import fu; 1 ^ fu.bars   import fu; 1 >> fu.bars   import fu; 1 << fu.bar(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInOperators  s    c         C   s   |  j  d  d  S(   Ns   import fu; assert fu.bar(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInAssert  s    c         C   s   |  j  d  d  S(   Ns   import fu; fu.bar[1](   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInSubscript   s    c         C   s+   |  j  d  |  j  d  |  j  d  d  S(   Ns   import fu; fu and Falses   import fu; fu or Falses   import fu; not fu.bar(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInLogic#  s    c         C   s   |  j  d  d  S(   Ns   import fu; [fu](   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInList(  s    c         C   s   |  j  d  d  S(   Ns   import fu; (fu,)(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInTuple+  s    c         C   s   |  j  d  d  S(   Ns@   
        import fu
        try: fu
        except: pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInTry.  s    c         C   s   |  j  d  d  S(   Ns@   
        import fu
        try: fu
        except: pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInExcept5  s    c         C   s3   t  d k  r d n d } |  j d | t j  d  S(   Ni   i   s   , s    as sP   
        import fu
        try: pass
        except Exception%sfu: pass
        (   i   i   (   R    R*   R+   R3   (   R   t   as_exc(    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedByExcept<  s    c         C   s   |  j  d  d  S(   Ns0   
        import fu
        raise fu.bar
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInRaiseD  s    c         C   s   |  j  d  d  S(   NsC   
        import fu
        def gen():
            yield fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInYieldJ  s    c         C   s   |  j  d  |  j  d  d  S(   Ns   import fu; {fu:None}s   import fu; {1:fu}(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInDictQ  s    c         C   s   |  j  d  d  S(   NsC   
        import fu
        def f(bar=fu):
            pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInParameterDefaultU  s    c         C   s   |  j  d  d  S(   Ns   import fu; fu.bar = 1(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInAttributeAssign\  s    c         C   s   |  j  d  d  S(   Ns   import fu; fu.bar(stuff=fu)(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInKeywordArg_  s    c         C   s   |  j  d  |  j  d  d  S(   Ns   import fu; bar=fus   import fu; n=0; n+=fu(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInAssignmentb  s    c         C   s   |  j  d  |  j  d  d  S(   Ns!   import fu; [fu for _ in range(1)]s&   import fu; [1 for _ in range(1) if fu](   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInListCompf  s    i   s;   in Python 3 list comprehensions execute in a separate scopec         C   s   |  j  d t j  d  S(   Ns!   import fu; [1 for fu in range(1)](   R*   R+   t   RedefinedInListComp(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedByListCompj  s    	c         C   s   |  j  d  |  j  d  d  S(   NsA   
        import fu
        try: pass
        finally: fu
        sA   
        import fu
        try: fu
        finally: pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInTryFinallyp  s    c         C   s   |  j  d  |  j  d  d  S(   Ns;   
        import fu
        while 0:
            fu
        s2   
        import fu
        while fu: pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInWhile}  s    c         C   s   |  j  d t j  d S(   st   
        A 'global' statement shadowing an unused import should not prevent it
        from being reported.
        s6   
        import fu
        def f(): global fu
        N(   R*   R+   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInGlobal  s    c         C   s   |  j  d  d S(   st   
        A 'global' statement shadowing a used import should not cause it to be
        reported as unused.
        sc   
            import foo
            def f(): global foo
            def g(): foo.is_used()
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedAndGlobal  s    c         C   s   |  j  d  d S(   sn   
        Binding an import to a declared global should not cause it to be
        reported as unused.
        sX   
            def f(): global foo; import foo
            def g(): foo.is_used()
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_assignedToGlobal  s    s   deprecated syntaxc         C   s   |  j  d  d  S(   Ns   import fu; `fu`(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInBackquote  s    c         C   s0   t  d k  r d } n d } |  j d |  d  S(   Ni   s   exec "print 1" in fu.bars   exec("print(1)", fu.bar)s   import fu; %s(   i   (   R    R*   (   R   t	   exec_stmt(    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInExec  s    	c         C   s   |  j  d  d  S(   Ns   import fu; lambda: fu(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInLambda  s    c         C   s*   |  j  d t j t j  |  j  d  d  S(   Ns   import fu; lambda fu: fus   import fu; lambda fu: fu
fu()(   R*   R+   R,   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_shadowedByLambda  s    	c         C   s   |  j  d  d  S(   Ns   import fu; "meow"[::fu](   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInSliceObj  s    c         C   s   |  j  d t j t j  d  S(   Ns=   
        def bar():
            import fu
        fu
        (   R*   R+   R,   RJ   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_unusedInNestedScope  s    c         C   s   |  j  d t j  d  S(   Ns`   
        class bar:
            import fu
            def fun(self):
                fu
        (   R*   R+   RJ   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_methodsDontUseClassScope  s    c         C   s   |  j  d  d  S(   NsX   
        def a():
            def b():
                fu
            import fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_nestedFunctionsNestScope  s    c         C   s   |  j  d  d  S(   Ns   
        def a():
            import fu
            class b:
                def c(self):
                    print(fu)
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt    test_nestedClassAndFunctionScope  s    c         C   s   |  j  d t j t j  |  j  d t j t j  |  j  d t j t j  } | j d } | j j d  sr t  | j d
 k s t  | j d } | j d k s t  | j d k s t  d	 S(   s,   Use of import * at module level is reported.s   from fu import *sT   
        try:
            from fu import *
        except:
            pass
        i    s    'from %s import *' used; unable t   fui   s   %r imported but unuseds   fu.*N(   R   (   s   fu.*(	   R*   R+   t   ImportStarUsedR,   R   R.   t
   startswithR   R/   (   R   R0   R1   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importStar  s    	c         C   sN  |  j  d t j t j  |  j  d t j t j  |  j  d t j t j  } | j d } | j j d  sr t  | j d k s t  | j d } | j d k s t  | j d k s t  |  j  d	 t j t j  } | j d } | j j d  s t  | j d k st  | j d } | j d k s5t  | j d k sJt  d S(   s3   Use of import * from a relative import is reported.s   from .fu import *sU   
        try:
            from .fu import *
        except:
            pass
        i    s    'from %s import *' used; unable s   .fui   s   %r imported but unuseds   .fu.*s   from .. import *s   ..N(   s   .fu(   s   .fu.*(   s   ..(   s   from .. import *(	   R*   R+   R   R,   R   R.   R   R   R/   (   R   R0   R1   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importStar_relative  s&    		s4   import * below module level is a warning on Python 2c         C   sv   |  j  d t j  |  j  d t j  |  j  d t j  } | j d } | j d k s] t  | j d k sr t  d S(	   s)   import * is only allowed at module level.s7   
        def a():
            from fu import *
        s7   
        class a:
            from fu import *
        s7   
        class a:
            from .. import *
        i    s/   'from %s import *' only allowed at module levels   ..N(   s   ..(   R*   R+   t   ImportStarNotPermittedR   R.   R   R/   (   R   R0   R1   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_localImportStar  s    s3   import * below module level is an error on Python 3c         C   s#   |  j  d t j t j t j  d S(   s=   All star imports are marked as used by an undefined variable.s_   
        from fu import *
        def f():
            from bar import *
            x
        N(   R*   R+   R   t   ImportStarUsage(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importStarNested(  s    c         C   s   |  j  d  d S(   sP   
        If a dotted name is imported and used, no warning is reported.
        s.   
        import fu.bar
        fu.bar
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_packageImport3  s    c         C   s   |  j  d t j  d S(   sj   
        If a dotted name is imported and not used, an unused import warning is
        reported.
        s   import fu.barN(   R*   R+   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_unusedPackageImport<  s    c         C   s*   |  j  d t j  |  j  d t j  d S(   s   
        If a submodule of a package is imported twice, an unused import warning
        and a redefined while unused warning are reported.
        s6   
        import fu.bar, fu.bar
        fu.bar
        sD   
        import fu.bar
        import fu.bar
        fu.bar
        N(   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_duplicateSubmoduleImportC  s    c         C   s   |  j  d  |  j  d  d S(   s   
        If two different submodules of a package are imported, no duplicate
        import warning is reported for the package.
        s>   
        import fu.bar, fu.baz
        fu.bar, fu.baz
        sL   
        import fu.bar
        import fu.baz
        fu.bar, fu.baz
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_differentSubmoduleImportR  s    c         C   s   |  j  d  |  j  d  d S(   sC   
        Usage of package marks submodule imports as used.
        s>   
        import fu
        import fu.bar
        fu.x
        s>   
        import fu.bar
        import fu
        fu.x
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt'   test_used_package_with_submodule_importa  s    c         C   st   |  j  d t j  } | j d } | j d k s7 t  | j d k sL t  |  j rd | j d k n d sp t  d S(	   sR   
        When a package and its submodule are imported, only report once.
        s1   
        import fu
        import fu.bar
        i    s   %r imported but unuseds   fu.bari   i   N(   s   fu.bar(	   R*   R+   R,   R   R.   R   R/   t   withDoctestt   lineno(   R   R0   R1   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt)   test_unused_package_with_submodule_importq  s    c         C   s8   |  j  d  |  j  d  |  j  d  |  j  d  d  S(   Ns   import fu; fu = fus   import fu; fu, bar = fus   import fu; [fu, bar] = fus   import fu; fu += fu(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_assignRHSFirst~  s    c         C   s   |  j  d  d  S(   Nsp   
        try:
            import fu
        except ImportError:
            import bar as fu
        fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_tryingMultipleImports  s    c         C   s   |  j  d  d  S(   Ns`   
        import fu
        def a():
            fu = 3
            return fu
        fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_nonGlobalDoesNotRedefine  s    c         C   s   |  j  d  d  S(   Ns;   
        def a():
            fu
        import fu
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_functionsRunLater  s    c         C   s   |  j  d t j  d  S(   NsG   
        import fu
        def fu():
            fu
        fu
        (   R*   R+   R3   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_functionNamesAreBoundNow  s    c         C   s   |  j  d  d  S(   Ns   a = 1; a = 2(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt!   test_ignoreNonImportRedefinitions  s    t   todoc         C   s   |  j  d  d  S(   NsY   
        try:
            import fu
        except ImportError:
            pass
        (   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importingForImportError  s    c         C   s   |  j  d  d S(   s0   Imports in class scope can be used through self.sf   
        class c:
            import i
            def __init__(self):
                self.i
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importedInClass  s    c         C   s   |  j  d  d S(   sW   
        Method named 'foo' with default args referring to module named 'foo'.
        s   
        import foo

        class Thing(object):
            def foo(self, parser=foo.parse_foo):
                pass
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt!   test_importUsedInMethodDefinition  s    c         C   s   |  j  d  |  j  d  d S(   s   __future__ is special.s   from __future__ import divisionse   
        "docstring is allowed before future import"
        from __future__ import division
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_futureImport  s    c         C   s*   |  j  d t j  |  j  d t j  d S(   sD   
        __future__ imports must come before anything else.
        s?   
        x = 5
        from __future__ import division
        sY   
        from foo import bar
        from __future__ import division
        bar
        N(   R*   R+   t   LateFutureImport(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_futureImportFirst  s    c         C   s   |  j  d  d S(   s?   __future__ is special, but names are injected in the namespace.s   
        from __future__ import division
        from __future__ import print_function

        assert print_function is not division
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_futureImportUsed  s    c         C   s   |  j  d t j  d S(   s0   Importing undefined names from __future__ fails.s8   
        from __future__ import print_statement
        N(   R*   R+   t   FutureFeatureNotDefined(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_futureImportUndefined  s    c         C   s   |  j  d t j  d S(   s$   Importing '*' from __future__ fails.s*   
        from __future__ import *
        N(   R*   R+   R   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_futureImportStar  s    (   i   (   i   (   i   (   i   (i   R'   R(   R-   R2   R4   R5   R6   R7   R8   R9   R:   R;   R<   R=   R>   R?   R@   RA   RB   RC   RD   RE   RF   RG   RH   RI   RK   RL   RM   RN   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   Re   Rf   Rg   Ri   Rj   Rk   Rl   Rm   Rn   Ro   Rp   Rq   R	   R    Rs   Rt   Ru   Rv   Rw   Rx   Ry   R{   R|   R}   R~   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyR)   c   s   																																																																	
		
											 
																								t   TestSpecialAllc           B   sq   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(   sH   
    Tests for suppression of unused import warnings by C{__all__}.
    c         C   s   |  j  d t j t j  d S(   sp   
        An C{__all__} definition does not suppress unused import warnings in a
        function scope.
        sQ   
        def foo():
            import bar
            __all__ = ["bar"]
        N(   R*   R+   R,   t   UnusedVariable(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_ignoredInFunction  s    c         C   s   |  j  d t j  d S(   s_   
        An C{__all__} definition in a class does not suppress unused import warnings.
        sM   
        import bar
        class foo:
            __all__ = ["bar"]
        N(   R*   R+   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_ignoredInClass  s    c         C   s   |  j  d  |  j  d  d S(   sn   
        If a name is imported and unused but is named in C{__all__}, no warning
        is reported.
        s6   
        import foo
        __all__ = ["foo"]
        s7   
        import foo
        __all__ = ("foo",)
        N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_warningSuppressed  s    c         C   s   |  j  d t j t j  d S(   sC   
        The C{__all__} variable is defined incrementally.
        s   
        import a
        import c
        __all__ = ['a']
        __all__ += ['b']
        if 1 < 3:
            __all__ += ['c', 'd']
        N(   R*   R+   t   UndefinedExport(   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_augmentedAssignment  s    c         C   s*   |  j  d t j  |  j  d t j  d S(   so   
        If C{__all__} is defined in a way that can't be recognized statically,
        it is ignored.
        s;   
        import foo
        __all__ = ["f" + "oo"]
        s;   
        import foo
        __all__ = [] + ["foo"]
        N(   R*   R+   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_unrecognizable&  s    c         C   sA   |  j  d t j  x' d d g D] } |  j  d d | q  Wd S(   sY   
        If C{__all__} includes a name which is not bound, a warning is emitted.
        s#   
        __all__ = ["foo"]
        s   foo/__init__.pys   __init__.pys+   
            __all__ = ["foo"]
            t   filenameN(   R*   R+   R   (   R   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_unboundExported4  s
    c         C   s   |  j  d t j  d S(   s=   
        Do not report undefined if import * is used
        s@   
        from foolib import *
        __all__ = ["foo"]
        N(   R*   R+   R   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importStarExportedC  s    c         C   s   |  j  d t j t j  d S(   s8   Report unused import when not needed to satisfy __all__.sL   
        from foolib import *
        a = 1
        __all__ = ['a']
        N(   R*   R+   R   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_importStarNotExportedL  s    c         C   s   |  j  d  |  j  d  d S(   sR   
        Using a global in a generator expression results in no warnings.
        s!   import fu; (fu for _ in range(1))s&   import fu; (1 for _ in range(1) if fu)N(   R*   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedInGenExpT  s    c         C   s   |  j  d t j t j  d S(   s   
        Re-using a global name as the loop variable for a generator
        expression results in a redefinition warning.
        s!   import fu; (1 for fu in range(1))N(   R*   R+   R3   R,   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_redefinedByGenExp[  s    	c         C   s1   |  j  d  |  j  d  |  j  d t j  d S(   s   
        Using a global name in a decorator statement results in no warnings,
        but using an undefined name in a decorator statement results in an
        undefined name warning.
        sm   
        from interior import decorate
        @decorate
        def f():
            return "hello"
        sv   
        from interior import decorate
        @decorate('value')
        def f():
            return "hello"
        sG   
        @decorate
        def f():
            return "hello"
        N(   R*   R+   RJ   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedAsDecoratorc  s    (   R'   R(   t   __doc__R   R   R   R   R   R   R   R   R   R   R   (    (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyR     s   		
									t   Python26Testsc           B   s,   e  Z d  Z e e d k  d  d    Z RS(   sN   
    Tests for checking of syntax which is valid in Python 2.6 and newer.
    i   i   s   Python >= 2.6 onlyc         C   s1   |  j  d  |  j  d  |  j  d t j  d S(   s   
        Using an imported name as a class decorator results in no warnings,
        but using an undefined name as a class decorator results in an
        undefined name warning.
        se   
        from interior import decorate
        @decorate
        class foo:
            pass
        sl   
        from interior import decorate
        @decorate("foo")
        class bar:
            pass
        s?   
        @decorate
        class foo:
            pass
        N(   R*   R+   RJ   (   R   (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   test_usedAsClassDecorator  s    (   i   i   (   R'   R(   R   R	   R    R   (    (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyR   ~  s   N(   t   sysR    t   pyflakesR   R+   t   pyflakes.checkerR   R   R   R   R   t   pyflakes.test.harnessR   R   R	   R
   R)   R   R   (    (    (    s<   /tmp/pip-build-EndXZ2/pyflakes/pyflakes/test/test_imports.pyt   <module>   s   (T   