
     h7                     l    d Z ddlZddlZddlZddlmZ ej                  Z G d d      Z G d d      Z	y)zTestcases for cssutils.codec    N)codecc                   $    e Zd ZdZd Zd ZddZy)QueuezF
    queue: write bytes at one end, read bytes from the other end
    c                     d| _         y )N    _bufferselfs    Y/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_codec.py__init__zQueue.__init__   s	    r   c                     t        |t              r|j                         }nt        |t              rt	        |g      }| xj
                  |z  c_        y N)
isinstancestrencodeintbytesr	   )r   charss     r   writezQueue.write   s:    eS!LLNEs#5'NEr   c                     |dk  r| j                   }d| _         |S | j                   d | }| j                   |d  | _         |S )Nr   r   r   )r   sizess      r   readz
Queue.read   sE    !8ADLHUd#A<<.DLHr   N))__name__
__module____qualname____doc__r   r   r    r   r   r   r      s    r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)	TestCodecc                 6
   t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  dj                               dk(  sJ t        j                  dj                               dk(  sJ t        j                  d      dk(  sJ t        j                  dj                               dk(  sJ t        j                  d	j                  d
            dk(  sJ t        j                  d      dk(  sJ t        j                  dj                               dk(  sJ t        j                  d      dk(  sJ t        j                  dj                  d            dk(  sJ t        j                  d      dk(  sJ t        j                  dj                  d            dk(  sJ t        j                  dj                  d            dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  dj                  d            dk(  sJ t        j                  d       dk(  sJ t        j                  d!      dk(  sJ t        j                  d"      dk(  sJ t        j                  d#      dk(  sJ t        j                  d$      dk(  sJ t        j                  d%      dk(  sJ t        j                  d&      d'k(  sJ t        j                  d(      dk(  sJ t        j                  d)      dk(  sJ t        j                  d*      dk(  sJ t        j                  d+      dk(  sJ t        j                  d,      dk(  sJ t        j                  d-      dk(  sJ t        j                  d.      dk(  sJ t        j                  d/      dk(  sJ t        j                  d0      dk(  sJ t        j                  d1      dk(  sJ t        j                  d2      d3k(  sJ t        j                  d4      d5k(  sJ t        j                  d d6      dk(  sJ t        j                  d d7      dk(  sJ t        j                  d(d6      dk(  sJ t        j                  d(d7      dk(  sJ y8)9zcodec.detectencoding_str()r   NF   u   ï3utf-8Fu   Ã¯3s   u   ï»3u   ï»¿	utf-8-sig)r(   T   u   ÿ3s   u   ÿþ3utf-16)r*   Ts    u   ÿþ 3u   ÿþ  utf-32)r+   T    s    3s     s     3s     s      3s      @)	utf-32-beFu     þÿ   @s   @3s   @ s   @ 3s   @  s   @  3s   @   )	utf-32-leFs   @cs   @chs   @chas   @chars   @charss   @charses   @charsets	   @charset s
   @charset "s   @charset "xs   @charset "") Ts   @charset "x"xTFTN)r   detectencoding_strr   r
   s    r   test_detectencoding_strz!TestCodec.test_detectencoding_str*   sP   '',===''0MAAA''
(9(9(;<@PPPP''(:(:(<=AQQQQ''4EEE''(=(=(?@ E
 
 	
 
 ''(=(=k(JK P
 
 	
 
 ''0MAAA''
(9(9(;<@PPPP''4EEE''(=(=h(GH M
 
 	
 
 ''8 =
 
 	
 
 ''(:(A(A((KL Q
 
 	
 
 ''(:(A(A((KL Q
 
 	
 
 ''0MAAA''48HHHH''4EEE''8<LLLL''8 =
 
 	
 
 ''(;<@PPPP''(89 >
 
 	
 
 ''(:(A(A((KL Q
 
 	
 
 ''->>>''15EEEE''1]BBB''59IIII''5FFF''(89=MMMM''(89 >
 
 	
 
 ''.-???''/=@@@''0MAAA''1]BBB''	2mCCC''
3}DDD''4EEE''5FFF''6-GGG''7=HHH''7:EEE''8KGGG''e4EEE''d37GGGG''u5FFF''t48HHHHr   c                     t        j                  d      dk(  sJ t        j                  d      dk(  sJ t        j                  dd      dk(  sJ t        j                  d      dk(  sJ y)	zcodec.detectencoding_unicode()@charset "xr$   za {}r&   T@charset "x"r1   N)r   detectencoding_unicoder
   s    r   test_detectencoding_unicodez%TestCodec.test_detectencoding_unicodex   sk     ++M:mKKK++F37GGGG++M4@MQQQ++N;{JJJr   c                 <   d}t        j                  |d      J d}t        j                  |d      J d}t        j                  |dd      |k(  sJ d}t        j                  |d      |k(  sJ d}t        j                  |d      |j                  dd	      k(  sJ y)
zcodec._fixencoding()z
@charset "r'   Nr6   Tz
@charset xr7   "x"z"utf-8")r   _fixencodingreplace)r   r   s     r   test_fixencodingzTestCodec.test_fixencoding   s    !!!W-555!!!W-555!!!Wd3q888!!!W-222!!!W-5)1LLLLr   c                 D   dd} |d        |d        |d        |d        |d        |d        |d       dd	} |d
        |dd        |d        |d       t        j                  t              5  dj                  d       ddd       y# 1 sw Y   yxY w)zcodecs.decoderc                    | }|dk(  rd}t        j                  d      } ||j                  |             d   |j                  dd|z        k(  sJ  ||j                  |       |       d   |j                  dd|z        k(  sJ t	        t
        d      r t        j                  d             }d	j                  |j                  |j                  |                   |j                  dd|z        k(  sJ  t        j                  d      |       }d	j                  |j                  |j                  |                   |j                  dd|z        k(  sJ t               } t        j                  d      |      }g }|j                  |       D ]2  }|j                  |       |j                  |j                                4 d	j                  |      |j                  dd|z        k(  sJ t               } t        j                  d      ||       }g }|j                  |       D ]2  }|j                  |       |j                  |j                                4 d	j                  |      |j                  dd|z        k(  sJ y )
Nr(   r'   cssr   r;   "%s"encodinggetincrementaldecoderr0   )codecs
getdecoderr   r=   hasattrr   rE   join
iterdecoder   	getreaderr   appendr   )	rD   inputoutputencodingdidqsrresultcs	            r   	checkautoz)TestCodec.test_decoder.<locals>.checkauto   sZ   %N,!(!!%(AU\\(+,Q/5==v.4   
 U\\(+h?Bemmv.G    u568V11%8:wwr}}U\\(-CDE6N2J   
 9V11%8(Kwwr}}U\\(-CDE6N2J   
 A(!!%(+BF\\(+
bggi( , 776?emmE6N;R&SSSS A(!!%(X>BF\\(+
bggi( , 776?emmE6N;R&SSSSr   r(   r*   	utf-16-le	utf-16-ber+   r/   r-   c                 4   t        j                  d      }|| z  }| }|dk(  rd} ||j                  |             d   |k(  sJ  ||j                  |       |       d   |k(  sJ t        t        d      r t        j
                  d             }dj                  |j                  |j                  |                   |k(  sJ  t        j
                  d      |       }dj                  |j                  |j                  |                   |k(  sJ t               } t        j                  d      |      }g }|j                  |       D ]2  }|j                  |       |j                  |j                                4 dj                  |      |k(  sJ t               } t        j                  d      ||       }g }|j                  |       D ]2  }|j                  |       |j                  |j                                4 dj                  |      |k(  sJ y )NrA   r(   r'   r   rC   rE   r0   )rF   rG   r   rH   r   rE   rI   rJ   r   rK   r   rL   r   )	rD   rM   rO   rN   rP   rQ   rR   rS   rT   s	            r   	checkdeclz)TestCodec.test_decoder.<locals>.checkdecl   s   !!%(AH$E%N,!(U\\(+,Q/5888 U\\(+h?BeKKKu568V11%8:wwr}}U\\(-CDENNN 9V11%8Bwwr}}U\\(-CDENNN A(!!%(+BF\\(+
bggi( , 776?e+++ A(!!%(X>BF\\(+
bggi( , 776?e+++r   r'   
iso-8859-1u   @charset "%s";gürkiso-8859-15cp1252s   @charset "css";div{}rA   Nu   @charset "x";gürk€{})u   @charset "%s";gürk{})pytestraises
ValueErrordecode)r   rU   rY   s      r   test_decoderzTestCodec.test_decoder   s    -	T` 	+(++(++%	,P 	', 78- ( ]]:&#**51 '&&s   ;BBc                 <   dd} |d        |d        |d        |d        |d        |d        |d        |d	        |d
d        |d        |d       t        j                  t              5  dj                  d       ddd       y# 1 sw Y   yxY w)zcodec.encoderc                 D   | }|dk(  rd}t        j                  d      }|j                  dd| z        }|j                  dd|z        } ||      d   j                  |       |k(  sJ  |||       d   j                  |       |k(  sJ t	        t
        d      r t        j                  d             }d	j                  |j                  |            j                  |       |k(  sJ  t        j                  d      |       }d	j                  |j                  |            j                  |       |k(  sJ t               } t        j                  d      |      }|D ]  }	|j                  |	        |j                         j                  |       |j                  dd|z        k(  sJ t               } t        j                  d      ||       }|D ]  }	|j                  |	        |j                         j                  |       |j                  dd|z        k(  sJ y )
Nr(   r'   rA   r;   rB   r   rC   getincrementalencoderr0   )rF   
getencoderr=   ra   rH   r   re   rI   
iterencoder   	getwriterr   r   )
rD   rM   rN   e	inputdecl
outputdeclierQ   swrT   s
             r   checkz%TestCodec.test_encoder.<locals>.check   s   %N,!( !!%(AeVh->?Iuf~.EFJY<?))(3zAAA UX.q188BjPPPu568V11%8:wwr}}Y78??IZWWW 9V11%8(Kwwr}}U34;;HESSS A(!!%(+B 668??8,v.1   
 A(!!%(X>B 668??8,v.1   r   r(   r*   rV   rW   r+   r/   r-   r'   rZ   u   @charset "x";gürk{}r[   r\   z@charset "css";div{}rA   Nr]   )r^   r_   r`   r   )r   rn   s     r   test_encoderzTestCodec.test_encoder   s    '	T 	khkkhkkgl45mh ]]:&"))%0 '&&s   7BBc                 l   t        j                  d      fd}fd}fd}|||fD ]  }dj                         }d} ||      |k(  sJ dj                         }d} ||dd	      |k(  sJ d
j                         }d} ||dd	      |k(  sJ dj                         }d} ||dd	      |k(  rJ  y)zcodec.decode (force)rA   c                 "     d   | fi |d   S )N   r   r    )rM   kwargsinfos     r   	decodeallz.TestCodec.test_decode_force.<locals>.decodeall>  s    475+F+A..r   c                 J     j                   di |}|j                  |       S )Nr    )incrementaldecoderra   )rM   rs   decoderrt   s      r   	incdecodez.TestCodec.test_decode_force.<locals>.incdecodeB  s'    -d--77G>>%((r   c                 `    t        |       } j                  |fi |}|j                         S r   )iostreamstreamreaderr   )rM   rs   streamreaderrt   s       r   streamdecodez1TestCodec.test_decode_force.<locals>.streamdecodeF  s/    e_F&T&&v88F;;= r   u   @charset "utf-8"; ÿu   @charset "iso-8859-1"; Ã¿rZ   T)rD   force   ÿu   Ã¿FN)rF   lookupr   )r   ru   ry   r   rO   rM   outputrt   s          @r   test_decode_forcezTestCodec.test_decode_force:  s    }}U#	/	)	!
 Y5A" -335E-FU8v%%% -335E6FU\>&HHH MMOEFU\>&HHH -335E-FU\?6IIIE 6r   N)	r   r   r   r4   r9   r>   rb   ro   r   r    r   r   r"   r"   )   s)    LI\KM"j2X;1z3Jr   r"   )
r   rF   ior^   cssutilsr   BytesIOr{   r   r"   r    r   r   <module>r      s5    "  	  :: 8DJ DJr   