o
    ”7?es  ã                   @   sŠ   d Z ddlmZ ddlmZ ddlmZ ddlZddlZddlZddlm	Z	 ddl
mZ G dd	„ d	ejƒZd
d„ ZedkrCe ¡  dS dS )zTests for augment.inline.é    )Úabsolute_import)Údivision)Úprint_functionN)Úinline)Ú
test_utilsc                   @   sD   e 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 )Ú
InlineTestc                 C   ó0   d}t  |¡}t |d¡ |  |t  d¡¡ d S )Nzx = 1
a = x
Úxza = 1
©ÚastÚparser   Úinline_nameÚcheckAstsEqual©ÚselfÚsrcÚt© r   úZ/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/pasta/augment/inline_test.pyÚtest_inline_simple   ó   
zInlineTest.test_inline_simplec                 C   r   )Nzx = y = z = 1
a = x + y
Úyzx = z = 1
a = x + 1
r
   r   r   r   r   Útest_inline_multiple_targets%   r   z'InlineTest.test_inline_multiple_targetsc                 C   s@   t  d¡}t  d¡}t |¡}t |d¡ |  |t |¡¡ d S )Nz[        CONSTANT = "foo"
        def a(b=CONSTANT):
          return b == CONSTANT
        z<        def a(b="foo"):
          return b == "foo"
        ZCONSTANT)ÚtextwrapÚdedentr   r   r   r   r   )r   r   Úexpectedr   r   r   r   Útest_inline_multiple_reads+   s
   


z%InlineTest.test_inline_multiple_readsc                 C   sT   t  d¡}t |¡}|  tjd¡ t |d¡ W d   ƒ d S 1 s#w   Y  d S )NzG        NOT_A_CONSTANT = "foo"
        NOT_A_CONSTANT += "bar"
        z"'NOT_A_CONSTANT' is not a constantZNOT_A_CONSTANT)r   r   r   r   ÚassertRaisesRegexpr   ÚInlineErrorr   r   r   r   r   Útest_inline_non_constant_fails9   s   

ÿ"þz)InlineTest.test_inline_non_constant_failsc                 C   sT   d}t  |¡}|  tjdt j ¡ t |d¡ W d   ƒ d S 1 s#w   Y  d S )Nzdef func(): pass
func()
z('func' is not a constant; it has type %rÚfunc)r   r   r   r   r   ÚFunctionDefr   r   r   r   r   Útest_inline_function_failsC   s   
þ"ýz%InlineTest.test_inline_function_failsc                 C   óN   d}t  |¡}|  tjd¡ t |d¡ W d   ƒ d S 1 s w   Y  d S )Nzif define:
  x = 1
a = x
z'x' is not a top-level namer	   ©r   r   r   r   r   r   r   r   r   r   Útest_inline_conditional_failsL   s   
ÿ"þz(InlineTest.test_inline_conditional_failsc                 C   r#   )NzCONSTANT1, CONSTANT2 = valuesz,'CONSTANT1' is not declared in an assignmentZ	CONSTANT1r$   r   r   r   r   Útest_inline_non_assign_failsS   s   
ÿ"þz'InlineTest.test_inline_non_assign_failsN)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r"   r%   r&   r   r   r   r   r      s    
	r   c                  C   s   t  ¡ } |  t  t¡¡ | S )N)ÚunittestZ	TestSuiteZaddTestsZ	makeSuiter   )Úresultr   r   r   Úsuite[   s   r,   Ú__main__)Ú__doc__Ú
__future__r   r   r   r   r   r*   Zpasta.augmentr   Z
pasta.baser   ZTestCaser   r,   r'   Úmainr   r   r   r   Ú<module>   s   >ÿ