a
    åzeà ã                   @   sº  d Z ddlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
 G dd„ de
jƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd „ d eƒZG d!d"„ d"eƒZG d#d$„ d$eƒZG d%d&„ d&eƒZG d'd(„ d(eƒZG d)d*„ d*eƒZG d+d,„ d,eƒZG d-d.„ d.eƒZG d/d0„ d0eƒZ G d1d2„ d2eƒZ!G d3d4„ d4ƒZ"G d5d6„ d6ee"ƒZ#G d7d8„ d8ee"ƒZ$G d9d:„ d:ee"ƒZ%G d;d<„ d<eƒZ&G d=d>„ d>eƒZ'G d?d@„ d@eƒZ(G dAdB„ dBeƒZ)G dCdD„ dDeƒZ*G dEdF„ dFeƒZ+G dGdH„ dHeƒZ,G dIdJ„ dJeƒZ-G dKdL„ dLeƒZ.G dMdN„ dNeƒZ/G dOdP„ dPeƒZ0G dQdR„ dReƒZ1G dSdT„ dTeƒZ2G dUdV„ dVeƒZ3G dWdX„ dXeƒZ4G dYdZ„ dZeƒZ5G d[d\„ d\eƒZ6G d]d^„ d^eƒZ7G d_d`„ d`eƒZ8G dadb„ dbeƒZ9G dcdd„ ddeƒZ:G dedf„ dfeƒZ;G dgdh„ dheƒZ<G didj„ djeƒZ=G dkdl„ dleƒZ>G dmdn„ dneƒZ?G dodp„ dpeƒZ@G dqdr„ dreƒZAG dsdt„ dteƒZBdS )uz" Test suite for the fixer modules é    N)Úchain)Ú
itemgetter)ÚpygramÚ
fixer_util)Úsupportc                   @   sL   e Zd Zddd„Zdd„ Zddd	„Zdd
d„Zdd„ Zddd„Zdd„ Z	dS )ÚFixerTestCaseNÚlib2to3c                 C   sP   |d u r| j g}t |||¡| _g | _d| _t| jj| jjƒD ]}| j|_	q>d S )Nz<string>)
Úfixerr   Úget_refactorerÚrefactorÚ	fixer_logÚfilenamer   Z	pre_orderZ
post_orderÚlog)ÚselfZfix_listZ	fixer_pkgÚoptionsr	   © r   ú//usr/lib/python3.9/lib2to3/tests/test_fixers.pyÚsetUp   s    ÿzFixerTestCase.setUpc                 C   s8   t  |¡}t  |¡}| j || j¡}|  |t|ƒ¡ |S ©N)r   Zreformatr   Zrefactor_stringr   ÚassertEqualÚstr)r   ÚbeforeÚafterÚtreer   r   r   Ú_check   s
    

zFixerTestCase._checkFc                 C   s.   |   ||¡}|  |j¡ |s*|  | jg ¡ d S r   )r   Ú
assertTrueÚwas_changedr   r   )r   r   r   Úignore_warningsr   r   r   r   Úcheck#   s    zFixerTestCase.checkc                 C   s4   |   ||¡}|  |d | j¡¡ |s0|  |j¡ d S )NÚ )r   ZassertInÚjoinr   r   r   )r   r   r   ÚmessageÚ	unchangedr   r   r   r   Úwarns)   s    zFixerTestCase.warnsc                 C   s   | j |||dd d S )NT©r"   ©r#   )r   r   r!   r   r   r   Úwarns_unchanged/   s    zFixerTestCase.warns_unchangedc                 C   s"   |   ||¡ |s|  | jg ¡ d S r   )r   r   r   )r   r   r   r   r   r   r"   2   s    zFixerTestCase.unchangedc                 G   s–   | j g}| |¡ t d|¡}| ¡ \}}d| j  }|rN|d jj |¡rNd S |rl|d jj |¡rl|sld S |  dd 	dd„ || D ƒ¡|f ¡ d S )Nr   Zfix_éÿÿÿÿz5Fixer run order (%s) is incorrect; %s should be last.ú, c                 S   s   g | ]}|j j‘qS r   )Ú	__class__Ú
__module__)Ú.0Úxr   r   r   Ú
<listcomp>D   ó    z3FixerTestCase.assert_runs_after.<locals>.<listcomp>)
r	   Úextendr   r
   Z
get_fixersr)   r*   ÚendswithZfailr    )r   ÚnamesÚfixesÚrÚpreZpostÚnr   r   r   Úassert_runs_after7   s    

ÿzFixerTestCase.assert_runs_after)Nr   N)F)F)F)
Ú__name__r*   Ú__qualname__r   r   r   r#   r&   r"   r6   r   r   r   r   r      s   



r   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTest_neÚnec                 C   s   d}d}|   ||¡ d S )Nzif x <> y:
            passzif x != y:
            pass©r   ©r   ÚbÚar   r   r   Ú
test_basicI   s    zTest_ne.test_basicc                 C   s   d}d}|   ||¡ d S )Nzif x<>y:
            passzif x!=y:
            passr;   r<   r   r   r   Útest_no_spacesQ   s    zTest_ne.test_no_spacesc                 C   s   d}d}|   ||¡ d S )Nzif x<>y<>z:
            passzif x!=y!=z:
            passr;   r<   r   r   r   Útest_chainedY   s    zTest_ne.test_chainedN)r7   r*   r8   r	   r?   r@   rA   r   r   r   r   r9   F   s   r9   c                   @   sh   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_has_keyZhas_keyc                 C   s   d}d}|   ||¡ d S )Nz$x = d.has_key("x") or d.has_key("y")zx = "x" in d or "y" in dr;   r<   r   r   r   Útest_1d   s    zTest_has_key.test_1c                 C   s   d}d}|   ||¡ d S )Nzx = a.b.c.d.has_key("x") ** 3zx = ("x" in a.b.c.d) ** 3r;   r<   r   r   r   Útest_2i   s    zTest_has_key.test_2c                 C   s   d}d}|   ||¡ d S )Nz!x = a.b.has_key(1 + 2).__repr__()zx = (1 + 2 in a.b).__repr__()r;   r<   r   r   r   Útest_3n   s    zTest_has_key.test_3c                 C   s   d}d}|   ||¡ d S )Nz,x = a.b.has_key(1 + 2).__repr__() ** -3 ** 4z(x = (1 + 2 in a.b).__repr__() ** -3 ** 4r;   r<   r   r   r   Útest_4s   s    zTest_has_key.test_4c                 C   s   d}d}|   ||¡ d S )Nzx = a.has_key(f or g)zx = (f or g) in ar;   r<   r   r   r   Útest_5x   s    zTest_has_key.test_5c                 C   s   d}d}|   ||¡ d S )Nzx = a + b.has_key(c)zx = a + (c in b)r;   r<   r   r   r   Útest_6}   s    zTest_has_key.test_6c                 C   s   d}d}|   ||¡ d S )Nzx = a.has_key(lambda: 12)zx = (lambda: 12) in ar;   r<   r   r   r   Útest_7‚   s    zTest_has_key.test_7c                 C   s   d}d}|   ||¡ d S )Nzx = a.has_key(a for a in b)zx = (a for a in b) in ar;   r<   r   r   r   Útest_8‡   s    zTest_has_key.test_8c                 C   s   d}d}|   ||¡ d S )Nzif not a.has_key(b): passzif b not in a: passr;   r<   r   r   r   Útest_9Œ   s    zTest_has_key.test_9c                 C   s   d}d}|   ||¡ d S )Nz$if not a.has_key(b).__repr__(): passz if not (b in a).__repr__(): passr;   r<   r   r   r   Útest_10‘   s    zTest_has_key.test_10c                 C   s   d}d}|   ||¡ d S )Nzif not a.has_key(b) ** 2: passzif not (b in a) ** 2: passr;   r<   r   r   r   Útest_11–   s    zTest_has_key.test_11N)r7   r*   r8   r	   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   r   r   r   r   rB   a   s   rB   c                   @   sà   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6S )7Ú
Test_applyZapplyc                 C   s   d}d}|   ||¡ d S )Nzx = apply(f, g + h)zx = f(*g + h)r;   r<   r   r   r   rC   ž   s    zTest_apply.test_1c                 C   s   d}d}|   ||¡ d S )Nzy = apply(f, g, h)zy = f(*g, **h)r;   r<   r   r   r   rD   £   s    zTest_apply.test_2c                 C   s   d}d}|   ||¡ d S )Nz z = apply(fs[0], g or h, h or g)zz = fs[0](*g or h, **h or g)r;   r<   r   r   r   rE   ¨   s    zTest_apply.test_3c                 C   s   d}d}|   ||¡ d S )Nzapply(f, (x, y) + t)zf(*(x, y) + t)r;   r<   r   r   r   rF   ­   s    zTest_apply.test_4c                 C   s   d}d}|   ||¡ d S )Nzapply(f, args,)úf(*args)r;   r<   r   r   r   rG   ²   s    zTest_apply.test_5c                 C   s   d}d}|   ||¡ d S )Nzapply(f, args, kwds,)úf(*args, **kwds)r;   r<   r   r   r   rH   ·   s    zTest_apply.test_6c                 C   s   d}d}|   ||¡ d S )Nzx = apply(f+g, args)zx = (f+g)(*args)r;   r<   r   r   r   Útest_complex_1¾   s    zTest_apply.test_complex_1c                 C   s   d}d}|   ||¡ d S )Nzx = apply(f*g, args)zx = (f*g)(*args)r;   r<   r   r   r   Útest_complex_2Ã   s    zTest_apply.test_complex_2c                 C   s   d}d}|   ||¡ d S )Nzx = apply(f**g, args)zx = (f**g)(*args)r;   r<   r   r   r   Útest_complex_3È   s    zTest_apply.test_complex_3c                 C   s   d}d}|   ||¡ d S )Nzx = apply(f.g, args)zx = f.g(*args)r;   r<   r   r   r   Útest_dotted_nameÏ   s    zTest_apply.test_dotted_namec                 C   s   d}d}|   ||¡ d S )Nzx = apply(f[x], args)zx = f[x](*args)r;   r<   r   r   r   Útest_subscriptÔ   s    zTest_apply.test_subscriptc                 C   s   d}d}|   ||¡ d S )Nzx = apply(f(), args)zx = f()(*args)r;   r<   r   r   r   Ú	test_callÙ   s    zTest_apply.test_callc                 C   s   d}d}|   ||¡ d S )Nz"x = apply(a.b.c.d.e.f, args, kwds)zx = a.b.c.d.e.f(*args, **kwds)r;   r<   r   r   r   Útest_extremeß   s    zTest_apply.test_extremec                 C   s   d}d}|   ||¡ d S )Nz1apply(   # foo
          f, # bar
          args)rO   r;   r<   r   r   r   Útest_weird_commentså   s    zTest_apply.test_weird_commentsc                 C   s   d}|   |¡ d S )Nzapply()r$   ©r   Úsr   r   r   Útest_unchanged_1î   s    zTest_apply.test_unchanged_1c                 C   s   d}|   |¡ d S )Nzapply(f)r$   rY   r   r   r   Útest_unchanged_2ò   s    zTest_apply.test_unchanged_2c                 C   s   d}|   |¡ d S )Nz	apply(f,)r$   rY   r   r   r   Útest_unchanged_3ö   s    zTest_apply.test_unchanged_3c                 C   s   d}|   |¡ d S )Nzapply(f, args, kwds, extras)r$   rY   r   r   r   Útest_unchanged_4ú   s    zTest_apply.test_unchanged_4c                 C   s   d}|   |¡ d S )Nzapply(f, *args, **kwds)r$   rY   r   r   r   Útest_unchanged_5þ   s    zTest_apply.test_unchanged_5c                 C   s   d}|   |¡ d S )Nzapply(f, *args)r$   rY   r   r   r   Útest_unchanged_6  s    zTest_apply.test_unchanged_6c                 C   s   d}|   |¡ d S )Nzapply(f, **kwds)r$   rY   r   r   r   Útest_unchanged_6b  s    zTest_apply.test_unchanged_6bc                 C   s   d}|   |¡ d S )Nz#apply(func=f, args=args, kwds=kwds)r$   rY   r   r   r   Útest_unchanged_7
  s    zTest_apply.test_unchanged_7c                 C   s   d}|   |¡ d S )Nzapply(f, args=args, kwds=kwds)r$   rY   r   r   r   Útest_unchanged_8  s    zTest_apply.test_unchanged_8c                 C   s   d}|   |¡ d S )Nzapply(f, args, kwds=kwds)r$   rY   r   r   r   Útest_unchanged_9  s    zTest_apply.test_unchanged_9c                 C   s   d}d}|   ||¡ d S )Nzapply(  f,  args,   kwds)rP   r;   ©r   r>   r=   r   r   r   Útest_space_1  s    zTest_apply.test_space_1c                 C   s   d}d}|   ||¡ d S )Nzapply(  f  ,args,kwds   )rP   r;   re   r   r   r   Útest_space_2  s    zTest_apply.test_space_2N)r7   r*   r8   r	   rC   rD   rE   rF   rG   rH   rQ   rR   rS   rT   rU   rV   rW   rX   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   rf   rg   r   r   r   r   rN   ›   s6   	rN   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚTest_reloadÚreloadc                 C   s   d}d}|   ||¡ d S )Nz	reload(a)z$import importlib
importlib.reload(a)r;   r<   r   r   r   Útest#  s    zTest_reload.testc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzreload( a ) # commentz0import importlib
importlib.reload( a ) # commentzreload( a )  # commentz1import importlib
importlib.reload( a )  # commentr;   r<   r   r   r   Útest_comment(  s    zTest_reload.test_commentc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzreload( a )z&import importlib
importlib.reload( a )z
reload( a)z%import importlib
importlib.reload( a)z
reload(a )z%import importlib
importlib.reload(a )r;   r<   r   r   r   Ú
test_space2  s    zTest_reload.test_spacec                 C   s‚   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d	}|   |¡ d S )
Nzreload(a=1)zreload(f, g)zreload(f, *h)zreload(f, *h, **i)zreload(f, **i)zreload(*h, **i)z
reload(*h)zreload(**i)zreload()r$   rY   r   r   r   Útest_unchanged?  s$    







zTest_reload.test_unchangedN)r7   r*   r8   r	   rj   rk   rl   rm   r   r   r   r   rh      s
   
rh   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTest_internÚinternc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzx =   intern(  a  )z"import sys
x =   sys.intern(  a  )z%y = intern("b" # test
              )z4import sys
y = sys.intern("b" # test
              )zz = intern(a+b+c.d,   )z&import sys
z = sys.intern(a+b+c.d,   )r;   r<   r   r   r   Útest_prefix_preservation^  s    z$Test_intern.test_prefix_preservationc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzx = intern(a)zimport sys
x = sys.intern(a)zz = intern(a+b+c.d,)z#import sys
z = sys.intern(a+b+c.d,)z"intern("y%s" % 5).replace("y", "")z1import sys
sys.intern("y%s" % 5).replace("y", "")r;   r<   r   r   r   rj   m  s    zTest_intern.testc                 C   sJ   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzintern(a=1)zintern(f, g)z
intern(*h)zintern(**i)zintern()r$   rY   r   r   r   rm   |  s    



zTest_intern.test_unchangedN)r7   r*   r8   r	   rp   rj   rm   r   r   r   r   rn   [  s   rn   c                   @   s0   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
S )ÚTest_reduceÚreducec                 C   s   d}d}|   ||¡ d S )Nzreduce(a, b, c)z,from functools import reduce
reduce(a, b, c)r;   r<   r   r   r   Útest_simple_call  s    zTest_reduce.test_simple_callc                 C   s   d}d}|   ||¡ d S )Nzdef x(arg): reduce(sum, [])z8from functools import reduce
def x(arg): reduce(sum, [])r;   r<   r   r   r   Útest_bug_7253”  s    zTest_reduce.test_bug_7253c                 C   s   d}d}|   ||¡ d S )Nzreduce(lambda x, y: x + y, seq)z<from functools import reduce
reduce(lambda x, y: x + y, seq)r;   r<   r   r   r   Útest_call_with_lambdaš  s    z!Test_reduce.test_call_with_lambdac                 C   sJ   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nz	reduce(a)zreduce(a, b=42)zreduce(a, b, c, d)zreduce(**c)zreduce()r$   rY   r   r   r   rm   Ÿ  s    



zTest_reduce.test_unchangedN)r7   r*   r8   r	   rs   rt   ru   rm   r   r   r   r   rq   Œ  s
   rq   c                   @   s˜   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$S )%Ú
Test_printÚprintc                 C   s   d}d}|   ||¡ d S )Nzprint 1,   1+1,   1+1+1zprint(1,   1+1,   1+1+1)r;   r<   r   r   r   rp   ²  s    z#Test_print.test_prefix_preservationc                 C   s    d}|   |¡ d}|   |¡ d S )Núprint()ú	print('')r$   rY   r   r   r   Útest_idempotency·  s    
zTest_print.test_idempotencyc                 C   s:   t j| jj_d}|  |¡ d}|  |¡ d}|  |¡ d S )Núprint(1, 1+1, 1+1+1)rx   ry   )r   Z!python_grammar_no_print_statementr   ZdriverZgrammarr"   rY   r   r   r   Ú"test_idempotency_print_as_function¾  s    

