o
    DD©i  ã                   @   sT   d dl mZ d dlmZ d dlZd dlmZmZmZ d dl	m
Z
 G dd„ de
ƒZdS )é    )Úcast)ÚMockN)ÚBatchableCSTVisitorÚparse_moduleÚvisit_batched)ÚUnitTestc                   @   s    e Zd Zddd„Zddd„ZdS )ÚBatchedVisitorTestÚreturnNc                    s¤   t ƒ ‰ G ‡ fdd„dtƒ}G ‡ fdd„dtƒ}ttdƒ|ƒ |ƒ gƒ}ttj|jd ƒjd }ˆ j 	¡  ˆ j
 	¡  |  t |d¡ˆ  ¡ ¡ |  t |d¡ˆ  
¡ ¡ d S )	Nc                       ó$   e Zd Zdejddf‡ fdd„ZdS )z2BatchedVisitorTest.test_simple.<locals>.ABatchableÚnoder	   Nc                    ó   t  |dˆ  ¡ ¡ d S )NÚtarget)ÚobjectÚ__setattr__Ú	visited_a©Úselfr   ©Úmock© úZ/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/tests/test_batched_visitor.pyÚ	visit_Del   ó   z<BatchedVisitorTest.test_simple.<locals>.ABatchable.visit_Del©Ú__name__Ú
__module__Ú__qualname__ÚcstÚDelr   r   r   r   r   Ú
ABatchable   ó    r   c                       r
   )z2BatchedVisitorTest.test_simple.<locals>.BBatchabler   r	   Nc                    r   )NÚ	semicolon)r   r   Ú	visited_br   r   r   r   r      r   z<BatchedVisitorTest.test_simple.<locals>.BBatchable.visit_Delr   r   r   r   r   Ú
BBatchable   r    r#   zdel ar   r   r!   )r   r   r   r   r   r   ÚSimpleStatementLineÚbodyr   Úassert_called_oncer"   ÚassertEqualr   Ú__getattribute__)r   r   r#   ÚmoduleÚdel_r   r   r   Útest_simple   s   

zBatchedVisitorTest.test_simplec                    sÊ   t ƒ ‰ G ‡ fdd„dtƒ}ttdƒ|ƒ gƒ}ttj|jd ƒ}ˆ j 	¡  ˆ j
 	¡  ˆ j 	¡  ˆ j 	¡  |  t |d¡ˆ  ¡ ¡ |  t |d¡ˆ  ¡ ¡ |  t |d¡ˆ  ¡ ¡ |  t |d¡ˆ  
¡ ¡ d S )	Nc                       sl   e Zd Zdejddf‡ fdd„Zdejddf‡ fdd„Zdejddf‡ fdd	„Zd
ejddf‡ fdd„ZdS )z5BatchedVisitorTest.test_all_visits.<locals>.Batchabler   r	   Nc                    r   )NÚtest)r   r   Úvisit_Ifr   r   r   r   r-   )   r   z>BatchedVisitorTest.test_all_visits.<locals>.Batchable.visit_Ifc                    r   )NÚleading_lines)r   r   Úvisit_If_bodyr   r   r   r   r/   ,   r   zCBatchedVisitorTest.test_all_visits.<locals>.Batchable.visit_If_bodyc                    r   )NÚorelse)r   r   Úleave_If_bodyr   r   r   r   r1   /   r   zCBatchedVisitorTest.test_all_visits.<locals>.Batchable.leave_If_bodyÚoriginal_nodec                    r   )NÚwhitespace_before_test)r   r   Úleave_If)r   r2   r   r   r   r4   2   s   
ÿz>BatchedVisitorTest.test_all_visits.<locals>.Batchable.leave_If)	r   r   r   r   ÚIfr-   r/   r1   r4   r   r   r   r   Ú	Batchable(   s
    r6   zif True: passr   r,   r.   r0   r3   )r   r   r   r   r   r   r$   r%   r-   r&   r4   r/   r1   r'   r   r(   )r   r6   r)   Úif_r   r   r   Útest_all_visits%   s    



ÿÿz"BatchedVisitorTest.test_all_visits)r	   N)r   r   r   r+   r8   r   r   r   r   r      s    
r   )Útypingr   Úunittest.mockr   Úlibcstr   r   r   r   Úlibcst.testing.utilsr   r   r   r   r   r   Ú<module>   s   