o
    DDi                     @   s`   d dl mZ d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ G dd deZdS )	    )AnyN)parse_expressionparse_statementPartialParserConfig)CSTNodeTest)	CodeRange)data_providerc                   @   sZ  e Zd Zeeedddd ddeeedddd ddejeded	ej	ed
dfej
ed
dfdddd edddejejde	 ge
 gdeddddfdeddfddZeejede eeeeedffe dddd ddejede eeeeeedffe ddd d ddejede eeeejeded	ej	ed
dfej
ed
dfdffe dd!d"d ddfdeddfd#d$Zed%d d&d'd(d d)d'd*d d+d'fdeddfd,d-ZdS ).	AwaitTesttestz
await testc                 C      t | tdddS Nz3.7python_versionconfigr   r   code r   W/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_nodes/tests/test_await.py<lambda>       
zAwaitTest.<lambda>N)noder   parserexpected_positionzawait test()c                 C   r   r   r   r   r   r   r   r      r   z   )whitespace_after)whitespace_before)whitespace_after_awaitlparrparz( await  test )c                 C   r   r   r   r   r   r   r   r   ,   r   )      )r!      foo)r   r     r   z
await(foo))r   r   kwargsreturnc                 K      | j di | d S Nr   validate_nodeselfr'   r   r   r   test_valid_py37   s   .zAwaitTest.test_valid_py37)asynchronousz async def foo():
    await test
c                 C   r   Nz3.6r   r   r   r   r   r   r   r   r   Q   r   z"async def foo():
    await test()
c                 C   r   r1   r2   r   r   r   r   r   d   r   z%async def foo():
    ( await  test )
c                 C   r   r1   r2   r   r   r   r   r      r   c                 K   r)   r*   r+   r-   r   r   r   test_valid_py36@   s   YzAwaitTest.test_valid_py36c                   C      t jt dt  fdS )Nr$   )r   )cstAwaitName	LeftParenr   r   r   r   r          zleft paren without right paren)get_nodeexpected_rec                   C   r4   )Nr$   )r    )r5   r6   r7   
RightParenr   r   r   r   r      r9   zright paren without left parenc                   C   s   t jt dt ddS )Nr$   r%   r&   )r5   r6   r7   SimpleWhitespacer   r   r   r   r      s    zat least one space after awaitc                 K   r)   r*   )assert_invalidr-   r   r   r   test_invalid   s   zAwaitTest.test_invalid)__name__
__module____qualname__r   r5   r6   r7   Callr=   r8   r<   r   r   r/   FunctionDef
ParametersIndentedBlockSimpleStatementLineExprAsynchronousr3   r?   r   r   r   r   r	      s    	
+#Vr	   )typingr   libcstr5   r   r   r   libcst._nodes.tests.baser   libcst.metadatar   libcst.testing.utilsr   r	   r   r   r   r   <module>   s   