z-Test_print.test_idempotency_print_as_functionc                 C   s   d}d}|   ||¡ d S )Nzprint 1, 1+1, 1+1+1r{   r;   r<   r   r   r   rC   É  s    zTest_print.test_1c                 C   s   d}d}|   ||¡ d S )Nz
print 1, 2zprint(1, 2)r;   r<   r   r   r   rD   Î  s    zTest_print.test_2c                 C   s   d}d}|   ||¡ d S )Nrw   rx   r;   r<   r   r   r   rE   Ó  s    zTest_print.test_3c                 C   s   d}d}|   ||¡ d S )Nzprint whatever; printzprint(whatever); print()r;   r<   r   r   r   rF   Ø  s    zTest_print.test_4c                 C   s   d}d}|   ||¡ d S )Nzprint; print whatever;zprint(); print(whatever);r;   r<   r   r   r   rG   Þ  s    zTest_print.test_5c                 C   s   d}d}|   ||¡ d S )Nzprint (a, b, c)zprint((a, b, c))r;   r<   r   r   r   Ú
test_tupleã  s    zTest_print.test_tuplec                 C   s   d}d}|   ||¡ d S )Nzprint 1, 2, 3,zprint(1, 2, 3, end=' ')r;   r<   r   r   r   Útest_trailing_comma_1ê  s    z Test_print.test_trailing_comma_1c                 C   s   d}d}|   ||¡ d S )Nzprint 1, 2,zprint(1, 2, end=' ')r;   r<   r   r   r   Útest_trailing_comma_2ï  s    z Test_print.test_trailing_comma_2c                 C   s   d}d}|   ||¡ d S )Nzprint 1,zprint(1, end=' ')r;   r<   r   r   r   Útest_trailing_comma_3ô  s    z Test_print.test_trailing_comma_3c                 C   s   d}d}|   ||¡ d S )Nzprint >>sys.stderr, 1, 2, 3zprint(1, 2, 3, file=sys.stderr)r;   r<   r   r   r   Ú!test_vargs_without_trailing_commaû  s    z,Test_print.test_vargs_without_trailing_commac                 C   s   d}d}|   ||¡ d S )Nzprint >>sys.stderr, 1, 2,z%print(1, 2, end=' ', file=sys.stderr)r;   r<   r   r   r   Útest_with_trailing_comma   s    z#Test_print.test_with_trailing_commac                 C   s   d}d}|   ||¡ d S )Nzprint >>sys.stderr, 1+1zprint(1+1, file=sys.stderr)r;   r<   r   r   r   Útest_no_trailing_comma  s    z!Test_print.test_no_trailing_commac                 C   s   d}d}|   ||¡ d S )Nzprint >>  sys.stderrzprint(file=sys.stderr)r;   r<   r   r   r   Útest_spaces_before_file
  s    z"Test_print.test_spaces_before_filec                 C   s&   d}|   |¡ d}d}|  ||¡ d S )Nz<from __future__ import print_function
print('Hai!', end=' ')zprint 'Hello, world!'zprint('Hello, world!')©r"   r   )r   rZ   r=   r>   r   r   r   Útest_with_future_print_function  s
    
z*Test_print.test_with_future_print_functionN)r7   r*   r8   r	   rp   rz   r|   rC   rD   rE   rF   rG   r}   r~   r   r€   r   r‚   rƒ   r„   r†   r   r   r   r   rv   ¯  s$   rv   c                   @   s`   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )Ú	Test_execÚexecc                 C   s   d}d}|   ||¡ d S )Nz  exec code in ns1,   ns2z  exec(code, ns1,   ns2)r;   r<   r   r   r   rp     s    z"Test_exec.test_prefix_preservationc                 C   s   d}d}|   ||¡ d S )Nz	exec codeú
exec(code)r;   r<   r   r   r   r?   !  s    zTest_exec.test_basicc                 C   s   d}d}|   ||¡ d S )Nzexec code in nsúexec(code, ns)r;   r<   r   r   r   Útest_with_globals&  s    zTest_exec.test_with_globalsc                 C   s   d}d}|   ||¡ d S )Nzexec code in ns1, ns2úexec(code, ns1, ns2)r;   r<   r   r   r   Útest_with_globals_locals+  s    z"Test_exec.test_with_globals_localsc                 C   s   d}d}|   ||¡ d S )Nzexec (a.b()) in nszexec((a.b()), ns)r;   r<   r   r   r   rQ   0  s    zTest_exec.test_complex_1c                 C   s   d}d}|   ||¡ d S )Nzexec a.b() + c in nszexec(a.b() + c, ns)r;   r<   r   r   r   rR   5  s    zTest_exec.test_complex_2c                 C   s   d}|   |¡ d S )Nr‰   r$   rY   r   r   r   r[   <  s    zTest_exec.test_unchanged_1c                 C   s   d}|   |¡ d S )Nzexec (code)r$   rY   r   r   r   r\   @  s    zTest_exec.test_unchanged_2c                 C   s   d}|   |¡ d S )NrŠ   r$   rY   r   r   r   r]   D  s    zTest_exec.test_unchanged_3c                 C   s   d}|   |¡ d S )NrŒ   r$   rY   r   r   r   r^   H  s    zTest_exec.test_unchanged_4N)r7   r*   r8   r	   rp   r?   r‹   r   rQ   rR   r[   r\   r]   r^   r   r   r   r   r‡     s   r‡   c                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )Ú	Test_reprÚreprc                 C   s   d}d}|   ||¡ d S )Nzx =   `1 + 2`zx =   repr(1 + 2)r;   r<   r   r   r   rp   O  s    z"Test_repr.test_prefix_preservationc                 C   s   d}d}|   ||¡ d S )Nzx = `1 + 2`zx = repr(1 + 2)r;   r<   r   r   r   Útest_simple_1T  s    zTest_repr.test_simple_1c                 C   s   d}d}|   ||¡ d S )Nzy = `x`zy = repr(x)r;   r<   r   r   r   Útest_simple_2Y  s    zTest_repr.test_simple_2c                 C   s   d}d}|   ||¡ d S )Nzz = `y`.__repr__()zz = repr(y).__repr__()r;   r<   r   r   r   Útest_complex^  s    zTest_repr.test_complexc                 C   s   d}d}|   ||¡ d S )Nzx = `1, 2, 3`zx = repr((1, 2, 3))r;   r<   r   r   r   r}   c  s    zTest_repr.test_tuplec                 C   s   d}d}|   ||¡ d S )Nzx = `1 + `2``zx = repr(1 + repr(2))r;   r<   r   r   r   Útest_nestedh  s    zTest_repr.test_nestedc                 C   s   d}d}|   ||¡ d S )Nzx = `1, 2 + `3, 4``zx = repr((1, 2 + repr((3, 4))))r;   r<   r   r   r   Útest_nested_tuplesm  s    zTest_repr.test_nested_tuplesN)r7   r*   r8   r	   rp   r   r‘   r’   r}   r“   r”   r   r   r   r   rŽ   L  s   rŽ   c                   @   s   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"S )#ÚTest_exceptÚexceptc                 C   s   d}d}|   ||¡ d S )Nzq
            try:
                pass
            except (RuntimeError, ImportError),    e:
                passzs
            try:
                pass
            except (RuntimeError, ImportError) as    e:
                passr;   r<   r   r   r   rp   u  s    z$Test_except.test_prefix_preservationc                 C   s   d}d}|   ||¡ d S )NzV
            try:
                pass
            except Foo, e:
                passúX
            try:
                pass
            except Foo as e:
                passr;   r<   r   r   r   Útest_simple‚  s    zTest_except.test_simplec                 C   s   d}d}|   ||¡ d S )NzU
            try:
                pass
            except Foo,e:
                passr—   r;   r<   r   r   r   Ú"test_simple_no_space_before_target  s    z.Test_except.test_simple_no_space_before_targetc                 C   s   d}d}|   ||¡ d S )NzÈ
            def foo():
                try:
                    pass
                except Exception, (f, e):
                    pass
                except ImportError, e:
                    passa  
            def foo():
                try:
                    pass
                except Exception as xxx_todo_changeme:
                    (f, e) = xxx_todo_changeme.args
                    pass
                except ImportError as e:
                    passr;   r<   r   r   r   Útest_tuple_unpackœ  s    		zTest_except.test_tuple_unpackc                 C   s   d}d}|   ||¡ d S )Nzn
            try:
                pass
            except (RuntimeError, ImportError), e:
                passzp
            try:
                pass
            except (RuntimeError, ImportError) as e:
                passr;   r<   r   r   r   Útest_multi_class±  s    zTest_except.test_multi_classc                 C   s   d}d}|   ||¡ d S )Nza
            try:
                pass
            except Exception, [a, b]:
                passzž
            try:
                pass
            except Exception as xxx_todo_changeme:
                [a, b] = xxx_todo_changeme.args
                passr;   r<   r   r   r   Útest_list_unpack¿  s    zTest_except.test_list_unpackc                 C   s   d}d}|   ||¡ d S )Nz_
            try:
                pass
            except Exception, d[5]:
                passz—
            try:
                pass
            except Exception as xxx_todo_changeme:
                d[5] = xxx_todo_changeme
                passr;   r<   r   r   r   Útest_weird_target_1Î  s    zTest_except.test_weird_target_1c                 C   s   d}d}|   ||¡ d S )Nz`
            try:
                pass
            except Exception, a.foo:
                passz˜
            try:
                pass
            except Exception as xxx_todo_changeme:
                a.foo = xxx_todo_changeme
                passr;   r<   r   r   r   Útest_weird_target_2Ý  s    zTest_except.test_weird_target_2c                 C   s   d}d}|   ||¡ d S )Nzb
            try:
                pass
            except Exception, a().foo:
                passzš
            try:
                pass
            except Exception as xxx_todo_changeme:
                a().foo = xxx_todo_changeme
                passr;   r<   r   r   r   Útest_weird_target_3ì  s    zTest_except.test_weird_target_3c                 C   s   d}d}|   ||¡ d S )Nz…
            try:
                pass
            except Exception, a:
                pass
            except:
                passz‡
            try:
                pass
            except Exception as a:
                pass
            except:
                passr;   r<   r   r   r   Útest_bare_exceptû  s    zTest_except.test_bare_exceptc                 C   s   d}d}|   ||¡ d S )NzÖ
            try:
                pass
            except Exception, a:
                pass
            except:
                pass
            else:
                pass
            finally:
                passzØ
            try:
                pass
            except Exception as a:
                pass
            except:
                pass
            else:
                pass
            finally:
                passr;   r<   r   r   r   Ú!test_bare_except_and_else_finally  s    z-Test_except.test_bare_except_and_else_finallyc                 C   s   d}d}|   ||¡ d S )Nz»
            try:
                pass
            except TypeError, b:
                pass
            except Exception, a:
                pass
            except:
                passz¿
            try:
                pass
            except TypeError as b:
                pass
            except Exception as a:
                pass
            except:
                passr;   r<   r   r   r   Ú+test_multi_fixed_excepts_before_bare_except'  s    
	z7Test_except.test_multi_fixed_excepts_before_bare_exceptc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )	Nzd
            try: raise TypeError
            except TypeError, e:
                pass
            zf
            try: raise TypeError
            except TypeError as e:
                pass
            zd
            try:
                raise TypeError
            except TypeError, e: pass
            zf
            try:
                raise TypeError
            except TypeError as e: pass
            zT
            try: raise TypeError
            except TypeError, e: pass
            zV
            try: raise TypeError
            except TypeError as e: pass
            z
            try: raise TypeError
            except TypeError, e: pass
            else: function()
            finally: done()
            z
            try: raise TypeError
            except TypeError as e: pass
            else: function()
            finally: done()
            r;   r<   r   r   r   Útest_one_line_suites=  s    z Test_except.test_one_line_suitesc                 C   s   d}|   |¡ d S )NzO
            try:
                pass
            except:
                passr$   rY   r   r   r   r[   m  s    zTest_except.test_unchanged_1c                 C   s   d}|   |¡ d S )NzY
            try:
                pass
            except Exception:
                passr$   rY   r   r   r   r\   u  s    zTest_except.test_unchanged_2c                 C   s   d}|   |¡ d S )Nzg
            try:
                pass
            except (Exception, SystemExit):
                passr$   rY   r   r   r   r]   }  s    zTest_except.test_unchanged_3N)r7   r*   r8   r	   rp   r˜   r™   rš   r›   rœ   r   rž   rŸ   r    r¡   r¢   r£   r[   r\   r]   r   r   r   r   r•   r  s"   0r•   c                   @   s˜   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$S )%Ú
Test_raiseÚraisec                 C   s   d}d}|   ||¡ d S )Nzraise Exception, 5úraise Exception(5)r;   r<   r   r   r   r?   ˆ  s    zTest_raise.test_basicc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzraise Exception,5r¦   zraise   Exception,    5zraise   Exception(5)r;   r<   r   r   r   rp     s    z#Test_raise.test_prefix_preservationc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzraise Exception, 5 # foozraise Exception(5) # foozraise E, (5, 6) % (a, b) # foozraise E((5, 6) % (a, b)) # fooz:def foo():
                    raise Exception, 5, 6 # foozIdef foo():
                    raise Exception(5).with_traceback(6) # foor;   r<   r   r   r   Útest_with_comments–  s    zTest_raise.test_with_commentsc                 C   s   d}d}|   ||¡ d S )Nzraise Exception(5), None, tbz%raise Exception(5).with_traceback(tb)r;   r<   r   r   r   Útest_None_value¥  s    zTest_raise.test_None_valuec                 C   s   d}d}|   ||¡ d S )Nzraise Exception, (5, 6, 7)zraise Exception(5, 6, 7)r;   r<   r   r   r   Útest_tuple_valueª  s    zTest_raise.test_tuple_valuec                 C   s   d}d}|   ||¡ d S )Nzraise E, (5, 6) % (a, b)zraise E((5, 6) % (a, b))r;   r<   r   r   r   Útest_tuple_detection¯  s    zTest_raise.test_tuple_detectionc                 C   s   d}d}|   ||¡ d S )Nzraise (((E1, E2), E3), E4), Vúraise E1(V)r;   r<   r   r   r   Útest_tuple_exc_1´  s    zTest_raise.test_tuple_exc_1c                 C   s   d}d}|   ||¡ d S )Nzraise (E1, (E2, E3), E4), Vr«   r;   r<   r   r   r   Útest_tuple_exc_2¹  s    zTest_raise.test_tuple_exc_2c                 C   s   d}|   |d¡ d S )Nzraise 'foo'ú+Python 3 does not support string exceptions©r&   rY   r   r   r   Útest_string_excÀ  s    zTest_raise.test_string_excc                 C   s   d}|   |d¡ d S )Nzraise "foo", 5r®   r¯   rY   r   r   r   Útest_string_exc_valÄ  s    zTest_raise.test_string_exc_valc                 C   s   d}|   |d¡ d S )Nzraise "foo", 5, 6r®   r¯   rY   r   r   r   Útest_string_exc_val_tbÈ  s    z!Test_raise.test_string_exc_val_tbc                 C   s   d}d}|   ||¡ d S )Nz4def foo():
                    raise Exception, 5, 6úCdef foo():
                    raise Exception(5).with_traceback(6)r;   r<   r   r   r   Ú	test_tb_1Î  s    zTest_raise.test_tb_1c                 C   s   d}d}|   ||¡ d S )Nzhdef foo():
                    a = 5
                    raise Exception, 5, 6
                    b = 6úwdef foo():
                    a = 5
                    raise Exception(5).with_traceback(6)
                    b = 6r;   r<   r   r   r   Ú	test_tb_2Õ  s    zTest_raise.test_tb_2c                 C   s   d}d}|   ||¡ d S )Nz2def foo():
                    raise Exception,5,6r³   r;   r<   r   r   r   Ú	test_tb_3à  s    zTest_raise.test_tb_3c                 C   s   d}d}|   ||¡ d S )Nzfdef foo():
                    a = 5
                    raise Exception,5,6
                    b = 6rµ   r;   r<   r   r   r   Ú	test_tb_4ç  s    zTest_raise.test_tb_4c                 C   s   d}d}|   ||¡ d S )Nz<def foo():
                    raise Exception, (5, 6, 7), 6zIdef foo():
                    raise Exception(5, 6, 7).with_traceback(6)r;   r<   r   r   r   Ú	test_tb_5ò  s    zTest_raise.test_tb_5c                 C   s   d}d}|   ||¡ d S )Nzpdef foo():
                    a = 5
                    raise Exception, (5, 6, 7), 6
                    b = 6z}def foo():
                    a = 5
                    raise Exception(5, 6, 7).with_traceback(6)
                    b = 6r;   r<   r   r   r   Ú	test_tb_6ù  s    zTest_raise.test_tb_6N)r7   r*   r8   r	   r?   rp   r§   r¨   r©   rª   r¬   r­   r°   r±   r²   r´   r¶   r·   r¸   r¹   rº   r   r   r   r   r¤   …  s$   	r¤   c                   @   s    e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'Ú
