o
    DDi?                     @   s`   d dl mZ d dlmZ d dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZ G dd de	ZdS )    )dedent)DictN)	CodemodCodemodContextCodemodTestSkipFiletransform_moduleTransformExitTransformFailureTransformSkipTransformSuccessc                   @   s4   e Zd ZdddZdddZdddZdd	d
ZdS )
TestRunnerreturnNc                 C   sl   d}d}G dd dt }|t }t|t|}| |t t|ts%J | |j| | 	|j
dg d S )Nu
            def foo() -> None:
                pass

            def bar() -> int:
                return 5
        z
            # A comment
            def foo() -> None:
                pass

            def bar() -> int:
                return 5
        c                   @   "   e Zd ZdejdejfddZdS )z5TestRunner.test_runner_default.<locals>.SimpleCodemodtreer   c                 S   s&   |  d |jtjtddgdS )NTestingz# A comment)comment)header)warnwith_changescst	EmptyLineCommentselfr    r   Y/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/codemod/tests/test_runner.pytransform_module_impl*   s   
zKTestRunner.test_runner_default.<locals>.SimpleCodemod.transform_module_implN__name__
__module____qualname__r   Moduler   r   r   r   r   SimpleCodemod)       r$   r   )r   r   r   r   assertIsInstancer   
isinstanceassertCodeEqualcodeassertEqualwarning_messages)r   beforeafterr$   	transformresponser   r   r   test_runner_default   s   	
zTestRunner.test_runner_defaultc                 C   s<   d}G dd dt }|t }t|t|}| |t d S )Nr   c                   @   r   )z9TestRunner.test_runner_interrupted.<locals>.SimpleCodemodr   r   c                 S   s   t dNr   )KeyboardInterruptr   r   r   r   r   A   s   zOTestRunner.test_runner_interrupted.<locals>.SimpleCodemod.transform_module_implNr   r   r   r   r   r$   @   r%   r$   )r   r   r   r   r&   r	   r   r)   r$   r.   r/   r   r   r   test_runner_interrupted7   s
   
z"TestRunner.test_runner_interruptedc                 C   sL   d}G dd dt }|t }t|t|}| |t | |jdg d S )Nr   c                   @   r   )z2TestRunner.test_runner_skip.<locals>.SimpleCodemodr   r   c                 S   s   |  d t r1   )r   r   r   r   r   r   r   R   s   
zHTestRunner.test_runner_skip.<locals>.SimpleCodemod.transform_module_implNr   r   r   r   r   r$   Q   r%   r$   r   )r   r   r   r   r&   r   r*   r+   r3   r   r   r   test_runner_skipH   s   
zTestRunner.test_runner_skipc                 C   sh   d}G dd dt }|t }t|t|}| |t t|ts#J | |jdg | |j	t
 d S )Nr   c                   @   r   )z5TestRunner.test_runner_failure.<locals>.SimpleCodemodr   r   c                 S   s   |  d i }|d  |S )Nr   invalid_key)r   )r   r   somedictr   r   r   r   e   s   
zKTestRunner.test_runner_failure.<locals>.SimpleCodemod.transform_module_implNr   r   r   r   r   r$   d   r%   r$   r   )r   r   r   r   r&   r
   r'   r*   r+   errorKeyErrorr3   r   r   r   test_runner_failure[   s   
zTestRunner.test_runner_failure)r   N)r    r!   r"   r0   r4   r5   r:   r   r   r   r   r      s
    


r   )textwrapr   typingr   libcstr   libcst.codemodr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   <module>   s
   ,