o
    8VaI                     @   s   d dl Z d dlmZmZmZmZmZ d dlmZ dd Z	dd Z
dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Z d4d5 Z!dS )6    N)raiseswarnsignore_warningswarns_deprecated_sympyFailed)SymPyDeprecationWarningc                  C   s   dd } t t|  d S )Nc                   S   s   t  N
ValueError r   r   A/usr/lib/python3/dist-packages/sympy/testing/tests/test_pytest.pyf   s   z5test_expected_exception_is_silent_callable.<locals>.fr   r
   )r   r   r   r   *test_expected_exception_is_silent_callable   s   r   c               
   C   sJ   z	t tdd  J  ty$ }  zdt| v sJ W Y d } ~ d S d } ~ ww )Nc                   S   s   dS )N   r   r   r   r   r   <lambda>   s    zItest_lack_of_exception_triggers_AssertionError_callable.<locals>.<lambda>FDID NOT RAISEr   	Exceptionr   strer   r   r   7test_lack_of_exception_triggers_AssertionError_callable   s   r   c               
   C   sN   dd } zt t|  J  ty& } zt|dksJ W Y d }~d S d }~ww )Nc                   S   s   t dNsome error messager	   r   r   r   r   r      s   z?test_unexpected_exception_is_passed_through_callable.<locals>.fFr   r   	TypeErrorr
   r   )r   r   r   r   r   4test_unexpected_exception_is_passed_through_callable   s   
r   c                   C   s$   t t t 1 sw   Y  d S r   r   r   r   r   r   &test_expected_exception_is_silent_with&   s   
r   c               
   C   sd   zt t W d    n1 sw   Y  J  ty1 }  zdt| v s&J W Y d } ~ d S d } ~ ww )NFr   r   r   r   r   r   3test_lack_of_exception_triggers_AssertionError_with+   s   
r   c               
   C   s^   zt t td1 sw   Y  J  ty. }  zt| dks#J W Y d } ~ d S d } ~ ww r   r   r   r   r   r   0test_unexpected_exception_is_passed_through_with4   s   
r    c                   C   s   t tdd  d S )Nc                   S   s
   t ddS )NZ
irrelevant*   )r   r   r   r   r   r   A   s   
 zCtest_second_argument_should_be_callable_or_string.<locals>.<lambda>)r   r   r   r   r   r   1test_second_argument_should_be_callable_or_string@   s   r"   c               	   C   t   t jdd*} tt t d W d    n1 sw   Y  t| dks(J W d    d S 1 s3w   Y  d S NTrecordthis is the warning messager   warningscatch_warningsr   UserWarningwarnlenwr   r   r   test_warns_catches_warningD      
"r0   c                	   C   sf   t t% tt W d    n1 sw   Y  W d    d S W d    d S 1 s,w   Y  d S r   )r   r   r   r+   r   r   r   r   !test_warns_raises_without_warningK   s   

"r2   c               	   C   s   t jdd1} tt t dt t dt W d    n1 s"w   Y  t| dks/J W d    d S 1 s:w   Y  d S )NTr%   r'   this is the other messager   r)   r*   r   r+   r,   RuntimeWarningr-   r.   r   r   r   test_warns_hides_other_warningsQ   s   
"r6   c               	   C      t jdd2} d}tt t d d}W d    n1 sw   Y  |s(J t| dks0J W d    d S 1 s;w   Y  d S NTr%   Fr'   r   r(   r/   Zfinishedr   r   r   "test_warns_continues_after_warningZ      