Test_throwÚthrowc                 C   s   d}d}|   ||¡ d S )Nzg.throw(Exception, 5)úg.throw(Exception(5))r;   r<   r   r   r   rC     s    zTest_throw.test_1c                 C   s   d}d}|   ||¡ d S )Nzg.throw(Exception,5)r½   r;   r<   r   r   r   rD     s    zTest_throw.test_2c                 C   s   d}d}|   ||¡ d S )Nzg.throw(Exception, (5, 6, 7))zg.throw(Exception(5, 6, 7))r;   r<   r   r   r   rE     s    zTest_throw.test_3c                 C   s   d}d}|   ||¡ d S )Nz5 + g.throw(Exception, 5)z5 + g.throw(Exception(5))r;   r<   r   r   r   rF     s    zTest_throw.test_4c                 C   s   d}|   |d¡ d S )Nzg.throw("foo")r®   r¯   rY   r   r   r   Útest_warn_1  s    zTest_throw.test_warn_1c                 C   s   d}|   |d¡ d S )Nzg.throw("foo", 5)r®   r¯   rY   r   r   r   Útest_warn_2!  s    zTest_throw.test_warn_2c                 C   s   d}|   |d¡ d S )Nzg.throw("foo", 5, 6)r®   r¯   rY   r   r   r   Útest_warn_3%  s    zTest_throw.test_warn_3c                 C   s   d}|   |¡ d S )Nzg.throw(Exception)r$   rY   r   r   r   Útest_untouched_1+  s    zTest_throw.test_untouched_1c                 C   s   d}|   |¡ d S )Nzg.throw(Exception(5, 6))r$   rY   r   r   r   Útest_untouched_2/  s    zTest_throw.test_untouched_2c                 C   s   d}|   |¡ d S )Nz5 + g.throw(Exception(5, 6))r$   rY   r   r   r   Útest_untouched_33  s    zTest_throw.test_untouched_3c                 C   s   d}d}|   ||¡ d S )Nz7def foo():
                    g.throw(Exception, 5, 6)úFdef foo():
                    g.throw(Exception(5).with_traceback(6))r;   r<   r   r   r   r´   9  s    zTest_throw.test_tb_1c                 C   s   d}d}|   ||¡ d S )Nzkdef foo():
                    a = 5
                    g.throw(Exception, 5, 6)
                    b = 6úzdef foo():
                    a = 5
                    g.throw(Exception(5).with_traceback(6))
                    b = 6r;   r<   r   r   r   r¶   @  s    zTest_throw.test_tb_2c                 C   s   d}d}|   ||¡ d S )Nz5def foo():
                    g.throw(Exception,5,6)rÄ   r;   r<   r   r   r   r·   K  s    zTest_throw.test_tb_3c                 C   s   d}d}|   ||¡ d S )Nzidef foo():
                    a = 5
                    g.throw(Exception,5,6)
                    b = 6rÅ   r;   r<   r   r   r   r¸   R  s    zTest_throw.test_tb_4c                 C   s   d}d}|   ||¡ d S )Nz?def foo():
                    g.throw(Exception, (5, 6, 7), 6)zLdef foo():
                    g.throw(Exception(5, 6, 7).with_traceback(6))r;   r<   r   r   r   r¹   ]  s    zTest_throw.test_tb_5c                 C   s   d}d}|   ||¡ d S )Nzsdef foo():
                    a = 5
                    g.throw(Exception, (5, 6, 7), 6)
                    b = 6z€def foo():
                    a = 5
                    g.throw(Exception(5, 6, 7).with_traceback(6))
                    b = 6r;   r<   r   r   r   rº   d  s    zTest_throw.test_tb_6c                 C   s   d}d}|   ||¡ d S )Nz;def foo():
                    a + g.throw(Exception, 5, 6)zJdef foo():
                    a + g.throw(Exception(5).with_traceback(6))r;   r<   r   r   r   Ú	test_tb_7o  s    zTest_throw.test_tb_7c                 C   s   d}d}|   ||¡ d S )Nzodef foo():
                    a = 5
                    a + g.throw(Exception, 5, 6)
                    b = 6z~def foo():
                    a = 5
                    a + g.throw(Exception(5).with_traceback(6))
                    b = 6r;   r<   r   r   r   Ú	test_tb_8v  s    zTest_throw.test_tb_8N)r7   r*   r8   r	   rC   rD   rE   rF   r¾   r¿   rÀ   rÁ   rÂ   rÃ   r´   r¶   r·   r¸   r¹   rº   rÆ   rÇ   r   r   r   r   r»     s&   r»   c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )Ú	Test_longÚlongc                 C   s   d}d}|   ||¡ d S )Nzx = long(x)z
x = int(x)r;   r<   r   r   r   rC   „  s    zTest_long.test_1c                 C   s   d}d}|   ||¡ d S )Nzy = isinstance(x, long)zy = isinstance(x, int)r;   r<   r   r   r   rD   ‰  s    zTest_long.test_2c                 C   s   d}d}|   ||¡ d S )Nzz = type(x) in (int, long)zz = type(x) in (int, int)r;   r<   r   r   r   rE   Ž  s    zTest_long.test_3c                 C   sf   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzlong = Truezs.long = Truezdef long(): passzclass long(): passzdef f(long): passzdef f(g, long): passzdef f(x, long=True): passr$   rY   r   r   r   rm   “  s    





zTest_long.test_unchangedc                 C   s   d}d}|   ||¡ d S )Nzx =   long(  x  )zx =   int(  x  )r;   r<   r   r   r   rp   ©  s    z"Test_long.test_prefix_preservationN)	r7   r*   r8   r	   rC   rD   rE   rm   rp   r   r   r   r   rÈ     s   rÈ   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚTest_execfileZexecfilec                 C   s|   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d}d}|   ||¡ d S )Nzexecfile("fn")z4exec(compile(open("fn", "rb").read(), "fn", 'exec'))zexecfile("fn", glob)z:exec(compile(open("fn", "rb").read(), "fn", 'exec'), glob)zexecfile("fn", glob, loc)z?exec(compile(open("fn", "rb").read(), "fn", 'exec'), glob, loc)zexecfile("fn", globals=glob)zBexec(compile(open("fn", "rb").read(), "fn", 'exec'), globals=glob)zexecfile("fn", locals=loc)z@exec(compile(open("fn", "rb").read(), "fn", 'exec'), locals=loc)z(execfile("fn", globals=glob, locals=loc)zNexec(compile(open("fn", "rb").read(), "fn", 'exec'), globals=glob, locals=loc)r;   r<   r   r   r   Útest_conversion²  s$    zTest_execfile.test_conversionc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzexecfile( "fn" )z6exec(compile(open( "fn", "rb" ).read(), "fn", 'exec'))zexecfile("fn",  globals = glob)zEexec(compile(open("fn", "rb").read(), "fn", 'exec'),  globals = glob)r;   r<   r   r   r   Útest_spacingË  s    zTest_execfile.test_spacingN)r7   r*   r8   r	   rË   rÌ   r   r   r   r   rÊ   ¯  s   rÊ   c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTest_isinstanceÚ
isinstancec                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )	Nzisinstance(x, (int, int, int))zisinstance(x, int)z,isinstance(x, (int, float, int, int, float))zisinstance(x, (int, float))z1isinstance(x, (int, float, int, int, float, str))z isinstance(x, (int, float, str))z4isinstance(foo() + bar(), (x(), y(), x(), int, int))z/isinstance(foo() + bar(), (x(), y(), x(), int))r;   r<   r   r   r   Útest_remove_multiple_itemsØ  s    z*Test_isinstance.test_remove_multiple_itemsc                 C   s   d}d}|   ||¡ d S )Nz4if    isinstance(  foo(), (  bar, bar, baz )) : passz/if    isinstance(  foo(), (  bar, baz )) : passr;   r<   r   r   r   rp   é  s    z(Test_isinstance.test_prefix_preservationc                 C   s   |   d¡ d S )Nzisinstance(x, (str, int))r$   ©r   r   r   r   rm   î  s    zTest_isinstance.test_unchangedN)r7   r*   r8   r	   rÏ   rp   rm   r   r   r   r   rÍ   Õ  s   rÍ   c                   @   s(  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z d<d=„ Z!d>d?„ Z"d@dA„ Z#dBdC„ Z$dDdE„ Z%dFdG„ Z&dHS )IÚ	Test_dictÚdictc                 C   s|   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d}d}|   ||¡ d S )Nzif   d. keys  (  )  : passz if   list(d. keys  (  ))  : passzif   d. items  (  )  : passz!if   list(d. items  (  ))  : passzif   d. iterkeys  ( )  : passzif   iter(d. keys  ( ))  : passz"[i for i in    d.  iterkeys(  )  ]z[i for i in    d.  keys(  )  ]zif   d. viewkeys  ( )  : passzif   d. keys  ( )  : passz"[i for i in    d.  viewkeys(  )  ]r;   r<   r   r   r   rp   ô  s$    z"Test_dict.test_prefix_preservationc                 C   s|   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d}|   ||¡ d S )
Nzd.keys() # foozlist(d.keys()) # foozd.items()  # foozlist(d.items())  # foozd.iterkeys()  # fooziter(d.keys())  # fooz/[i for i in d.iterkeys() # foo
               ]z+[i for i in d.keys() # foo
               ]zd.viewitems()  # foor;   r<   r   r   r   Útest_trailing_comment  s$    zTest_dict.test_trailing_commentc                 C   sF   t jD ]:}d| }|  |¡ d| }|  |¡ d| }|  |¡ qd S )Nzs = %s(d.keys())zs = %s(d.values())zs = %s(d.items())©r   Zconsuming_callsr"   )r   ÚwrapperrZ   r   r   r   rm   *  s    


zTest_dict.test_unchangedc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Núd.keys()úlist(d.keys())za[0].foo().keys()zlist(a[0].foo().keys())r;   r<   r   r   r   Útest_015  s    zTest_dict.test_01c                 C   s   d}d}|   ||¡ d S )Nú	d.items()zlist(d.items())r;   r<   r   r   r   Útest_02>  s    zTest_dict.test_02c                 C   s   d}d}|   ||¡ d S )Nú
d.values()zlist(d.values())r;   r<   r   r   r   Útest_03C  s    zTest_dict.test_03c                 C   s   d}d}|   ||¡ d S )Nzd.iterkeys()úiter(d.keys())r;   r<   r   r   r   Útest_04H  s    zTest_dict.test_04c                 C   s   d}d}|   ||¡ d S )Nzd.iteritems()ziter(d.items())r;   r<   r   r   r   Útest_05M  s    zTest_dict.test_05c                 C   s   d}d}|   ||¡ d S )Nzd.itervalues()ziter(d.values())r;   r<   r   r   r   Útest_06R  s    zTest_dict.test_06c                 C   s   d}|   |¡ d S )Nr×   r$   rY   r   r   r   Útest_07W  s    zTest_dict.test_07c                 C   s   d}|   |¡ d S )Núsorted(d.keys())r$   rY   r   r   r   Útest_08[  s    zTest_dict.test_08c                 C   s   d}d}|   ||¡ d S )NrÝ   ziter(list(d.keys()))r;   r<   r   r   r   Útest_09_  s    zTest_dict.test_09c                 C   s   d}d}|   ||¡ d S )Nzfoo(d.keys())zfoo(list(d.keys()))r;   r<   r   r   r   rL   d  s    zTest_dict.test_10c                 C   s   d}d}|   ||¡ d S )Núfor i in d.keys(): print iz for i in list(d.keys()): print ir;   r<   r   r   r   rM   i  s    zTest_dict.test_11c                 C   s   d}d}|   ||¡ d S )Nzfor i in d.iterkeys(): print irå   r;   r<   r   r   r   Útest_12n  s    zTest_dict.test_12c                 C   s   d}d}|   ||¡ d S )Nú[i for i in d.keys()]z[i for i in list(d.keys())]r;   r<   r   r   r   Útest_13s  s    zTest_dict.test_13c                 C   s   d}d}|   ||¡ d S )Nz[i for i in d.iterkeys()]rç   r;   r<   r   r   r   Útest_14x  s    zTest_dict.test_14c                 C   s   d}d}|   ||¡ d S )Nú(i for i in d.keys())z(i for i in list(d.keys()))r;   r<   r   r   r   Útest_15}  s    zTest_dict.test_15c                 C   s   d}d}|   ||¡ d S )Nz(i for i in d.iterkeys())rê   r;   r<   r   r   r   Útest_16‚  s    zTest_dict.test_16c                 C   s   d}d}|   ||¡ d S )Nziter(d.iterkeys())rÝ   r;   r<   r   r   r   Útest_17‡  s    zTest_dict.test_17c                 C   s   d}d}|   ||¡ d S )Nzlist(d.iterkeys())r×   r;   r<   r   r   r   Útest_18Œ  s    zTest_dict.test_18c                 C   s   d}d}|   ||¡ d S )Nzsorted(d.iterkeys())râ   r;   r<   r   r   r   Útest_19‘  s    zTest_dict.test_19c                 C   s   d}d}|   ||¡ d S )Nzfoo(d.iterkeys())zfoo(iter(d.keys()))r;   r<   r   r   r   Útest_20–  s    zTest_dict.test_20c                 C   s   d}d}|   ||¡ d S )Nzprint h.iterkeys().next()zprint iter(h.keys()).next()r;   r<   r   r   r   Útest_21›  s    zTest_dict.test_21c                 C   s   d}d}|   ||¡ d S )Nzprint h.keys()[0]zprint list(h.keys())[0]r;   r<   r   r   r   Útest_22   s    zTest_dict.test_22c                 C   s   d}d}|   ||¡ d S )Nzprint list(h.iterkeys().next())z!print list(iter(h.keys()).next())r;   r<   r   r   r   Útest_23¥  s    zTest_dict.test_23c                 C   s   d}d}|   ||¡ d S )Nzfor x in h.keys()[0]: print xz#for x in list(h.keys())[0]: print xr;   r<   r   r   r   Útest_24ª  s    zTest_dict.test_24c                 C   s   d}d}|   ||¡ d S )Nzd.viewkeys()rÖ   r;   r<   r   r   r   Útest_25¯  s    zTest_dict.test_25c                 C   s   d}d}|   ||¡ d S )Nzd.viewitems()rÙ   r;   r<   r   r   r   Útest_26´  s    zTest_dict.test_26c                 C   s   d}d}|   ||¡ d S )Nzd.viewvalues()rÛ   r;   r<   r   r   r   Útest_27¹  s    zTest_dict.test_27c                 C   s   d}d}|   ||¡ d S )Nz[i for i in d.viewkeys()]rç   r;   r<   r   r   r   Útest_28¾  s    zTest_dict.test_28c                 C   s   d}d}|   ||¡ d S )Nz(i for i in d.viewkeys())rê   r;   r<   r   r   r   Útest_29Ã  s    zTest_dict.test_29c                 C   s   d}d}|   ||¡ d S )Nziter(d.viewkeys())rÝ   r;   r<   r   r   r   Útest_30È  s    zTest_dict.test_30c                 C   s   d}d}|   ||¡ d S )Nzlist(d.viewkeys())r×   r;   r<   r   r   r   Útest_31Í  s    zTest_dict.test_31c                 C   s   d}d}|   ||¡ d S )Nzsorted(d.viewkeys())râ   r;   r<   r   r   r   Útest_32Ò  s    zTest_dict.test_32N)'r7   r*   r8   r	   rp   rÓ   rm   rØ   rÚ   rÜ   rÞ   rß   rà   rá   rã   rä   rL   rM   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Ñ   ñ  sH   	rÑ   c                   @   sX   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚTest_xrangeÚxrangec                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzx =    xrange(  10  )zx =    range(  10  )zx = xrange(  1  ,  10   )zx = range(  1  ,  10   )zx = xrange(  0  ,  10 ,  2 )zx = range(  0  ,  10 ,  2 )r;   r<   r   r   r   rp   Ú  s    z$Test_xrange.test_prefix_preservationc                 C   s   d}d}|   ||¡ d S )Nzx = xrange(10)zx = range(10)r;   r<   r   r   r   Útest_single_argç  s    zTest_xrange.test_single_argc                 C   s   d}d}|   ||¡ d S )Nzx = xrange(1, 10)zx = range(1, 10)r;   r<   r   r   r   Útest_two_argsì  s    zTest_xrange.test_two_argsc                 C   s   d}d}|   ||¡ d S )Nzx = xrange(0, 10, 2)zx = range(0, 10, 2)r;   r<   r   r   r   Útest_three_argsñ  s    zTest_xrange.test_three_argsc                 C   sh   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d S )Nzx = range(10, 3, 9)zx = list(range(10, 3, 9))zx = foo(range(10, 3, 9))zx = foo(list(range(10, 3, 9)))zx = range(10, 3, 9) + [4]zx = list(range(10, 3, 9)) + [4]zx = range(10)[::-1]zx = list(range(10))[::-1]zx = range(10)  [3]zx = list(range(10))  [3]r;   r<   r   r   r   Útest_wrap_in_listö  s    zTest_xrange.test_wrap_in_listc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzfor i in xrange(10):
    j=izfor i in range(10):
    j=iz[i for i in xrange(10)]ú[i for i in range(10)]r;   r<   r   r   r   Útest_xrange_in_for  s    zTest_xrange.test_xrange_in_forc                 C   s   |   d¡ |   d¡ d S )Nzfor i in range(10): passr  r$   rÐ   r   r   r   Útest_range_in_for  s    
