o
    lqi„  ã                   @   sZ   d Z ddlZddlZddlZddlZddlZddlZejdddd„ ƒZ	G dd„ dƒZ
dS )	z:Tests for parsing which does not raise Exceptions normallyé    NT)Zautousec                 C   s*   |   tjdd¡ |   tjdt d¡¡ dS )z4
    Replace default log and ignore its output.
    ÚraiseExceptionsFÚ_logzIGNORED-CSSUTILS-TESTN)ÚsetattrÚcssutilsÚlogÚloggingÚ	getLogger)Zmonkeypatch© r	   úg/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/cssutils/tests/test_errorhandler.pyÚsave_log   s   ÿr   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zejjdd„ ƒZ	d	d
„ Z
dS )ÚTestErrorHandlerc                 C   s>   t  ¡ }t |¡}| t d¡¡ tj |¡ tj 	|¡ |S )z:sets new handler and returns StringIO instance to getvaluez%(levelname)s    %(message)s)
ÚioÚStringIOr   ÚStreamHandlerÚsetFormatterÚ	Formatterr   r   ÚremoveHandlerÚ
addHandler)ÚselfÚsÚhr	   r	   r
   Ú_setHandler   s   
zTestErrorHandler._setHandlerc                 C   s~  |   ¡ }tj tj¡ tjjddd | ¡ dksJ ‚|   ¡ }tj tj¡ tjj	ddd | ¡ dks6J ‚|   ¡ }tj tj
¡ tjjddd | ¡ dksQJ ‚|   ¡ }tj tj¡ tjjddd | ¡ dkslJ ‚|   ¡ }tj tj¡ tjjddd | ¡ dks‡J ‚|   ¡ }tj tj¡ tjjddd | ¡ dks¢J ‚|   ¡ }tj tj¡ tjjddd | ¡ d	ks½J ‚d
S )zcssutils.log.*ÚmsgT)Z
neverraisezDEBUG    msg
zINFO    msg
zWARNING    msg
zERROR    msg
zCRITICAL    msg
Ú N)r   r   r   ÚsetLevelr   ÚDEBUGÚdebugÚgetvalueÚINFOÚinfoÚWARNINGÚwarnÚERRORÚerrorÚFATALÚfatalÚCRITICALÚcritical©r   r   r	   r	   r
   Ú
test_calls#   s8   zTestErrorHandler.test_callsc              
   C   s°   t jj}dt j_t j ¡ }zd|_W n? tjjyQ } z1t	|ƒdks$J ‚|j
dks+J ‚|jdks2J ‚tj d¡r@|jdks?J ‚n|jdksGJ ‚W Y d}~nd}~ww |t j_dS )	zcssutils.log line colTz
@import x;ú)CSSImportRule: Unexpected ident. [1:9: x]é   é	   Újava)r*   N)r   r   r   ÚcssZCSSStyleSheetZcssTextÚxmlÚdomZDOMExceptionÚstrÚlineÚcolÚsysÚplatformÚ
startswithr   Úargs)r   Úor   Úer	   r	   r
   Útest_linecolH   s   

€ù	zTestErrorHandler.test_linecolc                 C   s¨   |   ¡ }tj tj¡ tj ¡ tjksJ ‚t d¡ | ¡ dks"J ‚tj tj	¡ t d¡ | ¡ dks6J ‚|   ¡ }tj tj
¡ t d¡ | ¡ dd… dksRJ ‚dS )zcssutils.logza { color: 1 }r   zNERROR    Property: Invalid value for "CSS Level 2.1" property: 1 [1:5: color]
zhttp://example.comNé&   z&ERROR    Expected "text/css" mime type)r   r   r   r   r   r$   ÚgetEffectiveLevelÚparseStringr   r   r"   ZparseUrlr(   r	   r	   r
   Útest_handlers[   s   


zTestErrorHandler.test_handlersc                 C   sà   d}d| }t j tj¡ |  ¡ }t  |¡ t| ¡ ƒdks J ‚|  ¡ }t j|dd | ¡ dks3J ‚|  ¡ }t  	|¡ t| ¡ ƒdksFJ ‚|  ¡ }t j	|dd t| ¡ ƒdks[J ‚|  ¡ }t j	|dd | ¡ dksnJ ‚d S )Nzcolor: 1za { %s }r   F)Úvalidater   T)
r   r   r   r   r   r   r=   Úlenr   Z
parseStyle)r   ÚstyleÚtr   r	   r	   r
   Útest_parsevalidationx   s$   

z%TestErrorHandler.test_parsevalidationN)Ú__name__Ú
__module__Ú__qualname__r   r)   r:   ÚpytestÚmarkÚnetworkr>   rC   r	   r	   r	   r
   r      s    
%
r   )Ú__doc__r   r   r4   Zxml.domr/   rG   r   Zfixturer   r   r	   r	   r	   r
   Ú<module>   s    


