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dS )	    )AnyN)parse_expression)CSTNodeTest)	CodeRange)data_providerc                   @   s  e Zd Zeeededdeedddeje	 fedede
 fddeed	d
dejej	eddfedejededdedej
eddfddeedddfdeddfddZedd dddd ddfdeddfddZdS ) AttributeTestfoobarzfoo.bar)   r   )r
      )nodecodeparserexpected_position)lparvalueattrrparz	(foo.bar))r
   r
   )r
       )whitespace_after)whitespace_beforer   )r   )r   r   dotr   r   z( foo . bar ))r
      )r
      kwargsreturnNc                 K      | j di | d S N )validate_nodeselfr   r   r   [/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/_nodes/tests/test_attribute.py
test_valid   s   (zAttributeTest.test_validc                   C   "   t jt dt dt  fdS )Nr   r	   )r   )cst	AttributeName	LeftParenr   r   r   r#   <lambda>>       zAttributeTest.<lambda>zleft paren without right paren)get_nodeexpected_rec                   C   r%   )Nr   r	   )r   )r&   r'   r(   
RightParenr   r   r   r#   r*   F   r+   zright paren without left parenc                 K   r   r   )assert_invalidr!   r   r   r#   test_invalid:   s   zAttributeTest.test_invalid)__name__
__module____qualname__r   r&   r'   r(   r   r   r)   r.   SimpleWhitespaceDotr   r$   r0   r   r   r   r#   r      sX    
'
r   )typingr   libcstr&   r   libcst._nodes.tests.baser   libcst.metadatar   libcst.testing.utilsr   r   r   r   r   r#   <module>   s   