zTest_xrange.test_range_in_forc                 C   s   |   d¡ d S )Nzx in range(10, 3, 9)r$   rÐ   r   r   r   Útest_in_contains_test  s    z!Test_xrange.test_in_contains_testc                 C   s   t jD ]}|  d| ¡ qd S )Nza = %s(range(10))rÔ   )r   Úcallr   r   r   Útest_in_consuming_context  s    
z%Test_xrange.test_in_consuming_contextN)r7   r*   r8   r	   rp   rÿ   r   r  r  r  r  r  r  r   r   r   r   rý   ×  s   	rý   c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚTest_xrange_with_reducec                    s   t t| ƒ ddg¡ d S )Nrþ   rr   )Úsuperr	  r   rÐ   ©r)   r   r   r   !  s    zTest_xrange_with_reduce.setUpc                 C   s   d}d}|   ||¡ d S )Nzreduce(x, xrange(5))z0from functools import reduce
reduce(x, range(5))r;   r<   r   r   r   Útest_double_transform$  s    z-Test_xrange_with_reduce.test_double_transform)r7   r*   r8   r   r  Ú__classcell__r   r   r  r   r	    s   r	  c                   @   sP   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTest_raw_inputZ	raw_inputc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzx =    raw_input(   )zx =    input(   )zx = raw_input(   ''   )úx = input(   ''   )r;   r<   r   r   r   rp   -  s    z'Test_raw_input.test_prefix_preservationc                 C   s   d}d}|   ||¡ d S )Nzx = raw_input()úx = input()r;   r<   r   r   r   rC   6  s    zTest_raw_input.test_1c                 C   s   d}d}|   ||¡ d S )Nzx = raw_input('')úx = input('')r;   r<   r   r   r   rD   ;  s    zTest_raw_input.test_2c                 C   s   d}d}|   ||¡ d S )Nzx = raw_input('prompt')úx = input('prompt')r;   r<   r   r   r   rE   @  s    zTest_raw_input.test_3c                 C   s   d}d}|   ||¡ d S )Nzx = raw_input(foo(a) + 6)zx = input(foo(a) + 6)r;   r<   r   r   r   rF   E  s    zTest_raw_input.test_4c                 C   s   d}d}|   ||¡ d S )Nzx = raw_input(invite).split()zx = input(invite).split()r;   r<   r   r   r   rG   J  s    zTest_raw_input.test_5c                 C   s   d}d}|   ||¡ d S )Nz x = raw_input(invite) . split ()zx = input(invite) . split ()r;   r<   r   r   r   rH   O  s    zTest_raw_input.test_6c                 C   s   d}d}|   ||¡ d S )Nzx = int(raw_input())zx = int(input())r;   r<   r   r   r   rJ   T  s    zTest_raw_input.test_8N)r7   r*   r8   r	   rp   rC   rD   rE   rF   rG   rH   rJ   r   r   r   r   r  *  s   	r  c                   @   s(   e Zd ZdZg d¢Zdd„ Zdd„ ZdS )ÚTest_funcattrsZ	funcattrs)ZclosureÚdocÚnameÚdefaultsÚcodeÚglobalsrÒ   c                 C   sH   | j D ]<}d| }d| }|  ||¡ d| }d| }|  ||¡ qd S )Nz	a.func_%súa.__%s__zself.foo.func_%s.foo_barúself.foo.__%s__.foo_bar©Úattrsr   ©r   Úattrr=   r>   r   r   r   rj   ^  s    
zTest_funcattrs.testc                 C   sF   | j D ]:}d| }|  |¡ d| }|  |¡ d| }|  |¡ qd S )Nzfoo(func_%s + 5)úf(foo.__%s__)úf(foo.__%s__.foo)©r  r"   ©r   r  rZ   r   r   r   rm   h  s    


zTest_funcattrs.test_unchangedN©r7   r*   r8   r	   r  rj   rm   r   r   r   r   r  Y  s   
r  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTest_xreadlinesZ
xreadlinesc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzfor x in f.xreadlines(): passzfor x in f: passz!for x in foo().xreadlines(): passzfor x in foo(): passz'for x in (5 + foo()).xreadlines(): passzfor x in (5 + foo()): passr;   r<   r   r   r   rV   v  s    zTest_xreadlines.test_callc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzfoo(f.xreadlines + 5)zfoo(f.__iter__ + 5)zfoo(f().xreadlines + 5)zfoo(f().__iter__ + 5)zfoo((5 + f()).xreadlines + 5)zfoo((5 + f()).__iter__ + 5)r;   r<   r   r   r   Útest_attr_refƒ  s    zTest_xreadlines.test_attr_refc                 C   s<   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzfor x in f.xreadlines(5): passz for x in f.xreadlines(k=5): passz$for x in f.xreadlines(*k, **v): passzfoo(xreadlines)r$   rY   r   r   r   rm     s    


zTest_xreadlines.test_unchangedN)r7   r*   r8   r	   rV   r%  rm   r   r   r   r   r$  s  s   r$  c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚImportsFixerTestsc                 C   sP   | j  ¡ D ]@\}}d| }d| }|  ||¡ d| }d| }|  ||¡ q
d S )Nú	import %szimport foo, %s, bar©ÚmodulesÚitemsr   ©r   ÚoldÚnewr=   r>   r   r   r   Útest_import_module   s    z$ImportsFixerTests.test_import_modulec                 C   sl   | j  ¡ D ]\\}}d| }d| }|  ||¡ d| }d| }|  ||¡ d| }d| }|  ||¡ q
d S )Nzfrom %s import foozfrom %s import foo, barzfrom %s import (yes, no)r(  r+  r   r   r   Útest_import_fromª  s    z"ImportsFixerTests.test_import_fromc                 C   sP   | j  ¡ D ]@\}}d| }d| }|  ||¡ d| }d| }|  ||¡ q
d S )Nzimport %s as foo_barr(  r+  r   r   r   Útest_import_module_as¸  s    z'ImportsFixerTests.test_import_module_asc                 C   s4   | j  ¡ D ]$\}}d| }d| }|  ||¡ q
d S )Nzfrom %s import foo as barr(  r+  r   r   r   Útest_import_from_asÂ  s    z%ImportsFixerTests.test_import_from_asc                 C   s4   | j  ¡ D ]$\}}d| }d| }|  ||¡ q
d S )Núfrom %s import *r(  r+  r   r   r   Ú	test_starÈ  s    zImportsFixerTests.test_starc                 C   sÀ   | j  ¡ D ]°\}}d||f }d||f }|  ||¡ d||f }d||f }|  ||¡ d|f }|  |¡ d|||f }d|||f }|  ||¡ d||f }d||f }|  ||¡ q
d S )NzG
                import %s
                foo(%s.bar)
                zJ
                from %s import x
                %s = 23
                zJ
                def f():
                    %s.method()
                zJ
                import %s
                %s.bar(%s.foo)
                z@
                import %s
                x.%s
                )r)  r*  r   r"   )r   r,  r-  r=   r>   rZ   r   r   r   Útest_import_module_usageÎ  sB    ýýýýý
ýýýýz*ImportsFixerTests.test_import_module_usageN)	r7   r*   r8   r.  r/  r0  r1  r3  r4  r   r   r   r   r&  ž  s   

r&  c                   @   s,   e Zd ZdZddlmZ dd„ Zdd„ ZdS )	ÚTest_importsÚimportsé   ©ÚMAPPINGc                 C   s   d}d}|   ||¡ d S )Nzimport urlparse, cStringIOzimport urllib.parse, ior;   r<   r   r   r   Útest_multiple_imports  s    z"Test_imports.test_multiple_importsc                 C   s   d}d}|   ||¡ d S )Nzv
            import copy_reg as bar, HTMLParser as foo, urlparse
            s = urlparse.spam(bar.foo())
            z~
            import copyreg as bar, html.parser as foo, urllib.parse
            s = urllib.parse.spam(bar.foo())
            r;   r<   r   r   r   Útest_multiple_imports_as	  s    z%Test_imports.test_multiple_imports_asN)	r7   r*   r8   r	   Úfixes.fix_importsr9  r)  r:  r;  r   r   r   r   r5     s   r5  c                   @   s   e Zd ZdZddlmZ dS )ÚTest_imports2Úimports2r7  r8  N)r7   r*   r8   r	   Úfixes.fix_imports2r9  r)  r   r   r   r   r=    s   r=  c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚTest_imports_fixer_orderc                    sR   t t| ƒ ddg¡ ddlm} | ¡ | _ddlm} dD ]}|| | j|< q:d S )Nr6  r>  r7  r8  )ÚdbhashÚdumbdbmÚdbmÚgdbm)r
  r@  r   r?  r9  Úcopyr)  r<  )r   Zmapping2Zmapping1Úkeyr  r   r   r     s    
zTest_imports_fixer_order.setUpc                 C   s   dD ]}|| _ |  d¡ qd S )N)r6  r>  Úimport)r	   r6   )r   Zfixr   r   r   Ú$test_after_local_imports_refactoring$  s    z=Test_imports_fixer_order.test_after_local_imports_refactoring)r7   r*   r8   r   rH  r  r   r   r  r   r@    s   r@  c                   @   s\   e Zd ZdZddlmZ dd„ Zdd„ Zdd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_urllibÚurllibr7  r8  c                 C   sD   | j  ¡ D ]4\}}d| }dd ttdƒ|ƒ¡ }|  ||¡ q
d S )Nr'  r(   r   )r)  r*  r    Úmapr   r   )r   r,  Úchangesr=   r>   r   r   r   r.  .  s    zTest_urllib.test_import_modulec           
      C   sî   | j  ¡ D ]Þ\}}g }|D ]š\}}|D ]D}| |¡ d||f }d||f }|  ||¡ d| }	|  |	¡ q&d|d |¡f }d|d |¡f }|  ||¡ dd |¡ }	|  |	¡ qd|d |¡f }d dd„ |D ƒ¡}|  ||¡ q
d S )Núfrom %s import %súfrom foo import %sr(   Ú
c                 S   s"   g | ]\}}d |d  |¡f ‘qS )rM  r(   )r    )r+   r-  Úmembersr   r   r   r-   J  s   ÿz0Test_urllib.test_import_from.<locals>.<listcomp>)r)  r*  Úappendr   r"   r    )
r   r,  rL  Zall_membersr-  rP  Úmemberr=   r>   rZ   r   r   r   r/  4  s(    

ÿzTest_urllib.test_import_fromc                 C   s$   | j D ]}d| }|  |d¡ qd S )Nzimport %s as fooz#This module is now multiple modules©r)  r&   ©r   r,  rZ   r   r   r   r0  N  s    
z!Test_urllib.test_import_module_asc                 C   s|   | j  ¡ D ]l\}}|D ]^\}}|D ]P}d||f }d||f }|  ||¡ d|||f }d|||f }|  ||¡ q"qq
d S )Núfrom %s import %s as foo_barzfrom %s import %s as blah, %sr(  )r   r,  rL  r-  rP  rR  r=   r>   r   r   r   r1  S  s    zTest_urllib.test_import_from_asc                 C   s$   | j D ]}d| }|  |d¡ qd S )Nr2  zCannot handle star importsrS  rT  r   r   r   r3  ^  s    
zTest_urllib.test_starc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nz6
def foo():
    from urllib import urlencode, urlopen
zZ
def foo():
    from urllib.parse import urlencode
    from urllib.request import urlopen
zB
def foo():
    other()
    from urllib import urlencode, urlopen
zf
def foo():
    other()
    from urllib.parse import urlencode
    from urllib.request import urlopen
r;   r<   r   r   r   Útest_indentedc  s    zTest_urllib.test_indentedc                 C   s   d}d}|   ||¡ d S )Nzfrom urllib import getproxiesz%from urllib.request import getproxiesr;   r<   r   r   r   Útest_single_import|  s    zTest_urllib.test_single_importc           	   	   C   s¢   | j  ¡ D ]’\}}|D ]„\}}|D ]v}d dd„ | j | D ƒ¡}d|||f }d|||f }|  ||¡ d|||||f }d|||||f }|  ||¡ q"qq
d S )Nr(   c                 S   s   g | ]\}}|‘qS r   r   )r+   r5   Zmemsr   r   r   r-   †  r.   z8Test_urllib.test_import_module_usage.<locals>.<listcomp>z^
                        import %s
                        foo(%s.%s)
                        z`
                        import %s
                        %s.%s(%s.%s)
                        )r)  r*  r    r   )	r   r,  rL  r-  rP  rR  Z
new_importr=   r>   r   r   r   r4  ‚  s(    
ÿýýýýz$Test_urllib.test_import_module_usageN)r7   r*   r8   r	   Zfixes.fix_urllibr9  r)  r.  r/  r0  r1  r3  rV  rW  r4  r   r   r   r   rI  *  s   rI  c                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )Ú
Test_inputÚinputc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzx =   input(   )zx =   eval(input(   ))r  zx = eval(input(   ''   ))r;   r<   r   r   r   rp   Ÿ  s    z#Test_input.test_prefix_preservationc                 C   s   d}d}|   ||¡ d S )Nzx = input()  #  foozx = eval(input())  #  foor;   r<   r   r   r   rÓ   ¨  s    z Test_input.test_trailing_commentc                 C   s.   d}|   |¡ d}|   |¡ d}|   |¡ d S )Núx = eval(input())úx = eval(input(''))úx = eval(input(foo(5) + 9))r$   rY   r   r   r   rz   ­  s    

zTest_input.test_idempotencyc                 C   s   d}d}|   ||¡ d S )Nr  rZ  r;   r<   r   r   r   rC   ·  s    zTest_input.test_1c                 C   s   d}d}|   ||¡ d S )Nr  r[  r;   r<   r   r   r   rD   ¼  s    zTest_input.test_2c                 C   s   d}d}|   ||¡ d S )Nr  zx = eval(input('prompt'))r;   r<   r   r   r   rE   Á  s    zTest_input.test_3c                 C   s   d}d}|   ||¡ d S )Nzx = input(foo(5) + 9)r\  r;   r<   r   r   r   rF   Æ  s    zTest_input.test_4N)r7   r*   r8   r	   rp   rÓ   rz   rC   rD   rE   rF   r   r   r   r   rX  œ  s   	
rX  c                   @   s°   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*S )+ÚTest_tuple_paramsZtuple_paramsc                 C   s   d}|   |¡ d S )Nzdef foo(): passr$   rY   r   r   r   r[   Î  s    z"Test_tuple_params.test_unchanged_1c                 C   s   d}|   |¡ d S )Nzdef foo(a, b, c): passr$   rY   r   r   r   r\   Ò  s    z"Test_tuple_params.test_unchanged_2c                 C   s   d}|   |¡ d S )Nzdef foo(a=3, b=4, c=5): passr$   rY   r   r   r   r]   Ö  s    z"Test_tuple_params.test_unchanged_3c                 C   s   d}d}|   ||¡ d S )Nz8
            def foo(((a, b), c)):
                x = 5zn
            def foo(xxx_todo_changeme):
                ((a, b), c) = xxx_todo_changeme
                x = 5r;   r<   r   r   r   rC   Ú  s    zTest_tuple_params.test_1c                 C   s   d}d}|   ||¡ d S )Nz;
            def foo(((a, b), c), d):
                x = 5zq
            def foo(xxx_todo_changeme, d):
                ((a, b), c) = xxx_todo_changeme
                x = 5r;   r<   r   r   r   rD   å  s    zTest_tuple_params.test_2c                 C   s   d}d}|   ||¡ d S )Nz@
            def foo(((a, b), c), d) -> e:
                x = 5zv
            def foo(xxx_todo_changeme, d) -> e:
                ((a, b), c) = xxx_todo_changeme
                x = 5r;   r<   r   r   r   rE   ð  s    zTest_tuple_params.test_3c                 C   s   d}d}|   ||¡ d S )Nz/
            def foo(((a, b), c)): x = 5; y = 7zV
            def foo(xxx_todo_changeme): ((a, b), c) = xxx_todo_changeme; x = 5; y = 7r;   r<   r   r   r   Útest_semicolonû  s    z Test_tuple_params.test_semicolonc                 C   s   d}d}|   ||¡ d S )NzE
            def foo(((a, b), c), d, e=5) -> z:
                x = 5z{
            def foo(xxx_todo_changeme, d, e=5) -> z:
                ((a, b), c) = xxx_todo_changeme
                x = 5r;   r<   r   r   r   Útest_keywords  s    zTest_tuple_params.test_keywordsc                 C   s   d}d}|   ||¡ d S )NzR
            def foo(((a, b), c), d, *vargs, **kwargs) -> z:
                x = 5zˆ
            def foo(xxx_todo_changeme, d, *vargs, **kwargs) -> z:
                ((a, b), c) = xxx_todo_changeme
                x = 5r;   r<   r   r   r   Útest_varargs  s    zTest_tuple_params.test_varargsc                 C   s   d}d}|   ||¡ d S )NzH
            def foo(((a, b), c), (d, e, f)) -> z:
                x = 5z¶
            def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:
                ((a, b), c) = xxx_todo_changeme
                (d, e, f) = xxx_todo_changeme1
                x = 5r;   r<   r   r   r   Útest_multi_1  s    zTest_tuple_params.test_multi_1c                 C   s   d}d}|   ||¡ d S )NzQ
            def foo(x, ((a, b), c), d, (e, f, g), y) -> z:
                x = 5z¿
            def foo(x, xxx_todo_changeme, d, xxx_todo_changeme1, y) -> z:
                ((a, b), c) = xxx_todo_changeme
                (e, f, g) = xxx_todo_changeme1
                x = 5r;   r<   r   r   r   Útest_multi_2%  s    zTest_tuple_params.test_multi_2c                 C   s   d}d}|   ||¡ d S )Nzj
            def foo(((a, b), c), (d, e, f)) -> z:
                "foo foo foo foo"
                x = 5zØ
            def foo(xxx_todo_changeme, xxx_todo_changeme1) -> z:
                "foo foo foo foo"
                ((a, b), c) = xxx_todo_changeme
                (d, e, f) = xxx_todo_changeme1
                x = 5r;   r<   r   r   r   Útest_docstring1  s    z Test_tuple_params.test_docstringc                 C   s   d}|   |¡ d S )Núlambda x: x + 5r$   rY   r   r   r   Útest_lambda_no_change?  s    z'Test_tuple_params.test_lambda_no_changec                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzlambda (x): x + 5rd  zlambda(x): x + 5zlambda ((((x)))): x + 5zlambda((((x)))): x + 5r;   r<   r   r   r   Útest_lambda_parens_single_argC  s    z/Test_tuple_params.test_lambda_parens_single_argc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzlambda (x, y): x + f(y)zlambda x_y: x_y[0] + f(x_y[1])zlambda(x, y): x + f(y)zlambda (((x, y))): x + f(y)zlambda(((x, y))): x + f(y)r;   r<   r   r   r   Útest_lambda_simpleT  s    z$Test_tuple_params.test_lambda_simplec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzlambda (x,): x + f(x)zlambda x1: x1[0] + f(x1[0])zlambda (((x,))): x + f(x)r;   r<   r   r   r   Útest_lambda_one_tuplee  s    z'Test_tuple_params.test_lambda_one_tuplec                 C   s   d}d}|   ||¡ d S )Nzlambda (x, y): x + x + f(x) + xz0lambda x_y: x_y[0] + x_y[0] + f(x_y[0]) + x_y[0]r;   r<   r   r   r   Útest_lambda_simple_multi_usen  s    z.Test_tuple_params.test_lambda_simple_multi_usec                 C   s   d}d}|   ||¡ d S )Nzlambda (x, y): y + xzlambda x_y: x_y[1] + x_y[0]r;   r<   r   r   r   Útest_lambda_simple_reverses  s    z,Test_tuple_params.test_lambda_simple_reversec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzlambda (x, (y, z)): x + y + zz2lambda x_y_z: x_y_z[0] + x_y_z[1][0] + x_y_z[1][1]z!lambda (((x, (y, z)))): x + y + zr;   r<   r   r   r   Útest_lambda_nestedx  s    z$Test_tuple_params.test_lambda_nestedc                 C   s   d}d}|   ||¡ d S )Nz lambda (x, (y, z)): x + y + f(y)z5lambda x_y_z: x_y_z[0] + x_y_z[1][0] + f(x_y_z[1][0])r;   r<   r   r   r   Útest_lambda_nested_multi_use  s    z.Test_tuple_params.test_lambda_nested_multi_useN)r7   r*   r8   r	   r[   r\   r]   rC   rD   rE   r^  r_  r`  ra  rb  rc  re  rf  rg  rh  ri  rj  rk  rl  r   r   r   r   r]  Ë  s*   		r]  c                   @   s(   e Zd ZdZg d¢Zdd„ Zdd„ ZdS )ÚTest_methodattrsZmethodattrs)Úfuncr   Úclassc                 C   sd   | j D ]X}d| }|dkr d}nd| }|  ||¡ d| }|dkrJd}nd| }|  ||¡ qd S )Nza.im_%sro  za.__self__.__class__r  zself.foo.im_%s.foo_barz#self.foo.__self__.__class__.foo_barr  r  r  r   r   r   rj   ‹  s    
