o
    DDis                     @   s@   d dl Z d dlmZ d dlZd dlmZmZ G dd deZdS )    N)dedent)data_providerUnitTestc                
   @   s   e Zd Zeejddgddded fejddgddded	 fejdg d
ddded fejddgddded fddejdeddfddZ	dddZ
dS )ExceptionsTestsome messageabcd   r   linesraw_line
raw_columnz
                    Syntax Error @ 1:1.
                    some message

                    abcd
                    ^
                    z	abcd
   z
                    Syntax Error @ 1:10.
                    some message

                            abcd
                             ^
                    )zabcd
zefgh

r   r   r   r      z
                    Syntax Error @ 5:1.
                    some message

                    efgh
                        ^
                     z^
                    Syntax Error @ 1:1.
                    some message
                    )simpletab_expansionshows_last_line_with_text
empty_fileerrexpectedreturnNc                 C   s   |  t|| d S )N)assertEqualstr)selfr   r    r   U/var/www/Datamplify/venv/lib/python3.10/site-packages/libcst/tests/test_exceptions.pytest_parser_syntax_error_str   s   @z+ExceptionsTest.test_parser_syntax_error_strc                 C   sT   t jddgddd}t|}t|}| t|t| | t|t| dS )z
        It's common to use LibCST with multiprocessing to process files in parallel.
        Multiprocessing uses pickle by default, so we should make sure our errors can be
        pickled/unpickled.
        r   r   r   r   r	   N)cstParserSyntaxErrorpickledumpsloadsr   reprr   )r   orig_exceptionpickled_blobnew_exceptionr   r   r   test_pickleQ   s   


zExceptionsTest.test_pickle)r   N)__name__
__module____qualname__r   r   r   r   stripr   r   r'   r   r   r   r   r      s^    


=r   )	r    textwrapr   libcstr   libcst.testing.utilsr   r   r   r   r   r   r   <module>   s
   