
     hwW                     X    d Z ddlZddlZddlmZ ddlmZ  G d d      Z G d d      Zy)zaTestcases for new cssutils.tokenize.Tokenizer

TODO: old tests as new ones are **not complete**!
    N)	Tokenizerc                      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)kD  rd*nd+d,d-gd.d/d0gd1d2gd3d4gd5d6gd7ej                  d)kD  rd8n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 Zdm Zdn Zyo(p  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)r0   r1   r   r   #111)r0   r2   r   r   #a1a1a1)r0   r3   r   r   #1a1a1a)r0   r4   r   r   z 0 )r	   )NUMBER0r   r   r   z 0.1 )r	   )r5   z0.1r   r   r   z .0 )r	   )r5   z.0r   r   r.   z -0 )r	   )r5   z-0r   r   r.   z 0% )r	   )
PERCENTAGEz0%r   r   r.   z .5% )r	   )r7   z.5%r   r   r   z url() )r	   URIzurl()r   r   r
   r   r      z url(a) )r	   )r9   url(a)r   r   r
   r   r      z
 url("a") )r	   )r9   url("a")r   r   r
   r   r   r+   z
 url( a ) )r	   )r9   zurl( a )r   r   r@   z <!-- )r	   )CDOz<!--r   r   r
   r   r   r   z"<!--""-->")r-   z"<!--"r   r   )r-   z"-->"r   r;   z --> )r	   )CDCz-->r   r   r   r   r	     )r
   rD   r   r   )r
   rE   r   r   
)r
   rF   r   r   
)r
   rG   r   r   )r
   rH   r   r   	)r
   rI   r   r   

	 )r
   rJ   r   r   z/*x*/ )COMMENTz/*x*/r   r   rB   z x( )r	   )FUNCTIONzx(r   r   r.   )r	   )INCLUDES~=r   r   r.   )rM   rN   r   r   )r   =r   r   )r	   )	DASHMATCH|=r   r   r.   )rP   rQ   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   rB   z u+012 )r	   )r^   zu+012r   r   r:   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_   )r5   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   rc   z u+0-1 )r	   r^   zu+0-1r   r   r:   z u+0-1, u+123456-abcdef )r	   re   )r   rW   r   r;   r=   )r^   zu+123456-abcdefr   r*   )r
   r   r      c\olor)r   rg   r   r   -1)r5   rh   r   r   -1px)	DIMENSIONri   r   r   z @x )r	   )	ATKEYWORDz@xr   r   r.   @X)rk   rl   r   r   @\x)rk   rm   r   r   z@1x)r   rR   r   r   )rj   1xr   r   z 0px )r	   )rj   0pxr   r   r   z 1s )r	   )rj   1sr   r   r.   0.2EM)rj   rq   r   r   1p\x)rj   rr   r   r   1PX)rj   rs   r   r   z - 0 )r	   )r   -r   r   r   r5   r6   r   r&   r   z + 0 )r	   rT   r   ru   r   z ^= )r	   )PREFIXMATCH^=r   r   r.   z^==)rv   rw   r   r   z $= )r	   )SUFFIXMATCH$=r   r   r.   z$==)rx   ry   r   r   z *= )r	   )SUBSTRINGMATCH*=r   r   r.   z*==)rz   r{   r   r   u   þÿ )BOM   þÿr   r   u    þÿ )r	   )r   r}   r   r   r.   )r|      ï»¿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   r:   @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   rc   
@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   ra   @charset)rk   r   r   r   z	@CHARSET )rk   z@CHARSETr   r   r)   z
@cha\rset )rk   z	@cha\rsetr   r   z @namespace )r	   )NAMESPACE_SYMz
@namespacer   r   rc   
@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	   )rk   z@unknownr   r   r@   z "\na"
a)r	   )r-   z"\na"r   r   r
   rF   r   r;   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   rc   z! /*1*/ important )r   r   r   r   r
   r   r   r   )rK   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	   )LBRACErS   r   r   r   )r	   )PLUSrU   r   r   r   )r	   )GREATERrV   r   r   r   )r	   )COMMArW   r   r   r   )r	   )CLASSrX   r   r   r   )rY   rZ   r[   r\   r]   )r   ebr   r   )r-   "\""r   r   )r-   "\" "r   r   )r-   '\''r   r   )r	   )INVALID"r   r   )r
   rF   r   r   r   )r	   )r   z"\nar   r   )r
   rF   r   r   r   )r	   )r   z"\r\n\t\n\rar   r   )r
   rF   r      r   )r9   ur\l(a)r   r   )r9   r<   r   r   )r9   zUrL(a)r   r   )r	   r8   )r   )r   r;   )r9   zurl("x")r   r   )r   r   r   r*   )r9   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   )rL   zurl(r   r   )r   r   r   r   )r   z"ar   r   )r   'ar   r   )rL   zUR\l(r   r   )r   r   r   r   )/* "  'abc"with quote" in iturl(aurl("aurl('azUR\l('a)rK   z/**/r   r   )r-   z" "r   r   )r-   z'abc"with quote" in it'r   r   )r9   zurl( a)r   r   )r9   r?   r   r   )r9   z
url( "a ")r   r   )r9   zurl('a')r   r   )
r   r   r   r   zurl( ar   zurl( "a r   zurl("a"zurl('a'c                 "    t               | _        y N)r   	tokenizer)selfs    ]/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_tokenize2.pysetup_methodzTestTokenizer.setup_method  s    "    c                 f   ddl }t        |j                  j                  |j                  j                        }i }|j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                         |D ]k  }|j                  |      }t        |      D ]  \  }}||   |   }||k(  rJ  t        |j                  |            }t        |      t        ||         k(  rkJ  y)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expecteds	            r   test_tokenizezTestTokenizer.test_tokenize  s    &##**H,C,C,O,O
	 T]]#T[[!T[[!T(()T--.C'',F&v.	6 :a=6))) /
 ),,S12Fv;#eCj/111 r   c                    ddl }t        |j                  j                  |j                  j                        }i }|j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                         |j                  | j                         |D ]s  }|j                  |d      }t        |      D ]  \  }}	 ||   |   }||k(  rJ  t        |j                  |d            }t        |      dz
  t        ||         k(  rsJ  y# t        $ r |d   dk(  sJ Y kw xY w)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   s	            r   test_tokenizefullsheetz$TestTokenizer.test_tokenizefullsheet  s8   &##**H,C,C,O,O
	 T]]#T[[!T[[!T(()T,,-C''t'<F&v.	6.$Sz!}H
 $v--- / ),,SD,ABFv;?c%*o555  " .!!9---.s   ,D;;EEN)__name__