zTest_methodattrs.testc                 C   sF   | j D ]:}d| }|  |¡ d| }|  |¡ d| }|  |¡ qd S )Nzfoo(im_%s + 5)r  r   r!  r"  r   r   r   rm   ›  s    


zTest_methodattrs.test_unchangedNr#  r   r   r   r   rm  †  s   rm  c                   @   sx  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z d<d=„ Z!d>d?„ Z"d@dA„ Z#dBdC„ Z$dDdE„ Z%dFdG„ Z&dHdI„ Z'dJdK„ Z(dLdM„ Z)dNdO„ Z*dPdQ„ Z+dRdS„ Z,dTdU„ Z-dVdW„ Z.dXdY„ Z/dZd[„ Z0d\S )]Ú	Test_nextÚnextc                 C   s   d}d}|   ||¡ d S )Nz	it.next()znext(it)r;   r<   r   r   r   rC   ©  s    zTest_next.test_1c                 C   s   d}d}|   ||¡ d S )Nza.b.c.d.next()znext(a.b.c.d)r;   r<   r   r   r   rD   ®  s    zTest_next.test_2c                 C   s   d}d}|   ||¡ d S )Nz(a + b).next()znext((a + b))r;   r<   r   r   r   rE   ³  s    zTest_next.test_3c                 C   s   d}d}|   ||¡ d S )Nz
a().next()z	next(a())r;   r<   r   r   r   rF   ¸  s    zTest_next.test_4c                 C   s   d}d}|   ||¡ d S )Nza().next() + bznext(a()) + br;   r<   r   r   r   rG   ½  s    zTest_next.test_5c                 C   s   d}d}|   ||¡ d S )Nzc(      a().next() + b)zc(      next(a()) + b)r;   r<   r   r   r   rH   Â  s    zTest_next.test_6c                 C   s   d}d}|   ||¡ d S )NzU
            for a in b:
                foo(a)
                a.next()
            zT
            for a in b:
                foo(a)
                next(a)
            r;   r<   r   r   r   Útest_prefix_preservation_1Ç  s    z$Test_next.test_prefix_preservation_1c                 C   s   d}d}|   ||¡ d S )Nzq
            for a in b:
                foo(a) # abc
                # def
                a.next()
            zp
            for a in b:
                foo(a) # abc
                # def
                next(a)
            r;   r<   r   r   r   Útest_prefix_preservation_2Ô  s    z$Test_next.test_prefix_preservation_2c                 C   s   d}d}| j ||dd d S )Nzj
            next = 5
            for a in b:
                foo(a)
                a.next()
            zn
            next = 5
            for a in b:
                foo(a)
                a.__next__()
            T©r   r;   r<   r   r   r   Útest_prefix_preservation_3ã  s    z$Test_next.test_prefix_preservation_3c                 C   s   d}d}| j ||dd d S )Nz†
            next = 5
            for a in b:
                foo(a) # abc
                # def
                a.next()
            zŠ
            next = 5
            for a in b:
                foo(a) # abc
                # def
                a.__next__()
            Trt  r;   r<   r   r   r   Útest_prefix_preservation_4ò  s    z$Test_next.test_prefix_preservation_4c                 C   s   d}d}| j ||dd d S )Nzz
            next = 5
            for a in b:
                foo(foo(a), # abc
                    a.next())
            z~
            next = 5
            for a in b:
                foo(foo(a), # abc
                    a.__next__())
            Trt  r;   r<   r   r   r   Útest_prefix_preservation_5	  s    z$Test_next.test_prefix_preservation_5c                 C   s   d}d}|   ||¡ d S )Nze
            for a in b:
                foo(foo(a), # abc
                    a.next())
            zd
            for a in b:
                foo(foo(a), # abc
                    next(a))
            r;   r<   r   r   r   Útest_prefix_preservation_6	  s    z$Test_next.test_prefix_preservation_6c                 C   s   d}d}|   ||¡ d S )Nz[
            class A:
                def next(self):
                    pass
            z_
            class A:
                def __next__(self):
                    pass
            r;   r<   r   r   r   Útest_method_1	  s    zTest_next.test_method_1c                 C   s   d}d}|   ||¡ d S )Nzc
            class A(object):
                def next(self):
                    pass
            zg
            class A(object):
                def __next__(self):
                    pass
            r;   r<   r   r   r   Útest_method_2,	  s    zTest_next.test_method_2c                 C   s   d}d}|   ||¡ d S )NzX
            class A:
                def next(x):
                    pass
            z\
            class A:
                def __next__(x):
                    pass
            r;   r<   r   r   r   Útest_method_39	  s    zTest_next.test_method_3c                 C   s   d}d}|   ||¡ d S )Nzí
            class A:
                def __init__(self, foo):
                    self.foo = foo

                def next(self):
                    pass

                def __iter__(self):
                    return self
            zñ
            class A:
                def __init__(self, foo):
                    self.foo = foo

                def __next__(self):
                    pass

                def __iter__(self):
                    return self
            r;   r<   r   r   r   Útest_method_4F	  s    zTest_next.test_method_4c                 C   s   d}|   |¡ d S )Nza
            class A:
                def next(self, a, b):
                    pass
            r$   rY   r   r   r   Útest_method_unchanged_	  s    zTest_next.test_method_unchangedc                 C   s   d}|   |d¡ d S )Nzy
            next = foo

            class A:
                def next(self, a, b):
                    pass
            ú)Calls to builtin next() possibly shadowedr¯   rY   r   r   r   Útest_shadowing_assign_simpleg	  s    z&Test_next.test_shadowing_assign_simplec                 C   s   d}|   |d¡ d S )Nz~
            (next, a) = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_assign_tuple_1q	  s    z'Test_next.test_shadowing_assign_tuple_1c                 C   s   d}|   |d¡ d S )Nz‹
            (a, (b, (next, c)), a) = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_assign_tuple_2{	  s    z'Test_next.test_shadowing_assign_tuple_2c                 C   s   d}|   |d¡ d S )Nz~
            [next, a] = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_assign_list_1…	  s    z&Test_next.test_shadowing_assign_list_1c                 C   s   d}|   |d¡ d S )Nz‹
            [a, [b, [next, c]], a] = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_assign_list_2	  s    z&Test_next.test_shadowing_assign_list_2c                 C   s   d}|   |d¡ d S )Nz 
            def foo():
                __builtin__.next = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_builtin_assign™	  s    zTest_next.test_builtin_assignc                 C   s   d}|   |d¡ d S )Nz¥
            def foo():
                (a, __builtin__.next) = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_builtin_assign_in_tuple¤	  s    z&Test_next.test_builtin_assign_in_tuplec                 C   s   d}|   |d¡ d S )Nz¥
            def foo():
                [a, __builtin__.next] = foo

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_builtin_assign_in_list¯	  s    z%Test_next.test_builtin_assign_in_listc                 C   s   d}|   |¡ d S )Nz–
            def foo():
                A.next = foo

            class A:
                def next(self, a, b):
                    pass
            r$   rY   r   r   r   Útest_assign_to_nextº	  s    zTest_next.test_assign_to_nextc                 C   s   d}|   |¡ d S )Nz›
            def foo():
                (a, A.next) = foo

            class A:
                def next(self, a, b):
                    pass
            r$   rY   r   r   r   Útest_assign_to_next_in_tupleÅ	  s    z&Test_next.test_assign_to_next_in_tuplec                 C   s   d}|   |¡ d S )Nz›
            def foo():
                [a, A.next] = foo

            class A:
                def next(self, a, b):
                    pass
            r$   rY   r   r   r   Útest_assign_to_next_in_listÐ	  s    z%Test_next.test_assign_to_next_in_listc                 C   s   d}|   |d¡ d S )Nz…
            import foo.bar as next

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_1Û	  s    z!Test_next.test_shadowing_import_1c                 C   s   d}|   |d¡ d S )NzŠ
            import bar, bar.foo as next

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_2å	  s    z!Test_next.test_shadowing_import_2c                 C   s   d}|   |d¡ d S )Nz
            import bar, bar.foo as next, baz

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_3ï	  s    z!Test_next.test_shadowing_import_3c                 C   s   d}|   |d¡ d S )Nz
            from x import next

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_from_1ù	  s    z&Test_next.test_shadowing_import_from_1c                 C   s   d}|   |d¡ d S )Nzƒ
            from x.a import next

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_from_2
  s    z&Test_next.test_shadowing_import_from_2c                 C   s   d}|   |d¡ d S )Nz‡
            from x import a, next, b

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_from_3
  s    z&Test_next.test_shadowing_import_from_3c                 C   s   d}|   |d¡ d S )Nz‰
            from x.a import a, next, b

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_import_from_4
  s    z&Test_next.test_shadowing_import_from_4c                 C   s   d}|   |d¡ d S )Nz
            def next(a):
                pass

            class A:
                def next(self, a, b):
                    pass
            r~  r¯   rY   r   r   r   Útest_shadowing_funcdef_1!
  s    z"Test_next.test_shadowing_funcdef_1c                 C   s   d}d}|   ||d¡ d S )Nz¡
            def next(a):
                pass

            class A:
                def next(self):
                    pass

            it.next()
            z©
            def next(a):
                pass

            class A:
                def __next__(self):
                    pass

            it.__next__()
            r~  r%   r<   r   r   r   Útest_shadowing_funcdef_2,
  s    

z"Test_next.test_shadowing_funcdef_2c                 C   s   d}|   |d¡ d S )NzW
            def f():
                global next
                next = 5
            r~  r¯   rY   r   r   r   Útest_shadowing_global_1C
  s    z!Test_next.test_shadowing_global_1c                 C   s   d}|   |d¡ d S )Nz]
            def f():
                global a, next, b
                next = 5
            r~  r¯   rY   r   r   r   Útest_shadowing_global_2K
  s    z!Test_next.test_shadowing_global_2c                 C   s   d}|   |d¡ d S )Nze
            for next in it():
                pass

            b = 5
            c = 6
            r~  r¯   rY   r   r   r   Útest_shadowing_for_simpleS
  s    z#Test_next.test_shadowing_for_simplec                 C   s   d}|   |d¡ d S )Nzh
            for next, b in it():
                pass

            b = 5
            c = 6
            r~  r¯   rY   r   r   r   Útest_shadowing_for_tuple_1]
  s    z$Test_next.test_shadowing_for_tuple_1c                 C   s   d}|   |d¡ d S )Nzp
            for a, (next, c), b in it():
                pass

            b = 5
            c = 6
            r~  r¯   rY   r   r   r   Útest_shadowing_for_tuple_2g
  s    z$Test_next.test_shadowing_for_tuple_2c                 C   s   d}d}|   ||¡ d S )Nzgnext = g.nextzgnext = g.__next__r;   r<   r   r   r   Útest_noncall_access_1q
  s    zTest_next.test_noncall_access_1c                 C   s   d}d}|   ||¡ d S )Nzf(g.next + 5)zf(g.__next__ + 5)r;   r<   r   r   r   Útest_noncall_access_2v
  s    zTest_next.test_noncall_access_2c                 C   s   d}d}|   ||¡ d S )Nzf(g().next + 5)zf(g().__next__ + 5)r;   r<   r   r   r   Útest_noncall_access_3{
  s    zTest_next.test_noncall_access_3N)1r7   r*   r8   r	   rC   rD   rE   rF   rG   rH   rr  rs  ru  rv  rw  rx  ry  rz  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   r   r   rp  ¦  s\   














rp  c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTest_nonzeroÚnonzeroc                 C   s   d}d}|   ||¡ d S )Nzb
            class A:
                def __nonzero__(self):
                    pass
            z_
            class A:
                def __bool__(self):
                    pass
            r;   r<   r   r   r   rC   ƒ
  s    zTest_nonzero.test_1c                 C   s   d}d}|   ||¡ d S )Nzj
            class A(object):
                def __nonzero__(self):
                    pass
            úg
            class A(object):
                def __bool__(self):
                    pass
            r;   r<   r   r   r   rD   
  s    zTest_nonzero.test_2c                 C   s   d}|   |¡ d S )Nr  r$   rY   r   r   r   r[   
  s    zTest_nonzero.test_unchanged_1c                 C   s   d}|   |¡ d S )Nzm
            class A(object):
                def __nonzero__(self, a):
                    pass
            r$   rY   r   r   r   r\   ¥
  s    zTest_nonzero.test_unchanged_2c                 C   s   d}|   |¡ d S )NzE
            def __nonzero__(self):
                pass
            r$   rY   r   r   r   Útest_unchanged_func­
  s    z Test_nonzero.test_unchanged_funcN)	r7   r*   r8   r	   rC   rD   r[   r\   rž  r   r   r   r   r›  €
  s   r›  c                   @   sx   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_numliteralsZnumliteralsc                 C   s   d}d}|   ||¡ d S )NZ0755Ú0o755r;   r<   r   r   r   Útest_octal_1·
  s    zTest_numliterals.test_octal_1c                 C   s   d}d}|   ||¡ d S )Nza = 12Lúa = 12r;   r<   r   r   r   Útest_long_int_1¼
  s    z Test_numliterals.test_long_int_1c                 C   s   d}d}|   ||¡ d S )Nza = 12lr¢  r;   r<   r   r   r   Útest_long_int_2Á
  s    z Test_numliterals.test_long_int_2c                 C   s   d}d}|   ||¡ d S )Nz	b = 0x12lzb = 0x12r;   r<   r   r   r   Útest_long_hexÆ
  s    zTest_numliterals.test_long_hexc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzb =   0x12Lz
