o
    å/œh„  ã                   @   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)Ú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)Úmonkeypatch© r   úT/var/www/html/myenv/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)Ú
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   ÚcssÚCSSStyleSheetÚcssTextÚxmlÚdomÚ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%   Ú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   rC   Úlenr    Ú
parseStyle)r   ÚstyleÚtr   r   r   r   Útest_parsevalidationx   s$   

z%TestErrorHandler.test_parsevalidationN)Ú__name__Ú
__module__Ú__qualname__r   r,   r@   ÚpytestÚmarkÚnetworkrE   rK   r   r   r   r   r      s    
%
r   )Ú__doc__r   r   r:   Úxml.domr4   rO   r   Úfixturer   r   r   r   r   r   Ú<module>   s    


