o
    noi                     @   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_expression)CSTNodeTestparse_expression_as)	CodeRange)data_providerc                   @   sR  e Zd Zeeg deedddeee	de	dgdeedddee
e	d	gd
eedddeee	de	dee	de	dgddedddejee	de	dgejeddejeddddeedddejee	de	dge ge gddeedddee
e	de
e	dgd dedd!deeje	de	de d"gd#eedddeej
e	d	e d"gd$eedd%deeje	de	dededd&gd'eedd(deeje	de	de d"ej
e	d	ed)d*gd+eedd,dee	d-eje	d.eee	de	dgeje	d/ed0dged0d1ed2d3gd4ed5dfd6d7Zed8d9 d:d;gd4ed5dfd<d=Zed>ed?d@dAdBd>edCd@dDdBfd4ed5dfdEdFZdS )GDictTestz{})   r   )r	      )nodecodeparserexpected_positionkvz{k: v})r	      expandedz{**expanded})r	      k1v1k2v2z{k1: v1, k2: v2}N)r	      	)whitespace_afterz		)whitespace_before)lbracerbracez	{	k: v		})r	   	   )lparrparz({k: v}))r	   r	   )r	      onetwoz{**one, **two})r	      )commaz{k: v,}z{**expanded,})r	      )whitespace_before_colonwhitespace_after_colonz{k	:		v})r	      z  )whitespace_before_valuez{k: v,**  expanded})r	      abc )ifswhitespace_after_inz(a for b in{k: v}if c))r   r   r   kwargsreturnc                 K      | j di | d S N )validate_nodeselfr2   r6   r6   Q/home/ubuntu/.local/lib/python3.10/site-packages/libcst/_nodes/tests/test_dict.py
test_valid   s    zDictTest.test_validc                   C   s   t jg t  gdS )N)r   )cstDict	LeftParenr6   r6   r6   r:   <lambda>   s    zDictTest.<lambda>zleft paren without right paren)get_nodeexpected_rec                 K   r4   r5   )assert_invalidr8   r6   r6   r:   test_invalid   s   
zDictTest.test_invalidz{**{}}z3.5)python_versionT)r   r   expect_successz3.3Fc                 K   s*   | dds| d | jdi | d S )NrE   Tz+parse errors are disabled for native parserr6   )getskipTestassert_parsesr8   r6   r6   r:   test_versions   s   
zDictTest.test_versions)__name__
__module____qualname__r   r<   r=   r   r   DictElementNameStarredDictElementLeftCurlyBraceSimpleWhitespaceRightCurlyBracer>   
RightParenCommaGeneratorExpCompForCompIfr   r;   rC   r   rI   r6   r6   r6   r:   r      s   	 


 	r   )typingr   libcstr<   r   libcst._nodes.tests.baser   r   libcst.metadatar   libcst.testing.utilsr   r   r6   r6   r6   r:   <module>   s   