b =   0x12zb = 0755 # spamzb = 0o755 # spamr;   r<   r   r   r   Útest_comments_and_spacingË
  s    z*Test_numliterals.test_comments_and_spacingc                 C   s   d}|   |¡ d S )NÚ5r$   rY   r   r   r   Útest_unchanged_intÔ
  s    z#Test_numliterals.test_unchanged_intc                 C   s   d}|   |¡ d S )Nz5.0r$   rY   r   r   r   Útest_unchanged_floatØ
  s    z%Test_numliterals.test_unchanged_floatc                 C   s   d}|   |¡ d S )Nr   r$   rY   r   r   r   Útest_unchanged_octalÜ
  s    z%Test_numliterals.test_unchanged_octalc                 C   s   d}|   |¡ d S )NZ0xABCr$   rY   r   r   r   Útest_unchanged_hexà
  s    z#Test_numliterals.test_unchanged_hexc                 C   s   d}|   |¡ d S )Nz5.0e10r$   rY   r   r   r   Útest_unchanged_expä
  s    z#Test_numliterals.test_unchanged_expc                 C   s   d}|   |¡ d S )Nz5 + 4jr$   rY   r   r   r   Útest_unchanged_complex_intè
  s    z+Test_numliterals.test_unchanged_complex_intc                 C   s   d}|   |¡ d S )Nz
5.4 + 4.9jr$   rY   r   r   r   Útest_unchanged_complex_floatì
  s    z-Test_numliterals.test_unchanged_complex_floatc                 C   s    d}|   |¡ d}|   |¡ d S )NZ4jz4.4jr$   rY   r   r   r   Útest_unchanged_complex_bareð
  s    
z,Test_numliterals.test_unchanged_complex_bareN)r7   r*   r8   r	   r¡  r£  r¤  r¥  r¦  r¨  r©  rª  r«  r¬  r­  r®  r¯  r   r   r   r   rŸ  ´
  s   	rŸ  c                   @   s8   e Zd ZdZddiZdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTest_renamesÚrenamesÚsys)ZmaxintÚmaxsizec                 C   sV   t | j ¡ ƒD ]B\}\}}d||f }d||f }|  ||¡ d| }|  |¡ qd S )NrM  rN  )Úlistr)  r*  r   r"   )r   Úmodr,  r-  r=   r>   rZ   r   r   r   r/  ü
  s    zTest_renames.test_import_fromc                 C   sD   t | j ¡ ƒD ]0\}\}}d||f }d||f }|  ||¡ qd S )NrU  ©r´  r)  r*  r   ©r   rµ  r,  r-  r=   r>   r   r   r   r1    s    z Test_renames.test_import_from_asc                 C   sL   t | j ¡ ƒD ]8\}\}}d||||f }d||||f }|  ||¡ qd S )NzJ
                import %s
                foo(%s, %s.%s)
                r¶  r·  r   r   r   r4    s    
ý
ýz%Test_renames.test_import_module_usagec                 C   sL   t | j ¡ ƒD ]8\}\}}d||||f }d||||f }|  ||¡ qd S )NzO
                from %s import %s
                foo(%s, %s)
                r¶  r·  r   r   r   ÚXXX_test_from_import_usage  s    
