o
    DDi                     @   s\   d dl mZ d dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ G dd deZdS )	    )AnyN)parse_statement)CSTNodeTestDummyIndentedBlock)	CodeRange)data_providerc                   @   s  e Zd Zeeeedee	 fde
deeedee	 feee	 fde
dedeeedee	 fddedd	d
edeeedeee	 ffddeddd
ejeedeee	 ffejeddfdde
eddd
ejeedeee	 ffejeee	 ffejeddfdejeddfdddeddd
ejejede fe fdee	 feddde
eddd
ejeedee	 fededdde
e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 )*	WhileTestiterzwhile iter(): pass
)nodecodeparserzwhile iter(): pass
else: pass
z    z    while iter(): pass
N)      )r      )r
   r   r   expected_positionz    while iter():
        pass
)      z# leading comment)comment)leading_linesz)# leading comment
while iter():
    pass
)r   r   )      z# else commentzG# leading comment
while iter():
    pass
# else comment
else:
    pass
)   r   )lparrpar whitespace_after_whilezwhile(iter()): pass
)r   r   )r      z  )r   whitespace_before_colonzwhile  iter()  : pass
)r      kwargsreturnc                 K      | j di | d S N )validate_nodeselfr    r$   r$   W/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_nodes/tests/test_while.py
test_valid   s   kzWhileTest.test_validc                   C   s.   t jt t dt t  ft ddS )Nr	   r   r   )cstWhileCallNameSimpleStatementSuitePassSimpleWhitespacer$   r$   r$   r(   <lambda>   s
    zWhileTest.<lambda>z2Must have at least one space after 'while' keyword)get_nodeexpected_rec                 K   r"   r#   )assert_invalidr&   r$   r$   r(   test_invalid}   s   zWhileTest.test_invalid)__name__
__module____qualname__r   r*   r+   r,   r-   r.   r/   r   Elser   r   IndentedBlockSimpleStatementLine	EmptyLineComment	LeftParen
RightParenr0   r   r)   r5   r$   r$   r$   r(   r      s    		jr   )typingr   libcstr*   r   libcst._nodes.tests.baser   r   libcst.metadatar   libcst.testing.utilsr   r   r$   r$   r$   r(   <module>   s   