o
    /hwW                     @   sL   d Z ddlZddlZddlmZ ddlmZ G dd dZG dd dZdS )zaTestcases for new cssutils.tokenize.Tokenizer

TODO: old tests as new ones are **not complete**!
    N)	Tokenizerc                   @   s  e Zd Zi ddgdg dddgddgd	d
gddgddgddgdg dddgddgddgdddgdg dddgdddgddgi d d!gd"d#gd$d%gd&d'gd(ejd)krgd*nd+d,d-gd.d/d0gd1d2gd3d4gd5d6gd7ejd)krd8nd9gd:d;gd<g d=d>d?gd@g dAdBg dCdDg dEdFdGgi dHdGgdIdGgdJdGgdKdLgdMdLgdNdOgdPg dQdRdSgdTdUgdVdWgdXdYgdZg d[d\g d]d^g d_d`g dadbg dcddg dei dfg dgdhg didjg dkdlg dmdng dodpdqdrgdsg dtdudvgdwdxgdydzgd{d|gd}d~gddgddgddgdddgdg dg dddgg dddgg dg dg dg dg dg dd
Zi dg ddg ddg ddg ddg ddg ddg ddg ddg ddg ddg ddg dddgddgddgdg dddgi ddgdddgdg ddg dddgddgddgdg dȢdg dʢdg d̢dddgdg dТdddgdg dԢdddgdddvgdg dڢddvgg dܢdݜZi dg dߢddgddgddgddgddgddgdg dddgddgddgddgddgdg dddgddgddgi d dgddgddgdg ddd	gd
dgddgddgddgdddgdg dddgdddgdddgdg dd d!gd"d#gi d$d%gd&d'gd(d)gd*g d+d,g d-d.g d/d0g d1d2g d3d4g d5d6g d7d8g d9d:d;d<gd=d;d>gd?d;d@gdAd;d<gdBd;dCgZg dDg dEg dFg dGg dHdIZdJgdKgdLgdMgg dNg dOg dPdQgdRgdSgdRgg dTdUdVgdWdVgdXZ	dYdZgdvd[gdvd\gd]d^gd]d_gd]d`gdadbgdcZ
ddgdvdegdvdfgdRgdggdhgdigdjgdhgdjgdk
Zdldm Zdndo Zdpdq ZdrS (s  TestTokenizer   äöüß€)IDENTr      r   z a )S r   r   )r   ar      r   r	   r      _a)r   r   r   r   -a)r   r   r   r   --a)r   r   r   r      aA-_ÿ)r   r   r   r   a1)r   r   r   r   z\44 b)r   Dbr   r   z\44  b)r   Dr   r   r   r	   r      )r   br      z\44
bz\44bz\44bz\44
*r   )CHAR*r   r   z\44  a)r   r   )r   r
   r   r   z\44\ x)r   zD\ xr   r   z\44  r   z\44\\)r   r   r   r   \{)r   r   r   r   \")r   r   r   r   \()r   r   r   r   z3\1 \22 \333 \4444 \55555 \666666 \777777 7 \7777777i   )r   u   "̳䑄񕕕\666666 \777777 7r   r   )r   u   "̳䑄\55555 \666666 \777777 7r   r   )r   r	   r   +   )r   z\7777777r   ,   zand()r   andr   r   )r   (r      z\1 b)r   zbr   r   z\123 b)r   u   ģbr   r   z\1234 b)r   u   ሴbr   r   \12345 b)r   u   𒍅br   r   )r   r%   r   r   	\123456 b)r   r&   r   r   z
\1234567 b))r   z\1234567r   r   r   r	   r   	   )r   r   r   
   \{\}\(\)\[\]\#\@\.\,)r   r*   r   r   z "" )r   )STRINGz""r   r   r   r	   r   r$   z "'" )r   )r+   z"'"r   r   r   z '' )r   )r+   ''r   r   r,   z'\
