o
    DDio                     @   sZ   d dl mZ d dlZd dlmZmZ d dlmZm	Z	 G dd dej
ZG dd de	ZdS )	    )dedentN)MetadataWrapperParentNodeProvider)data_providerUnitTestc                   @   s8   e Zd ZefZdeddfddZdejde	fddZ
dS )	DependentVisitortestreturnNc                C   s
   || _ d S )Nr   )selfr    r   h/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/metadata/tests/test_parent_node_provider.py__init__   s   
zDependentVisitor.__init__nodec                 C   s*   |j D ]}| t|}| j|| qdS )NT)childrenget_metadatar   r   assertEqual)r   r   childparentr   r   r   on_visit   s   
zDependentVisitor.on_visit)__name__
__module____qualname__r   METADATA_DEPENDENCIESr   r   cstCSTNodeboolr   r   r   r   r   r      s    r   c                   @   s&   e Zd ZeddeddfddZdS )ParentNodeProviderTest))z
                foo = 'toplevel'
                fn1(foo)
                fn2(foo)
                def fn_def():
                    foo = 'shadow'
                    fn3(foo)
                )z
                global_var = None
                @cls_attr
                class Cls(cls_attr, kwarg=cls_attr):
                    cls_attr = 5
                    def f():
                        pass
                )aB  
                iterator = None
                condition = None
                [elt for target in iterator if condition]
                {elt for target in iterator if condition}
                {elt: target for target in iterator if condition}
                (elt for target in iterator if condition)
                coder	   Nc                 C   s&   t tt|}|t| d d S )Nr
   )r   r   parse_moduler   visitr   )r   r   wrapperr   r   r   test_parent_node_provier   s   #z/ParentNodeProviderTest.test_parent_node_provier)r   r   r   r   strr"   r   r   r   r   r      s
    "r   )textwrapr   libcstr   libcst.metadatar   r   libcst.testing.utilsr   r   
CSTVisitorr   r   r   r   r   r   <module>   s   