"r:   c               	   C   s   t jddK} d}tt( t dt t dt t dt t dt t dt d}W d    n1 s8w   Y  |sAJ t| dksIJ W d    d S 1 sTw   Y  d S )NTr%   Fr'   r3   r   r4   r9   r   r   r   test_warns_many_warningsd   s   
"r<   c               	   C   sz   t jdd-} ttdd t dt W d    n1 sw   Y  t| dks+J W d    d S 1 s6w   Y  d S )NTr%   r'   matchr   r(   r.   r   r   r   test_warns_match_matchings   s   "r?   c               
   C   s   t jddA} tt$ ttdd t dt W d    n1 s#w   Y  W d    n1 s2w   Y  t| dks?J W d    d S 1 sJw   Y  d S )NTr%   r'   r=   z(this is not the expected warning messager   )r)   r*   r   r   r   r+   r,   r-   r.   r   r   r   test_warns_match_non_matchingz   s   
"r@   c                   C   s   t ddddd  d S )NZfooZbar   z0.0.0)ZfeatureZ
useinsteadZissueZdeprecated_since_version)r   r,   r   r   r   r   _warn_sympy_deprecation   s   
rB   c               	   C   sn   t jdd'} t  t  W d    n1 sw   Y  t| dks%J W d    d S 1 s0w   Y  d S NTr%   r   r)   r*   r   rB   r-   r.   r   r   r   +test_warns_deprecated_sympy_catches_warning   s   "rE   c                	   C   sd   t t$ t  W d    n1 sw   Y  W d    d S W d    d S 1 s+w   Y  d S r   )r   r   r   r   r   r   r   2test_warns_deprecated_sympy_raises_without_warning   s   
"rF   c               	   C   sz   t jdd-} t  t  t dt W d    n1 sw   Y  t| dks+J W d    d S 1 s6w   Y  d S )NTr%   r3   r   r)   r*   r   rB   r,   r5   r-   r.   r   r   r   0test_warns_deprecated_sympy_hides_other_warnings   s   "rH   c               	   C   s~   t jdd/} d}t  t  d}W d    n1 sw   Y  |s%J t| dks-J W d    d S 1 s8w   Y  d S )NTr%   Fr   rD   r9   r   r   r   3test_warns_deprecated_sympy_continues_after_warning   s   "rI   c               	   C   s   t jddD} d}t " t  t dt t  t dt t dt d}W d    n1 s1w   Y  |s:J t| dksBJ W d    d S 1 sMw   Y  d S )NTr%   Fr3   r   rG   r9   r   r   r   )test_warns_deprecated_sympy_many_warnings   s   "rJ   c               	   C   r#   r$   r)   r*   r   r+   r,   r-   r.   r   r   r   test_ignore_ignores_warning   r1   rL   c               	   C   sj   t jdd%} tt W d    n1 sw   Y  t| dks#J W d    d S 1 s.w   Y  d S rC   )r)   r*   r   r+   r-   r.   r   r   r   *test_ignore_does_not_raise_without_warning   s   
"rM   c               	   C   s   t jddK} t d tt t dt t dt W d    n1 s'w   Y  t| dks4J t| d j	ts>J t
| d j	dksIJ W d    d S 1 sTw   Y  d S )NTr%   alwaysr'   r3   rA   r   r)   r*   simplefilterr   r+   r,   r5   r-   
isinstancemessager   r.   r   r   r   !test_ignore_allows_other_warnings   s   

"rS   c               	   C   r7   r8   rK   r9   r   r   r   #test_ignore_continues_after_warning   r;   rT   c               	   C   s   t jdd^} t d tt& t dt t dt t dt t dt t dt W d    n1 s9w   Y  t| dksFJ | D ]}t|j	tsRJ t
|j	dks[J qHW d    d S 1 sgw   Y  d S )NTr%   rN   r'   r3      rO   )r/   Zwir   r   r   test_ignore_many_warnings   s   

"rV   )"r)   Zsympy.testing.pytestr   r   r   r   r   Zsympy.utilities.exceptionsr   r   r   r   r   r   r    r"   r0   r2   r6   r:   r<   r?   r@   rB   rE   rF   rH   rI   rJ   rL   rM   rS   rT   rV   r   r   r   r   <module>   s8    		
	