')r+   r-   r   r   z'\
\
\
'z'\'z'\'z'1\
2')r+   z'12'r   r   z'1\
2'z"\61|\0061")r+   z"a|a"r   r   z #a )r   )HASHz#ar   r   r,   #ccc)r.   r/   r   r   #111)r.   r0   r   r   #a1a1a1)r.   r1   r   r   #1a1a1a)r.   r2   r   r   z 0 )r   )NUMBER0r   r   r   z 0.1 )r   )r3   z0.1r   r   r   z .0 )r   )r3   z.0r   r   r,   z -0 )r   )r3   z-0r   r   r,   z 0% )r   )
PERCENTAGEz0%r   r   r,   z .5% )r   )r5   z.5%r   r   r   z url() )r   URIzurl()r   r   r   r	   r      z url(a) )r   )r7   url(a)r   r   r   r	   r      z
 url("a") )r   )r7   url("a")r   r   r   r	   r   r)   z
 url( a ) )r   )r7   zurl( a )r   r   r>   z <!-- )r   )CDOz<!--r   r   r   r	   r   r   z"<!--""-->")r+   z"<!--"r   r   )r+   z"-->"r   r9   z --> )r   )CDCz-->r   r   r   r	   r     )r   rB   r   r   )r   rC   r   r   
)r   rD   r   r   
)r   rE   r   r   )r   rF   r   r   	)r   rG   r   r   

	 )r   rH   r   r   z/*x*/ )COMMENTz/*x*/r   r   r@   z x( )r   )FUNCTIONzx(r   r   r,   )r   )INCLUDES~=r   r   r,   )rK   rL   r   r   )r   =r   r   )r   )	DASHMATCH|=r   r   r,   )rN   rO   r   r   )r   )r   @r   r   r   )r   )r   {r   r   r   )r   r   +r   r   r   )r   )r   >r   r   r   )r   )r   ,r   r   r   )r   )r   .r   r   r   )
z ~= z~==z |= z|==z @  {  +  >  ,  . z u+0 )r   )UNICODE-RANGEzu+0r   r   r   z u+01 )r   )r\   zu+01r   r   r@   z u+012 )r   )r\   zu+012r   r   r8   z u+0123 )r   )r\   zu+0123r   r   r;   z	 u+01234 )r   )r\   zu+01234r   r   r'   z
 u+012345 )r   r\   zu+012345r   r   r>   z u+0123456 )r   r]   )r3   6r   r)   r   r	   r      z
 U+123456 )r   )r\   zU+123456r   r   r>   z \55+abcdef )r   )r\   zU+abcdefr   r   r   r	   r      z \75+abcdef )r   )r\   zu+abcdefr   r   ra   z u+0-1 )r   r\   zu+0-1r   r   r8   z u+0-1, u+123456-abcdef )r   rc   )r   rU   r   r9   r;   )r\   zu+123456-abcdefr   r(   )r   r	   r      c\olor)r   re   r   r   -1)r3   rf   r   r   -1px)	DIMENSIONrg   r   r   z @x )r   )	ATKEYWORDz@xr   r   r,   @X)ri   rj   r   r   @\x)ri   rk   r   r   z@1x)r   rP   r   r   )rh   1xr   r   z 0px )r   )rh   0pxr   r   r   z 1s )r   )rh   1sr   r   r,   0.2EM)rh   ro   r   r   1p\x)rh   rp   r   r   1PX)rh   rq   r   r   z - 0 )r   )r   -r   r   r   r3   r4   r   r$   r   z + 0 )r   rR   r   rs   r   z ^= )r   )PREFIXMATCH^=r   r   r,   z^==)rt   ru   r   r   z $= )r   )SUFFIXMATCH$=r   r   r,   z$==)rv   rw   r   r   z *= )r   )SUBSTRINGMATCH*=r   r   r,   z*==)rx   ry   r   r   u   þÿ )BOM   þÿr   r   u    þÿ )r   )r   r{   r   r   r,   )rz      ï»¿r   r   )r   )r   r|   r   r   r   )u   ï»¿ u    ï»¿ z	 @import )r   )