ý
ýz'Test_renames.XXX_test_from_import_usageN)	r7   r*   r8   r	   r)  r/  r1  r4  r¸  r   r   r   r   r°  ö
  s   	r°  c                   @   s`   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTest_unicodeÚunicodec                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzunicode( x)zstr( x)z unicode(x )z str(x )z u'h'z 'h'r;   r<   r   r   r   Útest_whitespace'  s    zTest_unicode.test_whitespacec                 C   s   d}d}|   ||¡ d S )Nzunicode(x, y, z)zstr(x, y, z)r;   r<   r   r   r   Útest_unicode_call4  s    zTest_unicode.test_unicode_callc                 C   s   d}d}|   ||¡ d S )Nzunichr(u'h')zchr('h')r;   r<   r   r   r   Útest_unichr9  s    zTest_unicode.test_unichrc                 C   s   d}d}|   ||¡ d S )Nzu"x"z"x"r;   r<   r   r   r   Útest_unicode_literal_1>  s    z#Test_unicode.test_unicode_literal_1c                 C   s   d}d}|   ||¡ d S )Nzur'x'zr'x'r;   r<   r   r   r   Útest_unicode_literal_2C  s    z#Test_unicode.test_unicode_literal_2c                 C   s   d}d}|   ||¡ d S )Nz
UR'''x''' z	R'''x''' r;   r<   r   r   r   Útest_unicode_literal_3H  s    z#Test_unicode.test_unicode_literal_3c                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nú'\\\u20ac\U0001d121\\u20ac'z'\\\\u20ac\\U0001d121\\u20ac'úr'\\\u20ac\U0001d121\\u20ac'r;   r<   r   r   r   Útest_native_literal_escape_uM  s    z)Test_unicode.test_native_literal_escape_uc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzb'\\\u20ac\U0001d121\\u20ac'zbr'\\\u20ac\U0001d121\\u20ac'r;   r<   r   r   r   Útest_bytes_literal_escape_uV  s    z(Test_unicode.test_bytes_literal_escape_uc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzu'\\\u20ac\U0001d121\\u20ac'rÁ  zur'\\\u20ac\U0001d121\\u20ac'rÂ  r;   r<   r   r   r   Útest_unicode_literal_escape_u_  s    z*Test_unicode.test_unicode_literal_escape_uc                 C   s@   d}|d }|d }|   ||¡ |d }|d }|   ||¡ d S )Nz(from __future__ import unicode_literals
rÁ  rÂ  r;   )r   Úfr=   r>   r   r   r   Ú$test_native_unicode_literal_escape_uh  s    z1Test_unicode.test_native_unicode_literal_escape_uN)r7   r*   r8   r	   r»  r¼  r½  r¾  r¿  rÀ  rÃ  rÄ  rÅ  rÇ  r   r   r   r   r¹  $  s   			r¹  c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTest_filterÚfilterc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nz#x =   filter(    foo,     'abc'   )z)x =   list(filter(    foo,     'abc'   ))zx =   filter(  None , 'abc'  )z x =   [_f for _f in 'abc' if _f]r;   r<   r   r   r   rp   v  s    z$Test_filter.test_prefix_preservationc                 C   sh   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d	}|   ||¡ d S )
Nzx = filter(None, 'abc')zx = [_f for _f in 'abc' if _f]zx = len(filter(f, 'abc'))zx = len(list(filter(f, 'abc')))z)x = filter(lambda x: x%2 == 0, range(10))z&x = [x for x in range(10) if x%2 == 0]z+x = filter(lambda (x): x%2 == 0, range(10))z5filter(lambda x: True if x > 2 else False, [1, 2, 3])z4[x for x in [1, 2, 3] if (True if x > 2 else False)]r;   r<   r   r   r   Útest_filter_basic  s    zTest_filter.test_filter_basicc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzx = filter(None, 'abc')[0]z!x = [_f for _f in 'abc' if _f][0]zx = len(filter(f, 'abc')[0])z"x = len(list(filter(f, 'abc'))[0])z,x = filter(lambda x: x%2 == 0, range(10))[0]z)x = [x for x in range(10) if x%2 == 0][0]z.x = filter(lambda (x): x%2 == 0, range(10))[0]r;   r<   r   r   r   Útest_filter_trailers–  s    z Test_filter.test_filter_trailersc                 C   s  d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d	}|   |¡ d
}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzb.join(filter(f, 'abc'))z#(a + foo(5)).join(filter(f, 'abc'))ziter(filter(f, 'abc'))zlist(filter(f, 'abc'))zlist(filter(f, 'abc'))[0]zset(filter(f, 'abc'))zset(filter(f, 'abc')).pop()ztuple(filter(f, 'abc'))zany(filter(f, 'abc'))zall(filter(f, 'abc'))zsum(filter(f, 'abc'))zsorted(filter(f, 'abc'))z"sorted(filter(f, 'abc'), key=blah)z%sorted(filter(f, 'abc'), key=blah)[0]zenumerate(filter(f, 'abc'))z$enumerate(filter(f, 'abc'), start=1)zfor i in filter(f, 'abc'): passz[x for x in filter(f, 'abc')]z(x for x in filter(f, 'abc'))r$   ©r   r>   r   r   r   Útest_filter_nochange¨  sL    

















z Test_filter.test_filter_nochangec                 C   s4   d}|   |¡ d}d}|  ||¡ d}|   |¡ d S )Nz:from future_builtins import spam, filter; filter(f, 'ham')z6from future_builtins import spam; x = filter(f, 'abc')z<from future_builtins import spam; x = list(filter(f, 'abc'))z/from future_builtins import *; filter(f, 'ham')r…   re   r   r   r   Útest_future_builtinsÐ  s    
z Test_filter.test_future_builtinsN)	r7   r*   r8   r	   rp   rÊ  rË  rÍ  rÎ  r   r   r   r   rÈ  s  s   	(rÈ  c                       sX   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Z‡  ZS )ÚTest_maprK  c                    s&   |   d| |¡ tt| ƒ ||¡ d S )Nz!from future_builtins import map; )r"   r
  rÏ  r   r<   r  r   r   r   Þ  s    zTest_map.checkc                 C   s   d}d}|   ||¡ d S )Nzx =    map(   f,    'abc'   )z#x =    list(map(   f,    'abc'   ))r;   r<   r   r   r   rp   â  s    z!Test_map.test_prefix_preservationc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )	Nzx = map(f, 'abc')[0]zx = list(map(f, 'abc'))[0]zx = map(None, l)[0]zx = list(l)[0]zx = map(lambda x:x, l)[0]zx = [x for x in l][0]zx = map(f, 'abc')[0][1]zx = list(map(f, 'abc'))[0][1]r;   r<   r   r   r   Útest_map_trailersç  s    zTest_map.test_map_trailersc                 C   s   d}d}|   ||¡ d S )Nzx = map(f, 'abc')   #   fooz!x = list(map(f, 'abc'))   #   foor;   r<   r   r   r   rÓ   ø  s    zTest_map.test_trailing_commentc                 C   s   d}|   |d¡ d S )Nzx = map(None, a, b, c)z5cannot convert map(None, ...) with multiple argumentsr¯   rY   r   r   r   Ú!test_None_with_multiple_argumentsý  s    z*Test_map.test_None_with_multiple_argumentsc                 C   s~   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d}|   ||¡ d
}d}|  ||d¡ d S )Nzx = map(f, 'abc')zx = list(map(f, 'abc'))zx = len(map(f, 'abc', 'def'))z#x = len(list(map(f, 'abc', 'def')))zx = map(None, 'abc')zx = list('abc')z x = map(lambda x: x+1, range(4))zx = [x+1 for x in range(4)]z"x = map(lambda (x): x+1, range(4))zG
            foo()
            # foo
            map(f, x)
            zM
            foo()
            # foo
            list(map(f, x))
            zYou should use a for loop here)r   r#   r<   r   r   r   Útest_map_basic  s$    zTest_map.test_map_basicc                 C   s  d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d	}|   |¡ d
}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzb.join(map(f, 'abc'))z (a + foo(5)).join(map(f, 'abc'))ziter(map(f, 'abc'))zlist(map(f, 'abc'))zlist(map(f, 'abc'))[0]zset(map(f, 'abc'))zset(map(f, 'abc')).pop()ztuple(map(f, 'abc'))zany(map(f, 'abc'))zall(map(f, 'abc'))zsum(map(f, 'abc'))zsorted(map(f, 'abc'))zsorted(map(f, 'abc'), key=blah)z"sorted(map(f, 'abc'), key=blah)[0]zenumerate(map(f, 'abc'))z!enumerate(map(f, 'abc'), start=1)zfor i in map(f, 'abc'): passz[x for x in map(f, 'abc')]z(x for x in map(f, 'abc'))r$   rÌ  r   r   r   Útest_map_nochange$  sL    

















zTest_map.test_map_nochangec                 C   s4   d}|   |¡ d}d}|  ||¡ d}|   |¡ d S )Nz:from future_builtins import spam, map, eggs; map(f, 'ham')z9from future_builtins import spam, eggs; x = map(f, 'abc')z?from future_builtins import spam, eggs; x = list(map(f, 'abc'))z,from future_builtins import *; map(f, 'ham')r…   re   r   r   r   rÎ  L  s    
zTest_map.test_future_builtins)r7   r*   r8   r	   r   rp   rÐ  rÓ   rÑ  rÒ  rÓ  rÎ  r  r   r   r  r   rÏ  Û  s   "(rÏ  c                       s@   e Zd ZdZ‡ fdd„Zdd„ Zdd„ Zdd	„ Zd
d„ Z‡  Z	S )ÚTest_zipÚzipc                    s&   |   d| |¡ tt| ƒ ||¡ d S )Nz!from future_builtins import zip; )r"   r
  rÔ  r   r<   r  r   r   r   Z  s    zTest_zip.checkc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nz	x = zip()zx = list(zip())zx = zip(a, b, c)zx = list(zip(a, b, c))zx = len(zip(a, b))zx = len(list(zip(a, b)))r;   r<   r   r   r   Útest_zip_basic^  s    zTest_zip.test_zip_basicc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzx = zip(a, b, c)[0]zx = list(zip(a, b, c))[0]zx = zip(a, b, c)[0][1]zx = list(zip(a, b, c))[0][1]r;   r<   r   r   r   Útest_zip_trailersk  s    zTest_zip.test_zip_trailersc                 C   s  d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d	}|   |¡ d
}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzb.join(zip(a, b))z(a + foo(5)).join(zip(a, b))ziter(zip(a, b))zlist(zip(a, b))zlist(zip(a, b))[0]zset(zip(a, b))zset(zip(a, b)).pop()ztuple(zip(a, b))zany(zip(a, b))zall(zip(a, b))zsum(zip(a, b))zsorted(zip(a, b))zsorted(zip(a, b), key=blah)zsorted(zip(a, b), key=blah)[0]zenumerate(zip(a, b))zenumerate(zip(a, b), start=1)zfor i in zip(a, b): passz[x for x in zip(a, b)]z(x for x in zip(a, b))r$   rÌ  r   r   r   Útest_zip_nochanget  sL    

















zTest_zip.test_zip_nochangec                 C   s4   d}|   |¡ d}d}|  ||¡ d}|   |¡ d S )Nz6from future_builtins import spam, zip, eggs; zip(a, b)z5from future_builtins import spam, eggs; x = zip(a, b)z;from future_builtins import spam, eggs; x = list(zip(a, b))z(from future_builtins import *; zip(a, b)r…   re   r   r   r   rÎ  œ  s    
zTest_zip.test_future_builtins)
r7   r*   r8   r	   r   rÖ  r×  rØ  rÎ  r  r   r   r  r   rÔ  W  s   	(rÔ  c                   @   s   e Zd ZdZdd„ ZdS )ÚTest_standarderrorZstandarderrorc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzx =    StandardError()zx =    Exception()zx = StandardError(a, b, c)zx = Exception(a, b, c)zf(2 + StandardError(a, b, c))zf(2 + Exception(a, b, c))r;   r<   r   r   r   rj   ª  s    zTest_standarderror.testN)r7   r*   r8   r	   rj   r   r   r   r   rÙ  §  s   rÙ  c                   @   s   e Zd ZdZdd„ ZdS )Ú
Test_typesÚtypesc                 C   s   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d}|   ||¡ d
}d}|   ||¡ d}d}|   ||¡ d S )Nztypes.StringTypeÚbytesztypes.DictTyperÒ   ztypes . IntTypeÚintztypes.ListTyper´  ztypes.LongTypeztypes.NoneTypez
type(None)ztypes.StringTypesz(str,)r;   r<   r   r   r   Útest_basic_types_convertº  s*    z#Test_types.test_basic_types_convertN)r7   r*   r8   r	   rÞ  r   r   r   r   rÚ  ·  s   rÚ  c                   @   s    e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&S )'ÚTest_idiomsZidiomsc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzwhile 1: foo()zwhile True: foo()zwhile   1: foo()zwhile   True: foo()z8
            while 1:
                foo()
            z;
            while True:
                foo()
            r;   r<   r   r   r   Ú
test_whileÚ  s    zTest_idioms.test_whilec                 C   s<   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzwhile 11: foo()zwhile 0: foo()zwhile foo(): foo()zwhile []: foo()r$   rY   r   r   r   Útest_while_unchangedí  s    


z Test_idioms.test_while_unchangedc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x) == Túisinstance(x, T)zif   type(x) == T: passúif   isinstance(x, T): passr;   r<   r   r   r   Útest_eq_simpleú  s    zTest_idioms.test_eq_simplec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )NzT == type(x)râ  zif   T == type(x): passrã  r;   r<   r   r   r   Útest_eq_reverse  s    zTest_idioms.test_eq_reversec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x+y) == d.get('T')úisinstance(x+y, d.get('T'))ztype(   x  +  y) == d.get('T')úisinstance(x  +  y, d.get('T'))r;   r<   r   r   r   Útest_eq_expression  s    zTest_idioms.test_eq_expressionc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x) is Trâ  zif   type(x) is T: passrã  r;   r<   r   r   r   Útest_is_simple  s    zTest_idioms.test_is_simplec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )NzT is type(x)râ  zif   T is type(x): passrã  r;   r<   r   r   r   Útest_is_reverse  s    zTest_idioms.test_is_reversec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x+y) is d.get('T')ræ  ztype(   x  +  y) is d.get('T')rç  r;   r<   r   r   r   Útest_is_expression'  s    zTest_idioms.test_is_expressionc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x) is not Túnot isinstance(x, T)zif   type(x) is not T: passúif   not isinstance(x, T): passr;   r<   r   r   r   Útest_is_not_simple0  s    zTest_idioms.test_is_not_simplec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )NzT is not type(x)rì  zif   T is not type(x): passrí  r;   r<   r   r   r   Útest_is_not_reverse9  s    zTest_idioms.test_is_not_reversec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x+y) is not d.get('T')únot isinstance(x+y, d.get('T'))z"type(   x  +  y) is not d.get('T')ú#not isinstance(x  +  y, d.get('T'))r;   r<   r   r   r   Útest_is_not_expressionB  s    z"Test_idioms.test_is_not_expressionc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x) != Trì  zif   type(x) != T: passrí  r;   r<   r   r   r   Útest_ne_simpleK  s    zTest_idioms.test_ne_simplec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )NzT != type(x)rì  zif   T != type(x): passrí  r;   r<   r   r   r   Útest_ne_reverseT  s    zTest_idioms.test_ne_reversec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nztype(x+y) != d.get('T')rð  ztype(   x  +  y) != d.get('T')rñ  r;   r<   r   r   r   Útest_ne_expression]  s    zTest_idioms.test_ne_expressionc                 C   s   d}|   |¡ d S )Nztype(x).__name__r$   rÌ  r   r   r   Útest_type_unchangedf  s    zTest_idioms.test_type_unchangedc                 C   s¤   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )NzM
            v = list(t)
            v.sort()
            foo(v)
            ú:
            v = sorted(t)
            foo(v)
            zV
            v = list(foo(b) + d)
            v.sort()
            foo(v)
            úC
            v = sorted(foo(b) + d)
            foo(v)
            zn
            while x:
                v = list(t)
                v.sort()
                foo(v)
            úW
            while x:
                v = sorted(t)
                foo(v)
            z_
            v = list(t)
            # foo
            v.sort()
            foo(v)
            úL
            v = sorted(t)
            # foo
            foo(v)
            zP
            v = list(   t)
            v.sort()
            foo(v)
            z=
            v = sorted(   t)
            foo(v)
            zl
            try:
                m = list(s)
                m.sort()
            except: pass
            zU
            try:
                m = sorted(s)
            except: pass
            z‚
            try:
                m = list(s)
                # foo
                m.sort()
            except: pass
            zk
            try:
                m = sorted(s)
                # foo
            except: pass
            zI
            m = list(s)
            # more comments
            m.sort()z6
            m = sorted(s)
            # more commentsr;   r<   r   r   r   Útest_sort_list_callj  s0    zTest_idioms.test_sort_list_callc                 C   s   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )NzG
            v = t
            v.sort()
            foo(v)
            r÷  zL
            v = foo(b)
            v.sort()
            foo(v)
            z?
            v = sorted(foo(b))
            foo(v)
            zN
            v = b.keys()
            v.sort()
            foo(v)
            zA
            v = sorted(b.keys())
            foo(v)
            zP
            v = foo(b) + d
            v.sort()
            foo(v)
            rø  zh
            while x:
                v = t
                v.sort()
                foo(v)
            rù  zY
            v = t
            # foo
            v.sort()
            foo(v)
            rú  zI
            v =   t
            v.sort()
            foo(v)
            z<
            v =   sorted(t)
            foo(v)
            r;   r<   r   r   r   Útest_sort_simple_exprÎ  s*    z!Test_idioms.test_sort_simple_exprc                 C   s    d}|   |¡ d}|   |¡ d S )NzM
            v = list(t)
            w.sort()
            foo(w)
            zN
            v = list(t)
            v.sort(u)
            foo(v)
            r$   rY   r   r   r   Útest_sort_unchanged   s    
zTest_idioms.test_sort_unchangedN)r7   r*   r8   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&   												dRrß  c                   @   s   e Zd ZdZdd„ ZdS )ÚTest_basestringÚ
basestringc                 C   s   d}d}|   ||¡ d S )Nzisinstance(x, basestring)zisinstance(x, str)r;   r<   r   r   r   Útest_basestring2  s    zTest_basestring.test_basestringN)r7   r*   r8   r	   r   r   r   r   r   rþ  /  s   rþ  c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚTest_bufferÚbufferc                 C   s   d}d}|   ||¡ d S )Nzx = buffer(y)zx = memoryview(y)r;   r<   r   r   r   Útest_buffer:  s    zTest_buffer.test_bufferc                 C   s   d}d}|   ||¡ d S )Nzbuffer(y)[4:5]zmemoryview(y)[4:5]r;   r<   r   r   r   Útest_slicing?  s    zTest_buffer.test_slicingN)r7   r*   r8   r	   r  r  r   r   r   r   r  7  s   r  c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚTest_futureÚfuturec                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzfrom __future__ import bracesr   z'# comment
from __future__ import bracesz
# comment
z'from __future__ import braces
# commentz

# commentr;   r<   r   r   r   Útest_futureG  s    zTest_future.test_futurec                 C   s   |   d¡ d S )Nrw   ©r6   rÐ   r   r   r   Útest_run_orderT  s    zTest_future.test_run_orderN)r7   r*   r8   r	   r  r	  r   r   r   r   r  D  s   r  c                   @   sP   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTest_itertoolsÚ	itertoolsc                 C   s<   dD ]2}dD ](}||d |  }|| }|   ||¡ qqd S )N)z
itertools.r   )rK  rÉ  rÕ  Úir;   )r   r   r   r  rÆ  r=   r>   r   r   r   ÚcheckallZ  s
    zTest_itertools.checkallc                 C   s   d}d}|   ||¡ d S )Nzitertools.izip(a, b)z	zip(a, b)r;   r<   r   r   r   Útest_0d  s    zTest_itertools.test_0c                 C   s   d}d}|   ||¡ d S )Nz%s(f, a)©r  r<   r   r   r   rC   k  s    zTest_itertools.test_1c                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzitertools.ifilterfalse(a, b)zitertools.filterfalse(a, b)zitertools.izip_longest(a, b)zitertools.zip_longest(a, b)r;   r<   r   r   r   Útest_qualifiedp  s    zTest_itertools.test_qualifiedc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzifilterfalse(a, b)zfilterfalse(a, b)zizip_longest(a, b)zzip_longest(a, b)r;   r<   r   r   r   rD   y  s    zTest_itertools.test_2c                 C   s   d}d}|   ||¡ d S )Nz    %s(f, a)r  r<   r   r   r   rf   ‚  s    zTest_itertools.test_space_1c                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nz     itertools.ifilterfalse(a, b)z    itertools.filterfalse(a, b)z     itertools.izip_longest(a, b)z    itertools.zip_longest(a, b)r;   r<   r   r   r   rg   ‡  s    zTest_itertools.test_space_2c                 C   s   |   ddd¡ d S )NrK  rÕ  rÉ  r  rÐ   r   r   r   r	    s    zTest_itertools.test_run_orderN)r7   r*   r8   r	   r  r  rC   r  rD   rf   rg   r	  r   r   r   r   r
  W  s   
			r
  c                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )ÚTest_itertools_importsZitertools_importsc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nz%from itertools import imap, izip, fooúfrom itertools import fooz*from itertools import bar, imap, izip, foozfrom itertools import bar, fooz'from itertools import chain, imap, izipzfrom itertools import chainr;   r<   r   r   r   Útest_reduced—  s    z#Test_itertools_imports.test_reducedc                 C   s   d}d}|   ||¡ d S )Nz%#foo
from itertools import imap, izipz#foo
r;   r<   r   r   r   Útest_comments¤  s    z$Test_itertools_imports.test_commentsc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nz from itertools import imap, izipr   zfrom itertools import izipr;   r<   r   r   r   Ú	test_none©  s    z Test_itertools_imports.test_nonec                 C   sb   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}|  |¡ d S )Nz-from itertools import izip, bar as bang, imapz!from itertools import bar as bangz-from itertools import izip as _zip, imap, barzfrom itertools import barz"from itertools import imap as _mapr   z0from itertools import imap as _map, izip as _zip)r   r"   )r   r=   r>   rZ   r   r   r   Útest_import_as²  s    z%Test_itertools_imports.test_import_asc                 C   sn   dD ]d}d|f }d|f }|   ||¡ d|f }d|f }|   ||¡ d|f }d|f }|   ||¡ qd S )N)ÚfilterfalseÚzip_longestzfrom itertools import i%szfrom itertools import %sz$from itertools import imap, i%s, foozfrom itertools import %s, fooz#from itertools import bar, i%s, fooz"from itertools import bar, %s, foor;   )r   r  r=   r>   r   r   r   Útest_ifilter_and_zip_longestÆ  s    





z3Test_itertools_imports.test_ifilter_and_zip_longestc                 C   s   d}|   |¡ d S )Nzfrom itertools import *r$   rY   r   r   r   Útest_import_starÔ  s    z'Test_itertools_imports.test_import_starc                 C   s   d}|   |¡ d S )Nr  r$   rY   r   r   r   rm   Ù  s    z%Test_itertools_imports.test_unchangedN)r7   r*   r8   r	   r  r  r  r  r  r  rm   r   r   r   r   r  ”  s   	r  c                       s´   e Zd ZdZ‡ fdd„Zdd„ Z‡ fdd„Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Z‡  ZS )(ÚTest_importrG  c                    sD   t tˆ ƒ ¡  g ˆ _tƒ ˆ _dˆ _‡ fdd„}ddlm} ||_	d S )NTc                    s   ˆ j  | ¡ ˆ jp| ˆ jv S r   )Úfiles_checkedrQ  Úalways_existsÚpresent_files©r  rÐ   r   r   Úfake_existsè  s    z&Test_import.setUp.<locals>.fake_existsr   ©Ú
fix_import)
r
  r  r   r  Úsetr  r  Úlib2to3.fixesr"  Úexists)r   r   r"  r  rÐ   r   r   á  s    zTest_import.setUpc                 C   s   ddl m} tjj|_d S )Nr   r!  )r$  r"  ÚosÚpathr%  )r   r"  r   r   r   ÚtearDownï  s    zTest_import.tearDownc                    s2   d| _ tt| ƒ ||¡ d| _ tt| ƒ |¡ d S )NTF)r  r
  r  r   r"   r<   r  r   r   Ú
check_bothó  s    zTest_import.check_bothc                    s¸   dd„ }d| _ tdgƒ| _dtjjdddd	f}|d
ƒd|dƒf}|D ]n‰ g | _ˆ | _|  d¡ tj 	ˆ ¡r|tj 	ˆ ¡d ‰ nd‰ t‡ fdd„|D ƒƒ}| 
d¡ |  t| jƒ|¡ qDd S )Nc                 S   s   t jj |  d¡¡S )Nú/)r&  r'  Úpathsepr    Úsplit)r'  r   r   r   Úpú  s    z)Test_import.test_files_checked.<locals>.pFú__init__.pyz.pyz.pycz.soz.slz.pydz/spam/eggs.pyzni.pyz../../shrubbery.pyz
import jamz/jamZjamc                 3   s   | ]}ˆ | V  qd S r   r   )r+   Úextr  r   r   Ú	<genexpr>  r.   z1Test_import.test_files_checked.<locals>.<genexpr>)r  r#  r  r&  r'  Úsepr  r   r"   ÚdirnameÚaddr   )r   r-  Zexpected_extensionsZnames_to_testZexpected_checksr   r  r   Útest_files_checkedù  s    

zTest_import.test_files_checkedc                 C   s$   d}d| _ tdgƒ| _|  |¡ d S )Nú
import barFúbar.py©r  r#  r  r"   rY   r   r   r   Útest_not_in_package  s    zTest_import.test_not_in_packagec                 C   s&   d}d| _ tddgƒ| _|  |¡ d S )Nz1from __future__ import absolute_import
import barFr.  r6  r7  rY   r   r   r   Ú!test_with_absolute_import_enabled  s    z-Test_import.test_with_absolute_import_enabledc                 C   s,   d}d}d| _ tddgƒ| _|  ||¡ d S )Nr5  úfrom . import barFr.  r6  )r  r#  r  r   r<   r   r   r   Útest_in_package  s
    zTest_import.test_in_packagec                 C   s4   d}d}d| _ tddtjj gƒ| _|  ||¡ d S )Nr5  r:  Fr.  Zbar)r  r#  r&  r'  r1  r  r   r<   r   r   r   Útest_import_from_package$  s
    z$Test_import.test_import_from_packagec                 C   s   d}|   |¡ d S )Nr:  r$   rY   r   r   r   Útest_already_relative_import+  s    z(Test_import.test_already_relative_importc                 C   s   d}d}|   ||¡ d S )Nzimport bar # Foozfrom . import bar # Foor;   r<   r   r   r   Útest_comments_and_indent/  s    z$Test_import.test_comments_and_indentc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzfrom foo import bar, bazzfrom .foo import bar, bazzfrom foo import barzfrom .foo import barzfrom foo import (bar, baz)zfrom .foo import (bar, baz)©r)  r<   r   r   r   Ú	test_from4  s    zTest_import.test_fromc                 C   s   d}d}|   ||¡ d S )Nzfrom green.eggs import hamzfrom .green.eggs import hamr?  r<   r   r   r   Útest_dotted_fromA  s    zTest_import.test_dotted_fromc                 C   s   d}d}|   ||¡ d S )Nz"from green.eggs import ham as spamz#from .green.eggs import ham as spamr?  r<   r   r   r   Útest_from_asF  s    zTest_import.test_from_asc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )	Nz
import foozfrom . import fooúimport foo, barzfrom . import foo, barzimport foo, bar, xzfrom . import foo, bar, xzimport x, y, zzfrom . import x, y, zr?  r<   r   r   r   Útest_importK  s    zTest_import.test_importc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzimport foo as xzfrom . import foo as xzimport a as b, b as c, c as dz$from . import a as b, b as c, c as dr?  r<   r   r   r   r  \  s    zTest_import.test_import_asc                 C   s(   d| _ tddgƒ| _d}|  |d¡ d S )NFzfoo.pyr.  rC  z#absolute and local imports together)r  r#  r  r&   rY   r   r   r   Útest_local_and_absolutee  s    z#Test_import.test_local_and_absolutec                 C   s   d}d}|   ||¡ d S )Nzimport foo.barzfrom . import foo.barr?  r<   r   r   r   Útest_dotted_importl  s    zTest_import.test_dotted_importc                 C   s   d}d}|   ||¡ d S )Nzimport foo.bar as bangzfrom . import foo.bar as bangr?  r<   r   r   r   Útest_dotted_import_asq  s    z!Test_import.test_dotted_import_asc                 C   s   d}d}|   ||¡ d S )Nz1
        # prefix
        import foo.bar
        z8
        # prefix
        from . import foo.bar
        r?  r<   r   r   r   Útest_prefixv  s    zTest_import.test_prefix)r7   r*   r8   r	   r   r(  r)  r4  r8  r9  r;  r<  r=  r>  r@  rA  rB  rD  r  rE  rF  rG  rH  r  r   r   r  r   r  Þ  s(   	r  c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTest_set_literalZset_literalc                 C   s°   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}|   ||¡ d}d}|   ||¡ d	}|   ||¡ d
}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzset([1, 2, 3])z	{1, 2, 3}zset((1, 2, 3))z	set((1,))ú{1}zset([1])zset((a, b))z{a, b}zset([a, b])zset((a*234, f(args=23)))z{a*234, f(args=23)}zset([a*23, f(23)])z{a*23, f(23)}zset([a-234**23])z{a-234**23}r;   r<   r   r   r   r?   †  s2    zTest_set_literal.test_basicc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )	Nzset([x for x in y])z{x for x in y}zset([x for x in y if x == m])z{x for x in y if x == m}zset([x for x in y for a in b])z{x for x in y for a in b}zset([f(x) - 23 for x in y])z{f(x) - 23 for x in y}r;   r<   r   r   r   Útest_listcomps©  s    zTest_set_literal.test_listcompsc                 C   s   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzset( [1, 2])z{1, 2}zset([1 ,  2])z{1 ,  2}z
set([ 1 ])z{ 1 }z
set( [1] )rJ  zset([  1,  2  ])z{  1,  2  }zset([x  for x in y ])z{x  for x in y }z<set(
                   [1, 2]
               )
            z{1, 2}
r;   r<   r   r   r   r»  º  s*    z Test_set_literal.test_whitespacec                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )Nzset((1, 2)) # Hiz{1, 2} # HizZ
            # Foo
            set( # Bar
               (1, 2)
            )
            z2
            # Foo
            {1, 2}
            r;   r<   r   r   r   r  Ú  s    zTest_set_literal.test_commentsc                 C   sX   d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d}|   |¡ d S )Nzset()zset(a)zset(a, b, c)zset(x for x in y)zset(x for x in y if z)zset(a*823-23**2 + f(23))r$   rY   r   r   r   rm   ì  s    




zTest_set_literal.test_unchangedN)	r7   r*   r8   r	   r?   rK  r»  r  rm   r   r   r   r   rI  ‚  s   # rI  c                   @   s@   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dS )ÚTest_sys_excZsys_excc                 C   s   d}d}|   ||¡ d S )Nzsys.exc_typezsys.exc_info()[0]r;   r<   r   r   r   r    s    zTest_sys_exc.test_0c                 C   s   d}d}|   ||¡ d S )Nzsys.exc_valuezsys.exc_info()[1]r;   r<   r   r   r   rC   	  s    zTest_sys_exc.test_1c                 C   s   d}d}|   ||¡ d S )Nzsys.exc_tracebackzsys.exc_info()[2]r;   r<   r   r   r   rD     s    zTest_sys_exc.test_2c                 C   s   d}d}|   ||¡ d S )Nzsys.exc_type # Foozsys.exc_info()[0] # Foor;   r<   r   r   r   rE     s    zTest_sys_exc.test_3c                 C   s   d}d}|   ||¡ d S )Nzsys.  exc_typezsys.  exc_info()[0]r;   r<   r   r   r   rF     s    zTest_sys_exc.test_4c                 C   s   d}d}|   ||¡ d S )Nzsys  .exc_typezsys  .exc_info()[0]r;   r<   r   r   r   rG     s    zTest_sys_exc.test_5N)
r7   r*   r8   r	   r  rC   rD   rE   rF   rG   r   r   r   r   rL    s   rL  c                   @   sp   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú
Test_parenZparenc                 C   s   d}d}|   ||¡ d S )Nz[i for i in 1, 2 ]z[i for i in (1, 2) ]r;   r<   r   r   r   r  &  s    zTest_paren.test_0c                 C   s   d}d}|   ||¡ d S )Nz[i for i in 1, 2, ]z[i for i in (1, 2,) ]r;   r<   r   r   r   rC   +  s    zTest_paren.test_1c                 C   s   d}d}|   ||¡ d S )Nz[i for i  in     1, 2 ]z[i for i  in     (1, 2) ]r;   r<   r   r   r   rD   0  s    zTest_paren.test_2c                 C   s   d}d}|   ||¡ d S )Nz[i for i in 1, 2 if i]z[i for i in (1, 2) if i]r;   r<   r   r   r   rE   5  s    zTest_paren.test_3c                 C   s   d}d}|   ||¡ d S )Nz[i for i in 1,    2    ]z[i for i in (1,    2)    ]r;   r<   r   r   r   rF   :  s    zTest_paren.test_4c                 C   s   d}d}|   ||¡ d S )Nz(i for i in 1, 2)ú(i for i in (1, 2))r;   r<   r   r   r   rG   ?  s    zTest_paren.test_5c                 C   s   d}d}|   ||¡ d S )Nz(i for i in 1   ,2   if i)z(i for i in (1   ,2)   if i)r;   r<   r   r   r   rH   D  s    zTest_paren.test_6c                 C   s   d}|   |¡ d S )Nz[i for i in (1, 2)]r$   rY   r   r   r   Útest_unchanged_0I  s    zTest_paren.test_unchanged_0c                 C   s   d}|   |¡ d S )Nz[i for i in foo()]r$   rY   r   r   r   r[   M  s    zTest_paren.test_unchanged_1c                 C   s   d}|   |¡ d S )Nz[i for i in (1, 2) if nothing]r$   rY   r   r   r   r\   Q  s    zTest_paren.test_unchanged_2c                 C   s   d}|   |¡ d S )NrN  r$   rY   r   r   r   r]   U  s    zTest_paren.test_unchanged_3c                 C   s   d}|   |¡ d S )Nz[i for i in m]r$   rY   r   r   r   r^   Y  s    zTest_paren.test_unchanged_4N)r7   r*   r8   r	   r  rC   rD   rE   rF   rG   rH   rO  r[   r\   r]   r^   r   r   r   r   rM  #  s   rM  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTest_metaclassÚ	metaclassc                 C   sf   |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ |   d¡ d}|   |¡ d	}|   |¡ d S )
Nzclass X(): passzclass X(object): passzclass X(object1, object2): passz(class X(object1, object2, object3): passzclass X(metaclass=Meta): passz'class X(b, arg=23, metclass=Meta): passz2class X(b, arg=23, metaclass=Meta, other=42): passzD
        class X:
            def __metaclass__(self): pass
        z1
        class X:
            a[23] = 74
        r$   rY   r   r   r   rm   a  s    







zTest_metaclass.test_unchangedc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )NzQ
        class X:
            # hi
            __metaclass__ = AppleMeta
        zQ
        class X(metaclass=AppleMeta):
            # hi
            pass
        zR
        class X:
            __metaclass__ = Meta
            # Bedtime!
        zR
        class X(metaclass=Meta):
            pass
            # Bedtime!
        r;   r<   r   r   r   r  v  s    zTest_metaclass.test_commentsc                 C   sà   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d}|   ||¡ d
}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )NzK
        class X():
            __metaclass__ = Q
            pass
        z8
        class X(metaclass=Q):
            pass
        z"class X(object): __metaclass__ = Qz"class X(object, metaclass=Q): passzW
        class X(object):
            __metaclass__ = Meta
            bar = 7
        zF
        class X(object, metaclass=Meta):
            bar = 7
        zJ
        class X:
            __metaclass__ = Meta; x = 4; g = 23
        zD
        class X(metaclass=Meta):
            x = 4; g = 23
        zW
        class X(object):
            bar = 7
            __metaclass__ = Meta
        zl
        class X():
            __metaclass__ = A
            __metaclass__ = B
            bar = 7
        z;
        class X(metaclass=B):
            bar = 7
        z[
        class X(clsA, clsB):
            __metaclass__ = Meta
            bar = 7
        zJ
        class X(clsA, clsB, metaclass=Meta):
            bar = 7
        z(class m(a, arg=23): __metaclass__ = Metaz(class m(a, arg=23, metaclass=Meta): passzN
        class X(expression(2 + 4)):
            __metaclass__ = Meta
        zN
        class X(expression(2 + 4), metaclass=Meta):
            pass
        zT
        class X(expression(2 + 4), x**4):
            __metaclass__ = Meta
        zT
        class X(expression(2 + 4), x**4, metaclass=Meta):
            pass
        zT
        class X:
            __metaclass__ = Meta
            save.py = 23
        zC
        class X(metaclass=Meta):
            save.py = 23
        r;   r<   r   r   r   Ú	test_meta  sB    zTest_metaclass.test_metaN)r7   r*   r8   r	   rm   r  rR  r   r   r   r   rP  ]  s   rP  c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTest_getcwduZgetcwduc                 C   sT   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )	Nz
os.getcwduz	os.getcwdzos.getcwdu()úos.getcwd()zmeth = os.getcwduzmeth = os.getcwdzos.getcwdu(args)zos.getcwd(args)r;   r<   r   r   r   r?     s    zTest_getcwdu.test_basicc                 C   s   d}d}|   ||¡ d S )Nzos.getcwdu() # Foozos.getcwd() # Foor;   r<   r   r   r   rk     s    zTest_getcwdu.test_commentc                 C   s.   d}|   |¡ d}|   |¡ d}|   |¡ d S )NrT  z	getcwdu()zos.getcwdb()r$   rY   r   r   r   rm     s    

zTest_getcwdu.test_unchangedc                 C   s   d}d}|   ||¡ d S )Nz<
            if 1:
                os.getcwdu()
            z;
            if 1:
                os.getcwd()
            r;   r<   r   r   r   Útest_indentation&  s    zTest_getcwdu.test_indentationc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzos .getcwdu()zos .getcwd()zos.  getcwduzos.  getcwdzos.getcwdu (  )zos.getcwd (  )r;   r<   r   r   r   Útest_multilation1  s    zTest_getcwdu.test_multilationN)	r7   r*   r8   r	   r?   rk   rm   rU  rV  r   r   r   r   rS    s   
rS  c                   @   s€   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_operatorÚoperatorc                 C   s   d}d}|   ||¡ d S )Nzoperator.isCallable(x)zcallable(x)r;   r<   r   r   r   Útest_operator_isCallableC  s    z&Test_operator.test_operator_isCallablec                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzoperator.sequenceIncludes(x, y)zoperator.contains(x, y)z operator .sequenceIncludes(x, y)zoperator .contains(x, y)z!operator.  sequenceIncludes(x, y)zoperator.  contains(x, y)r;   r<   r   r   r   Útest_operator_sequenceIncludesH  s    z,Test_operator.test_operator_sequenceIncludesc                 C   s   d}d}|   ||¡ d S )Nzoperator.isSequenceType(x)z>import collections.abc
isinstance(x, collections.abc.Sequence)r;   r<   r   r   r   Útest_operator_isSequenceTypeU  s    z*Test_operator.test_operator_isSequenceTypec                 C   s   d}d}|   ||¡ d S )Nzoperator.isMappingType(x)z=import collections.abc
isinstance(x, collections.abc.Mapping)r;   r<   r   r   r   Útest_operator_isMappingTypeZ  s    z)Test_operator.test_operator_isMappingTypec                 C   s   d}d}|   ||¡ d S )Nzoperator.isNumberType(x)z,import numbers
isinstance(x, numbers.Number)r;   r<   r   r   r   Útest_operator_isNumberType_  s    z(Test_operator.test_operator_isNumberTypec                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzoperator.repeat(x, n)zoperator.mul(x, n)zoperator .repeat(x, n)zoperator .mul(x, n)zoperator.  repeat(x, n)zoperator.  mul(x, n)r;   r<   r   r   r   Útest_operator_repeatd  s    z"Test_operator.test_operator_repeatc                 C   s@   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzoperator.irepeat(x, n)zoperator.imul(x, n)zoperator .irepeat(x, n)zoperator .imul(x, n)zoperator.  irepeat(x, n)zoperator.  imul(x, n)r;   r<   r   r   r   Útest_operator_irepeatq  s    z#Test_operator.test_operator_irepeatc                 C   s   d}d}|   ||¡ d S )NzisCallable(x)z"You should use 'callable(x)' here.r¯   ©r   rZ   Útr   r   r   Útest_bare_isCallable~  s    z"Test_operator.test_bare_isCallablec                 C   s   d}d}|   ||¡ d S )NzsequenceIncludes(x, y)z.You should use 'operator.contains(x, y)' here.r¯   r`  r   r   r   Útest_bare_sequenceIncludesƒ  s    z(Test_operator.test_bare_sequenceIncludesc                 C   s   d}d}|   ||¡ d S )NzisSequenceType(z)z>You should use 'isinstance(z, collections.abc.Sequence)' here.r¯   r`  r   r   r   Ú!test_bare_operator_isSequenceTypeˆ  s    z/Test_operator.test_bare_operator_isSequenceTypec                 C   s   d}d}|   ||¡ d S )NzisMappingType(x)z=You should use 'isinstance(x, collections.abc.Mapping)' here.r¯   r`  r   r   r   Ú test_bare_operator_isMappingType  s    z.Test_operator.test_bare_operator_isMappingTypec                 C   s   d}d}|   ||¡ d S )NzisNumberType(y)z4You should use 'isinstance(y, numbers.Number)' here.r¯   r`  r   r   r   Útest_bare_operator_isNumberType’  s    z-Test_operator.test_bare_operator_isNumberTypec                 C   s   d}d}|   ||¡ d S )Nzrepeat(x, n)z)You should use 'operator.mul(x, n)' here.r¯   r`  r   r   r   Útest_bare_operator_repeat—  s    z'Test_operator.test_bare_operator_repeatc                 C   s   d}d}|   ||¡ d S )Nzirepeat(y, 187)z,You should use 'operator.imul(y, 187)' here.r¯   r`  r   r   r   Útest_bare_operator_irepeatœ  s    z(Test_operator.test_bare_operator_irepeatN)r7   r*   r8   r	   rY  rZ  r[  r\  r]  r^  r_  rb  rc  rd  re  rf  rg  rh  r   r   r   r   rW  ?  s   rW  c                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )ÚTest_exitfuncZexitfuncc                 C   s   d}d}|   ||¡ d S )NzI
            import sys
            sys.exitfunc = my_atexit
            ze
            import sys
            import atexit
            atexit.register(my_atexit)
            r;   r<   r   r   r   r˜   ¦  s    zTest_exitfunc.test_simplec                 C   s   d}d}|   ||¡ d S )NzO
            import sys, crumbs
            sys.exitfunc = my_func
            zY
            import sys, crumbs, atexit
            atexit.register(my_func)
            r;   r<   r   r   r   Útest_names_import²  s    zTest_exitfunc.test_names_importc                 C   s   d}d}|   ||¡ d S )Nzh
            import sys
            sys.exitfunc = do(d)/a()+complex(f=23, g=23)*expression
            z„
            import sys
            import atexit
            atexit.register(do(d)/a()+complex(f=23, g=23)*expression)
            r;   r<   r   r   r   Útest_complex_expression½  s    z%Test_exitfunc.test_complex_expressionc                 C   s,   d}d}|   ||¡ d}d}|   ||¡ d S )NzN
            import sys # Foo
            sys.exitfunc = f # Blah
            zj
            import sys
            import atexit # Foo
            atexit.register(f) # Blah
            zo
            import apples, sys, crumbs, larry # Pleasant comments
            sys.exitfunc = func
            zy
            import apples, sys, crumbs, larry, atexit # Pleasant comments
            atexit.register(func)
            r;   r<   r   r   r   r  É  s    zTest_exitfunc.test_commentsc                 C   s   d}d}|   ||¡ d S )Nz]
            import sys
            def f():
                sys.exitfunc = func
            zz
            import sys
            import atexit
            def f():
                atexit.register(func)
             r;   r<   r   r   r   Útest_in_a_functionß  s    z Test_exitfunc.test_in_a_functionc                 C   s   d}d}d}|   |||¡ d S )Nzsys.exitfunc = fzatexit.register(f)zKCan't find sys import; Please add an atexit import at the top of your file.r%   )r   r=   r>   Úmsgr   r   r   Útest_no_sys_importí  s    z Test_exitfunc.test_no_sys_importc                 C   s   d}|   |¡ d S )Nzf(sys.exitfunc)r$   rY   r   r   r   rm   õ  s    zTest_exitfunc.test_unchangedN)r7   r*   r8   r	   r˜   rj  rk  r  rl  rn  rm   r   r   r   r   ri  ¢  s   ri  c                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTest_assertsZassertsc                 C   s&   g d¢}|D ]\}}|   ||¡ qd S )N))zself.assert_(True)úself.assertTrue(True))zself.assertEquals(2, 2)úself.assertEqual(2, 2))zself.assertNotEquals(2, 3)úself.assertNotEqual(2, 3))zself.assertAlmostEquals(2, 3)úself.assertAlmostEqual(2, 3))z self.assertNotAlmostEquals(2, 8)úself.assertNotAlmostEqual(2, 8))zself.failUnlessEqual(2, 2)rq  )zself.failIfEqual(2, 3)rr  )z self.failUnlessAlmostEqual(2, 3)rs  )zself.failIfAlmostEqual(2, 8)rt  )zself.failUnless(True)rp  )zself.failUnlessRaises(foo)zself.assertRaises(foo))zself.failIf(False)zself.assertFalse(False)r;   )r   Ztestsr=   r>   r   r   r   Útest_deprecated_namesþ  s    z"Test_asserts.test_deprecated_namesc                 C   s   d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d	}d
}|   ||¡ d}d}|   ||¡ d}d}|   ||¡ d S )Nzeq = self.assertEqualszeq = self.assertEqualz#self.assertEquals(2, 3, msg="fail")z"self.assertEqual(2, 3, msg="fail")z)self.assertEquals(2, 3, msg="fail") # fooz(self.assertEqual(2, 3, msg="fail") # foozself.assertEquals (2, 3)zself.assertEqual (2, 3)z  self.assertEquals (2, 3)z  self.assertEqual (2, 3)z0with self.failUnlessRaises(Explosion): explode()z,with self.assertRaises(Explosion): explode()z6with self.failUnlessRaises(Explosion) as cm: explode()z2with self.assertRaises(Explosion) as cm: explode()r;   r<   r   r   r   Útest_variants  s*    zTest_asserts.test_variantsc                 C   s   |   d¡ |   d¡ d S )Nzself.assertEqualsOnSaturdayz!self.assertEqualsOnSaturday(3, 5)r$   rÐ   r   r   r   rm   '  s    
zTest_asserts.test_unchangedN)r7   r*   r8   r	   ru  rv  rm   r   r   r   r   ro  ú  s   ro  )CÚ__doc__r&  r  r   rX  r   r   r   r   Zlib2to3.testsr   ZTestCaser   r9   rB   rN   rh   rn   rq   rv   r‡   rŽ   r•   r¤   r»   rÈ   rÊ   rÍ   rÑ   rý   r	  r  r  r$  r&  r5  r=  r@  rI  rX  r]  rm  rp  r›  rŸ  r°  r¹  rÈ  rÏ  rÔ  rÙ  rÚ  rß  rþ  r  r  r
  r  r  rI  rL  rM  rP  rS  rW  ri  ro  r   r   r   r   Ú<module>   s   9: ;1#j3&  }.& gH/+br/ <    ]4B.Oh|P   Z=J %": &=cX