o
    DDi                     @   s`   d dl mZ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 )	    )AnyCallableN)parse_expression)CSTNodeTestparse_expression_as)	is_native)data_providerc                   @   s  e Zd Zeeeedgdedejeedgej	e
ddeje
dddd	edeeed
eedgdddejeed
ge ge gddddeeed
eedgdddeedejedeeed
eje
ddeedgejede
ddge
dddedgdeddfddZedd dfdd dffd eg ejf d!eddfd"d#Zed$ed%d&d'd(d$ed)d&d*d(fdeddfd+d,ZdS )-ListTestsingle_elementz{single_element})nodecodeparser	)whitespace_afterz    )whitespace_before)lbracerbracez{	single_element    }onetwoz
{one, two}Nlparrparz({one})z{*one, *two}elt test )targetiterifswhitespace_after_inz!(elt for elt in{one, two}if test)kwargsreturnc                 K   s   | j di | d S )N )validate_nodeselfr    r"   r"   U/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_nodes/tests/test_set.py
test_valid   s   SzListTest.test_validc                   C   s0   t jt t dgt  t  gt  gdS )N
mismatchedr   )cstSetElementName	LeftParen
RightParenr"   r"   r"   r&   <lambda>j   s
    zListTest.<lambda>zunbalanced parensc                   C   s
   t g S N)r)   r*   r"   r"   r"   r&   r/   q   s   
 zat least one elementget_nodeexpected_rec                 C   s   |  || d S r0   )assert_invalid)r%   r1   r2   r"   r"   r&   test_invalidg   s   zListTest.test_invalidz{*x, 2}z3.5)python_versionT)r   r   expect_successz3.3Fc                 K   s0   t  r|dds| d | jdi | d S )Nr6   Tz+parse errors are disabled for native parserr"   )r   getskipTestassert_parsesr$   r"   r"   r&   test_versionsy   s   
zListTest.test_versions)__name__
__module____qualname__r   r)   r*   r+   r,   r   LeftCurlyBraceSimpleWhitespaceRightCurlyBracer-   r.   StarredElementGeneratorExpCompForCommaCompIfr   r'   r   CSTNodestrr4   r   r:   r"   r"   r"   r&   r	      s    		R
r	   )typingr   r   libcstr)   r   libcst._nodes.tests.baser   r   libcst._parser.entrypointsr   libcst.testing.utilsr   r	   r"   r"   r"   r&   <module>   s   