IMPORT_SYMz@importr   r   r'   @IMPORT)r}   r~   r   r   @\49
MPORT)r}   r   r   r   @\i\m\p\o\r\t)r}   r   r   r   @\I\M\P\O\R\T)r}   r   r   r   @\49 \04d\0050\0004f\000052\54)r}   r   r   r   @\69 \06d\0070\0006f\000072\74)r}   r   r   r   z @page )r   )PAGE_SYMz@pager   r   r8   @PAGE)r   r   r   r   @\pa\ge)r   r   r   r   @\PA\GE)r   r   r   r   @\50\41\47\45)r   r   r   r   @\70\61\67\65)r   r   r   r   z @media )r   )	MEDIA_SYMz@mediar   r   r;   @MEDIA)r   r   r   r   @\med\ia)r   r   r   r   @\MED\IA)r   r   r   r   @\4d
\45\44	\49
A)r   r   r   r   @\4d
\45\44	\49\41)r   r   r   r   @\6d
\65\64	\69\61)r   r   r   r   z @font-face )r   )FONT_FACE_SYMz
@font-facer   r   ra   
@FONT-FACE)r   r   r   r   @f\o\n\t\-face)r   r   r   r   @F\O\N\T\-FACE)r   r   r   r   @\46\4f\4e\54\-\46\41\43\45)r   r   r   r   @\66\6f\6e\74\-\66\61\63\65)r   r   r   r   z
@charset  )CHARSET_SYM	@charset r   r   r>   z @charset  )r   )r   r   r   r   r_   @charset)ri   r   r   r   z	@CHARSET )ri   z@CHARSETr   r   r'   z
@cha\rset )ri   z	@cha\rsetr   r   z @namespace )r   )NAMESPACE_SYMz
@namespacer   r   ra   
@NAMESPACE)r   r   r   r   @\na\me\s\pace)r   r   r   r   @\NA\ME\S\PACE)r   r   r   r   @\4e\41\4d\45\53\50\41\43\45)r   r   r   r   @\6e\61\6d\65\73\70\61\63\65)r   r   r   r   z
 @unknown )r   )ri   z@unknownr   r   r>   z "\na"
a)r   )r+   z"\na"r   r   r   rD   r   r9   r   r
   r   r   z '\na'
a)r   )r+   z'\na'r   r   r   r   z "\r\n\t\n\ra"a)r   )r+   z"\r\n\t\n\ra"r   r   )r   r
   r      z !important )r   )r   !r   r   r   	importantr   r   ra   z! /*1*/ important )r   r   r   r   r   r	   r   r   )rI   z/*1*/r   r   r;   )r   r   r   r(   )r   r	   r      z! important)r   r   r   z!
	important)r   )r   z
	r   r   )r   r   r   r   z