__module____qualname__sys
maxunicoder   r   r   
tests2onlyr   r   r   r   r   r    r   r   r   r      s   E67E 	IE 	$%	E
 	$%E 	&'E 	89E 	$%E 	()E 	QE 	)*E 	)*E 	)*E 	(*=>E  	Q!E( 	-.)E* 	')9:+E, 	%&-E. 	&'/E0 	&'1E2 	&'3E4 	&'5E6 	? >>G+ RT)A
7EJ 	')<=KEL 	*+MEP 	./QER 	/0SET 	 >>G+ /1	
UEb 	45cEd 	 
eEn 	)=+
oEv 	LwEx 	PyEz 	L{E| 	)*}E~ 	12E@ 	)*AEB 	)*CED 	-.EEF 	/0GEJ 	23KEN 	JOEP 	'(QER 	'(SET 	-.UEV 	-.WEZ 	J[E\ 	N]E^ 	L_E` 	 
aEp 	PqEr 	RsEv 	OwEx 	QyEz 	V{E| 	V}EB 	MCED 	24MNEEH 	KIEL 	MEN 	 !OEP 	 !QER 	 !SET 	$%UEV 	 !WEX 	 !YEZ 	67[E^ 	-/?@_Eb 	NcEf O(*=>O)+>?H IHHHHIEHNmUm 	Wm 	 
	m 	 
m 	 
m& 	 
'm0 	 
1m< 	 
=mF 	 
GmP 	 
QmZ 	 
[md 	# %
emv 	./wm| 	%&}m~ 	,-mB 	OCmD 	()EmF 	,-GmJ 	#%>?KmN 	QOmP 	OQmR 	./SmT 	./UmV 	*+WmZ 	 
[mh 	 
imx 	Qymz 	+-@A{m~ 	Qm@ 	+-@AAmD 	TEmF 	.0CDGmJ 	/1ABKmL 	WMmN 89IJ
QmF^V 	 
V 	34V 	ABV 	ABV 	ABV 	*C,
V 	*C,
V& 	T'V( 	-.)V* 	34+V, 	34-V. 	?@/V0 	?@1V4 	W5V6 	017V8 	679V: 	67;V< 	'?)
=VB 	*B,
CVH 	*B,
IVP 	 
QVZ 	<=[V\ 	FG]V^ 	FG_Vb 	'C)
cVh 	'C)
iVp 	9;LMqVr 	 
sV| 	45}V~ 	57GHV@ 	-
AVJ 	 
KVT 	>?UVV 	FGWVX 	FGYVZ 	(D*
[V` 	(D*
aVh 	 
iVv 	 
wVB 	 
CVN 	 !
OVZ 	 
[Vf 	 
gVv 	 
wV@ 	 
AVJ 	*,HIKVL 	1 
MVT 	1 
UV\ 	()*
]Vd 	()*
eVFv KHKIIJ ,,+,-.34

"
 //*+0101R/1DE/1DEC"NN #$78 "9:9&

 -.BC-/FG-/FG13JK& )) "9:9&

 **+,,-01,--.-.!&%206r   r   c                       e Zd ZdZg dZej                  j                  de      d        Zg dZ	ej                  j                  de	      d        Z
y)	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                 <    t        j                  |||      |k(  sJ y r   )	tokenize2has_at)r   stringpostextr   s        r   test_has_atzTestTokenizerUtils.test_has_at<  s    T2h>>>r   ))r   r   r   T)r   r   r   T)r   r   r   F)r   r+   r   Fzstring, pos, suffix, expectedc                 <    t        j                  |||      |k(  sJ y r   )r   	suffix_eq)r   r   r   suffixr   s        r   test_suffix_eqz!TestTokenizerUtils.test_suffix_eqG  s    ""6378CCCr   N)r   r   r   __doc__has_at_casespytestmarkparametrizer   suffix_eq_casesr   r   r   r   r   r   /  sc    2L [[:LI? J?O [[<oND ODr   r   )r  r   r  cssutils.tokenize2r   r   r   r   r   r   r   <module>r     s1   
   & (^6 ^6BD Dr   