o
    DDi>                     @   sx   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 G dd deZG d	d
 d
eZG dd deZdS )    )AnyN)parse_statement)CSTNodeTest)	CodeRange)data_providerc                   @   s  e Zd Zeeeedfeddde	dddeeedeedfedd	de	dd
deejede
de
ddfeddde	dddeeeedfedfdeddeeeedeedfedfdeddeeejede
de
ddfedfdeddfdeddfddZedd ddfdeddfddZedd ddfdeddfddZdS ) 
AssignTestfoo5zfoo = 5N   r   )r      nodecodeparserexpected_positionbarzfoo = bar = 5)r       )whitespace_before_equalwhitespace_after_equalzfoo=5)r      zfoo = 5
zfoo = bar = 5
zfoo=5
kwargsreturnc                 K      | j di | d S N validate_nodeselfr   r   r   X/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_nodes/tests/test_assign.py
test_valid   s   ]zAssignTest.test_validc                   C   s   t jdt ddS )Nr   r	   targetsvalue)cstAssignIntegerr   r   r   r!   <lambda>r   s    zAssignTest.<lambda>zat least one AssignTargetget_nodeexpected_rec                 K   r   r   assert_invalidr   r   r   r!   test_invalido   s   	zAssignTest.test_invalidc                   C   s2   t jt jt dt  t ddgt ddS )Nx1leftoperatorrightyr#   )r&   r'   BinaryOperationNameAddr(   r   r   r   r!   r)   ~   s    z2Expected an instance of .*statement.AssignTarget.*c                 K   r   r   assert_invalid_typesr   r   r   r!   test_invalid_typesz   s   zAssignTest.test_invalid_types)__name__
__module____qualname__r   r&   r'   AssignTargetr8   r(   r   SimpleWhitespaceSimpleStatementLiner   r   r"   r/   r<   r   r   r   r!   r      s    

\r   c                   @   s  e Zd Zeeedeededdde	dddeedeedd	de	dd
deedee
edeeedfeddde	dddeejedejededde eddfdeddeejedejededdddfdeddeejedeje
edeeedfedde eddfdeddejedeje
edeeedfededdejededdedddde	dddeejedeje
edeeedfededdejededdeddfdeddfdeddfddZed d! d"d#fdeddfd$d%Zed&d! d'd#fdeddfd(d)ZdS )*AnnAssignTestr   strr	   zfoo: str = 5Nr
   )r      r   zfoo: strr      Optionalzfoo: Optional[str] = 5)r      r   )
annotationwhitespace_before_indicatortargetrJ   equalr%   zfoo: str = 5
)rM   rJ   r%   z	foo: str
zfoo: Optional[str] = 5
   )rJ   rK   whitespace_after_indicatorwhitespace_beforewhitespace_afterzfoo :  Optional[str]  =  5)r      zfoo :  Optional[str]  =  5
r   r   c                 K   r   r   r   r   r   r   r!   r"      s    zAnnAssignTest.test_validc                   C   s(   t jt dt t dt  d dS )Nr   rD   rL   )r&   	AnnAssignr8   
AnnotationAssignEqualr   r   r   r!   r)   (  s    zAnnAssignTest.<lambda>z1Must have a value when specifying an AssignEqual.r*   c                 K   r   r   r-   r   r   r   r!   r/   $  s   zAnnAssignTest.test_invalidc                   C   sD   t jt jt dt  t ddt t dt  t ddS )Nr0   r1   r2   intr6   rL   )r&   rV   r7   r8   r9   r(   rW   rX   r   r   r   r!   r)   :  s    6Expected an instance of .*BaseAssignTargetExpression.*c                 K   r   r   r:   r   r   r   r!   r<   6  s   z AnnAssignTest.test_invalid_types)r=   r>   r?   r   r&   rV   r8   rW   r(   r   	SubscriptSubscriptElementIndexrB   rA   rX   r   r   r"   r/   r<   r   r   r   r!   rC      s   

 rC   c                   @   s|  e Zd Zeeede eddde	dddeede
 edd	dddejedejed
ed
dedddde	dddeeede edfdeddeeede
 edfdeddeejedejed
ed
deddfdeddfdeddfddZedd ddfdeddfddZdS )AugAssignTestr   r	   zfoo += 5Nr
   rF   r   r   z
bar *= foorP   rR   rM   r4   r%   zfoo  <<=  5)r      z	foo += 5
zbar *= foo
zfoo  <<=  5
r   r   c                 K   r   r   r   r   r   r   r!   r"   Q  s   KzAugAssignTest.test_validc                   C   s6   t jt jt dt  t ddt  t ddS )Nr0   r1   r2   r6   r_   )r&   	AugAssignr7   r8   r9   r(   	AddAssignr   r   r   r!   r)     s    zAugAssignTest.<lambda>rZ   r*   c                 K   r   r   r:   r   r   r   r!   r<     s   z AugAssignTest.test_invalid_types)r=   r>   r?   r   r&   ra   r8   rb   r(   r   MultiplyAssignLeftShiftAssignrA   rB   r   r   r"   r<   r   r   r   r!   r^   P  s    	
	Jr^   )typingr   libcstr&   r   libcst._nodes.tests.baser   libcst.metadatar   libcst.testing.utilsr   r   rC   r^   r   r   r   r!   <module>   s     ?