!IMPORTANTr   )r   	IMPORTANTr   r   z!\i\m\p\o\r\ta\n\t)r   z\i\m\p\o\r\ta\n\tr   r   z!\I\M\P\O\R\Ta\N\T)r   z\I\M\P\O\R\Ta\N\Tr   r   z!\49\4d\50\4f\52\54\41\4e\54z!\69\6d\70\6f\72\74\61\6e\74)r   r   r   r   )r   )LBRACErQ   r   r   r   )r   )PLUSrS   r   r   r   )r   )GREATERrT   r   r   r   )r   )COMMArU   r   r   r   )r   )CLASSrV   r   r   r   )rW   rX   rY   rZ   r[   )r   ebr   r   )r+   "\""r   r   )r+   "\" "r   r   )r+   '\''r   r   )r   )INVALID"r   r   )r   rD   r   r   r   )r   )r   z"\nar   r   )r   rD   r   r   r   )r   )r   z"\r\n\t\n\rar   r   )r   rD   r      r   )r7   ur\l(a)r   r   )r7   r:   r   r   )r7   zUrL(a)r   r   )r   r6   )r   )r   r9   )r7   zurl("x")r   r   )r   r   r   r(   )r7   zurl('x')r   r   )z\65
br   r   r   z "
az "\na
az "\r\n\t\n\ra
ar   r:   z
\55r\4c(a)z
\75r\6c(a)z url())z	url("x"))z	url('x')))r   /r   r   )r   r   r   r   )r   z" r   r   )r   z'abc"with quote" in itr   r   )rJ   zurl(r   r   )r   r
   r   r   )r   z"ar   r   )r   'ar   r   )rJ   zUR\l(r   r   )r   r   r   r   )/* "  'abc"with quote" in iturl(aurl("aurl('azUR\l('a)rI   z/**/r   r   )r+   z" "r   r   )r+   z'abc"with quote" in it'r   r   )r7   zurl( a)r   r   )r7   r=   r   r   )r7   z
url( "a ")r   r   )r7   zurl('a')r   r   )
r   r   r   r   zurl( ar   zurl( "a r   zurl("a"zurl('a'c                 C   s   t  | _d S N)r   	tokenizer)self r   Q/var/www/html/myenv/lib/python3.10/site-packages/cssutils/tests/test_tokenize2.pysetup_method  s   zTestTokenizer.setup_methodc           	      C   s   ddl }t|jj|jj}i }|| j || j || j || j	 || j
 |D ]/}||}t|D ]\}}|| | }||ksJJ q:t||}t|t|| ks^J q/dS )zcssutils Tokenizer().tokenize()r   N)cssutils.cssproductionsr   cssproductionsMACROSPRODUCTIONSupdatetestsalltests2tests3testsfullsheettestsfullsheetfalsetokenize	enumeratelistlen	r   cssutilsr   testscsstokensiactualexpectedr   r   r   test_tokenize  s$   
zTestTokenizer.test_tokenizec           	   
   C   s   ddl }t|jj|jj}i }|| j || j || j || j	 || j
 |D ]I}|j|dd}t|D ]$\}}z|| | }W n tyY   |d dksWJ Y q<w ||ks`J q<t|j|dd}t|d t|| ksxJ q/dS )z-cssutils Tokenizer().tokenize(fullsheet=True)r   NT)	fullsheetEOFr   )r   r   r   r   r   r   r   r   r   r   testsfullsheettruer   r   
IndexErrorr   r   r   r   r   r   test_tokenizefullsheet  s,   z$TestTokenizer.test_tokenizefullsheetN)__name__
__module____qualname__sys
maxunicoder   r   r   
tests2onlyr   r   r   r   r   r   r   r   r   r   r      sZ   

%&()*
127;<=>?@ABCEGHIJKMNOPXY[\]^abdfghijklmoqs  	#(-2;>?ABCEGHIJKMT\]_`bcefgo	
!$(
-
.
/1489
>?@E
J
K
LMPT[agms{             


'



r   c                   @   sL   e Zd ZdZg dZejdedd Zg dZ	ejde	dd	 Z
d
S )TestTokenizerUtilsz(Tests for the util functions of tokenize))foor   r   T)r   r   fT)r   r   oT)r   r   ooT)r   r$   r   F)r   r   barF)r   r   foobarFzstring, pos, text, expectedc                 C      t ||||ksJ d S r   )	tokenize2has_at)r   stringpostextr   r   r   r   test_has_at<     zTestTokenizerUtils.test_has_at))r   r   r   T)r   r   r   T)r   r   r   F)r   r)   r   Fzstring, pos, suffix, expectedc                 C   r   r   )r   	suffix_eq)r   r   r   suffixr   r   r   r   test_suffix_eqG  r   z!TestTokenizerUtils.test_suffix_eqN)r   r   r   __doc__has_at_casespytestmarkparametrizer   suffix_eq_casesr   r   r   r   r   r   /  s    

r   )r   r   r   cssutils.tokenize2r   r   r   r   r   r   r   r   <module>   s        %