a
    ,=ics  ã                   @   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r‚e ¡  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   s0   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   új/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pasta/augment/inline_test.pyÚtest_inline_simple   s    
zInlineTest.test_inline_simplec                 C   s0   d}t  |¡}t |d¡ |  |t  d¡¡ d S )Nzx = y = z = 1
a = x + y
Úyzx = z = 1
a = x + 1
r	   r   r   r   r   Útest_inline_multiple_targets%   s    
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   sR   t  d¡}t |¡}|  tjd¡ t |d¡ W d   ƒ n1 sD0    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   sR   d}t  |¡}|  tjdt j ¡ t |d¡ W d   ƒ n1 sD0    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   sL   d}t  |¡}|  tjd¡ t |d¡ W d   ƒ n1 s>0    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   sL   d}t  |¡}|  tjd¡ t |d¡ W d   ƒ n1 s>0    Y  d S )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   >