
    =hhY@                     ^    d Z ddlZddlZddlZddlZddlmZ  G d dej                        Z	y)z(Testcases for cssutils.css.CSSImportRule    N   )test_cssrulec                   `     e Zd Zd Z fdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z xZS )TestCSSImportRulec                     t         j                  j                         | _        t         j                  j                  d      | _        t         j                  j                  j
                  | _        d| _        y )NT)readonlyIMPORT_RULE)cssutilscssCSSImportRulerrROr	   r_typer_typeStringselfs    a/var/www/api/v1/venv_fitandmore/lib/python3.12/site-packages/cssutils/tests/test_cssimportrule.py_setup_rulezTestCSSImportRule._setup_rule   sN    ++-<<--t-<ll00<<)    c                 
   t         |           | j                  j                  J | j                  j                  J | j                  j
                  rJ d| j                  j                  j                  k(  sJ t        | j                  j                  t        j                  j                        sJ | j                  j                  J t        | j                  j                  t        j                  j                        sJ d| j                  j                  j                   j"                  k(  sJ d| j                  j$                  k(  sJ t        j                  j'                  ddd      }d	|j$                  k(  sJ d|j                  k(  sJ |j                  J d|j                  j                  k(  sJ t        |j                  t        j                  j                        sJ d|j                  k(  sJ |j(                  J |j*                  J t        | j                  j                  t        j                  j                        sJ d| j                  j                  j                   j"                  k(  sJ t        j                  j'                  d
      }d|j$                  k(  sJ d
|j                  k(  sJ |j                  J t        j                  j'                  d
d      }d|j$                  k(  sJ d
|j                  k(  sJ d|j                  j                  k(  sJ t        j                  j'                  d
d      }d|j$                  k(  sJ d
|j                  k(  sJ d|j                  k(  sJ t        j                  j'                  d
dd      }d|j$                  k(  sJ d
|j                  k(  sJ d|j                  j                  k(  sJ d|j                  k(  sJ t        j                  j'                  dd      | _        t        | j                  j                  t        j                  j                        sJ d| j                  j$                  k(  sJ d| j                  j                  j                  k(  sJ d| j                  j                  k(  sJ t-        j.                  t0        j2                  j4                        5  | j                  j7                  d
       ddd       y# 1 sw Y   yxY w)zCSSImportRule.__init__()Nallr    hreftvnamer   	mediaTextr   z@import url(href) tv "name";x@import url(x);print@import url(x) print;nr   @import url(x) "n";z@import url(x) print "n";)r   r   )super	test_initr   r   hreftype	hrefFoundmediar   
isinstancer
   stylesheets	MediaListr   
styleSheetr   CSSStyleSheetcssRuleslengthcssTextr   
parentRuleparentStyleSheetpytestraisesxmldomInvalidModificationErr_setAtkeyword)r   r   	__class__s     r   r&   zTestCSSImportRule.test_init   s    vv{{"""vv&&&66####.....$&&,,(<(<(F(FGGGvv{{"""$&&++X\\-G-GHHHDFF%%..55555TVV^^### LL&&Fd&P-:::zz!!!qww(((((!''8#7#7#A#ABBB||###!!)))$&&++X\\-G-GHHHDFF%%..55555 LL&&s+ AII---aff}}zz!!! LL&&sG4&!))333aff}}!''+++++ LL&&s&5$		111aff}}aff}} LL&&sGS9*aii777aff}}!''+++++aff}} ++gC+H$&&,,(<(<(F(FGGGTVV^^###$&&,,00000dffkk!!! ]]37799:FF  % ;::s   TTc                    i ddddddddddddddd	d
dddd
ddddddddddddddi ddddddddddddddddddddd d!d"d#d$d#d%dd&d'd(d)d*d)d#d+d+d+d,}| j                  |       |j                  d-d.d.dd/d0       | j                  |       t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  d1}| j                  |       |j                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  t        j                  j
                  d2	       | j                  |       y)3zCSSImportRule.cssTextz@import "str";Nz@import"str";z@\import "str";z@IMPORT "str";z@import 'str';z@import 'str' ;z@import "str"  ;z@import "\""  ;@import "\"";z@import '\'';z@import "'";z@import '"';z@import url(x.css);@import url(")");@import url("\"");z@import url('\'');z@import url("'");z@import "str" all;z@import "str" tv, print;z@import"str"tv,print;z@import "str" tv, print, all;z@import "str" handheld, all;z@import "str" all, handheld;z@import "str" not tv;z@import "str" only tv;z%@import "str" only tv and (color: 2);z@import "str" "name";z@import "str" 'name';z@import url(x) "name";z@import "str" "\"";z@import "str" '\'';z@import "str" "'";z@import"str"tv"name";z@import "str" tv "name";z$@import	
"str"		
tv		
"name"	;z@import /*1*/ "str" /*2*/;z?@import/*1*//*2*/"str"/*3*//*4*/all/*5*//*6*/"name"/*7*//*8*/ ;zI@import /*1*/ /*2*/ "str" /*3*/ /*4*/ all /*5*/ /*6*/ "name" /*7*/ /*8*/;z@@import/*1*//*2*/url(u)/*3*//*4*/all/*5*//*6*/"name"/*7*//*8*/ ;zJ@import /*1*/ /*2*/ url(u) /*3*/ /*4*/ all /*5*/ /*6*/ "name" /*7*/ /*8*/;zB@import/*1*//*2*/url("u")/*3*//*4*/all/*5*//*6*/"name"/*7*//*8*/ ;z@import url(u) tv "name";)z%@import
	 "str"
	 tv
	 "name"
	 ;z.@import
	 url(
	 u
	 )
	 tv
	 "name"
	 ;z(@import
	 url("u")
	 tv
	 "name"
	 ;z0@import
	 url(
	 "u"
	 )
	 tv
	 "name"
	 ;z@import "x.css" tv;@import "x.css";z@import "x;";)@import "x.css" tv@import "x.css"@import 'x.css'@import url(x.css)@import "x;)z@import;z@import all;z@import all"name";z@import x";z@import "str" ,all;z@import "str" all,;z@import "str" all tv;z@import "str" "name" all;)	rA   rB   rC   r@   rD   z@import url("x);z@import "x";"a"z@import "x";/**/z@import "x"; )
do_equal_rupdate
do_equal_pr6   r7   	SyntaxErr
do_raise_p
do_raise_rr   testss     r   test_cssTextzTestCSSImportRule.test_cssTextT   s@   0
 $0
  !50
 #$8	0

 !"60
 !"60
 "#70
 #$80
 #$80
 !"50
  40
 &t0
 $%<0
  &'@!0
" &'>#0
( %&:)0
* +D+0
, ()G-0
. 01E/0
0 /0D10
2 /0D30
4 (50
6 )$70
8 890
< (=0
> ()D?0
@ )$A0
B 'C0
D '(@E0
H ()GI0
J FGeK0
N -dO0
P N  P[Q0
R O  Q]S0
T Q  S_U0
X B\PkD_Rm_0
b 	"711"7*
 	 	  GG-- # 1 1&)gg&7&7"ww00'*ww'8'8'*ww'8'8),):):-0WW->->	
 	"ww00"ww00"%''"3"3"%''"3"377,,$'GG$5$5#&77#4#4$'GG$5$5!$!2!2
 	 	r   c                    d| j                   _        d| j                   j                  k(  sJ d| j                   j                  k(  sJ d| j                   _        d| j                   j                  k(  sJ d| j                   j                  k(  sJ d| j                   _        d| j                   j                  k(  sJ d| j                   j                  k(  sJ d| j                   _        d| j                   j                  k(  sJ d	| j                   _        d
| j                   j                  k(  sJ d| j                   _        d| j                   j                  k(  sJ d| j                   _        d| j                   j                  k(  sJ y)zCSSImportRule.hrefr   r   z"http://www.example.com/x?css=z&v=1z0@import url(http://www.example.com/x?css=z&v=1);stringz-@import "http://www.example.com/x?css=z&v=1";"r<   urlr>   )r=   z	NOT VALIDN)r   r   r1   r'   r   s    r   	test_hrefzTestCSSImportRule.test_href   s5    dffkk!!! DFFNN222 ;3tvv{{BBBATVV^^SSS #3tvv{{BBB>$&&..PPP 466>>111$666 "dffnn444%"dffnn444r   c                    d }t        j                  |      }|j                  d      }|j                  d   }d|j                  j
                  k(  sJ |j                  sJ d|j                  k(  sJ d|_        d|j                  j
                  k(  sJ |j                  rJ d	|j                  k(  sJ d
|_        ||j                  d   k7  sJ y)zCSSImportRule.hrefFoundc                     | dk(  ryy)Nzhttp://example.com/yes)Nz/**/)NN rQ   s    r   fetcherz1TestCSSImportRule.test_hrefFound.<locals>.fetcher   s    ..#!r   rX   z'@import "http://example.com/yes" "name"r   s   /**/r   z-@import url(http://example.com/none) "name2";r   name2z%@import url(http://example.com/none);N)r
   	CSSParserparseStringr/   r-   r1   r(   r   )r   rX   parsersheetr   s        r   test_hrefFoundz TestCSSImportRule.test_hrefFound   s    	" ##G4""#LMNN1!,,.....{{{C	all*****;;!&&   ?ENN1%%%%r   c                    t         j                  j                         | _        d| j                  _        d| j                  j
                  k(  sJ d| j                  j                  k(  sJ d| j                  _        d| j                  j
                  k(  sJ d| j                  j                  k(  sJ d| j                  _        d| j                  j                  k(  sJ d| j                  _        d	| j                  j                  k(  sJ y
)zCSSImportRule.hreftypez@import /*1*/url(org) /*2*/;uriz@import /*1*/ url(org) /*2*/;z@import /*1*/"org" /*2*/;rO   z@import /*1*/ "org" /*2*/;newz@import /*1*/ "new" /*2*/;z@import /*1*/ url(new) /*2*/;N)r
   r   r   r   r1   r'   r   r   s    r   test_hreftypezTestCSSImportRule.test_hreftype   s    ++-7'''.$&&..@@@4466??***+tvv~~===+tvv~~===.$&&..@@@r   c                    d| j                   _        t        j                  t              5  | j                   j                  dd       ddd       d| j                   j                  _        d| j                   j                  k(  sJ | j                   j                  j                  d       d| j                   j                  k(  sJ t        j                  d      }t        j                  j                  d	      }t        j                  t        j                   j"                  |
      5  |j                  j                  d       ddd       d|j                  k(  sJ t        j                  t        j                   j"                  |
      5  |j                  j                  d       ddd       d|j                  k(  sJ d|j                  _        d|j                  k(  sJ |j                  j                  d       d|j                  k(  sJ t        j$                  d      }|j&                  d   }t        j                  t        j                   j"                  |
      5  |j                  j                  d       ddd       d|j                  k(  sJ t        j                  t        j                   j"                  |
      5  |j                  j                  d       ddd       d|j                  k(  sJ d|j                  _        d|j                  k(  sJ |j                  j                  d       d|j                  k(  sJ y# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)zCSSImportRule.mediar   r)   Nr    r!   r   z@import url(x) print, tv;zMediaList: Ignoring new medium cssutils.stylesheets.MediaQuery(mediaText='tv') as already specified "all" (set ``mediaText`` instead).r   )matchr   z@import url(x) tv;z@import url(x) tv, print;r   )r   r   r4   r5   AttributeError__setattr__r)   r   r1   appendMediumreescaper
   r   r   r6   r7   r8   r\   r/   )r   tv_msgr   ss       r   
test_mediazTestCSSImportRule.test_media   s    ]]>*FFw- + ")&$&&..888!!$'*dffnn<<<J
 LL&&C&0]]37799HGG  & I AII---]]37799HGG  & I AII--- #qyy000	W%*aii777   !23JJqM]]37799HGG  & I AII---]]37799HGG  & I AII--- #qyy000	W%*aii777S +*" IH IH IH IHs;   M*MM&$M3M?MM#&M03M<?Nc                 r   t         j                  j                  dd      }d|j                  k(  sJ d|j                  k(  sJ d|_        d|j                  k(  sJ d|j                  k(  sJ d|_        d|j                  k(  sJ d|j                  k(  sJ d	|_        d
|j                  k(  sJ d|_        d|j                  k(  sJ d|_        |j                  J d|j                  k(  sJ d|_        |j                  J d|j                  k(  sJ t        j                  t        j                  j                        5  |j                  d       ddd       t        j                  t        j                  j                        5  |j                  d       ddd       y# 1 sw Y   QxY w# 1 sw Y   yxY w)zCSSImportRule.namer   a000000r#   z@import url(x) "a000000";r"   r$   rP   z@import url(x) "\"";rO   z@import "x" "\"";123z@import "x" "123";N@import "x";r   r   {   )r
   r   r   r   r1   r'   r4   r5   r6   r7   rH   _setName)r   r   s     r   	test_namezTestCSSImportRule.test_name$  sp   LL&&s&;AFF"""*aii777aff}}$		111aff}}&!))333
#qyy000#qyy000vv~~***vv~~***]]377,,-JJqM .]]377,,-JJsO .- .---s   ?F!F-!F*-F6c                 
   d }t        j                  |      }|j                  dd      }|j                  dk(  sJ |j                  d   }|j                  dk(  sJ |j
                  j                  dk(  sJ |j
                  j                  d	k(  sJ |j
                  j                  |k(  sJ |j
                  j                  j                  d
k(  sJ |j
                  j                  J |j
                  j                  dk(  sJ |j
                  j                  dk(  sJ |j
                  j                  d   }|j                  dk(  sJ |j
                  j                  dk(  sJ |j
                  j                  d	k(  sJ |j
                  j                  |k(  sJ |j
                  j                  j                  dk(  sJ |j
                  j                  J |j
                  j                  dk(  sJ |j
                  j                  dk(  sJ t        j                  d      }|j                  d   }|j                  dk(  sJ t        |j
                  t         j                  j                        sJ d }t        j                  |      }|j                  d      }|j                  dk(  sJ |j                  d   j
                  }|j                  d	k(  sJ |j                  d   j
                  }|j                  d	k(  sJ y)zCSSImportRule.styleSheetc                     | dk(  ryy)N/root/level1/anything.css)Nz"@import "level2/css.css" "title2";)Nza { color: red }rV   rW   s    r   rX   z2TestCSSImportRule.test_styleSheet.<locals>.fetcherF  s    11A/r   rY   z^@charset "ascii";
                                   @import "level1/anything.css" tv "title";z/root/re   r   zlevel1/anything.cssrx   asciir   Ntitles4   @charset "ascii";
@import "level2/css.css" "title2";zlevel2/css.cssz/root/level1/level2/css.cssr   title2s*   @charset "ascii";
a {
    color: red
    }z@import "CANNOT-FIND.css";r   zCANNOT-FIND.cssc                 (    | j                  d      ryy)Nz
level1.css)Ns'   @charset "ascii"; @import "level2.css";)Ns   a { color: red })endswithrW   s    r   rX   z2TestCSSImportRule.test_styleSheet.<locals>.fetcheru  s    ||L)G0r   z+@charset "iso-8859-1";@import "level1.css";z
iso-8859-1)r
   r[   r\   r   r/   r-   encoding	ownerRuler)   r   r3   rz   r1   r*   r   r.   )r   rX   r]   r^   irir2s         r   test_styleSheetz!TestCSSImportRule.test_styleSheetC  s   	0 ##G4""P # 
 zzX%%%^^Aww////}}!!%@@@@}}%%000}}&&",,,}}"",,444}}--555}}""g---MM!!GH	
H mm$$Q'xx++++~~""&CCCC~~&&'111~~''3...~~##--666~~..666~~##x///NN""&VV	
V $$%AB^^Aww++++"--)C)CDDD	1 ##G4""#PQ~~---q!,,~~(((q!,,~~(((r   c           
      B    dddddddddd	}| j                  |d	       y
)zCSSImportRule (incomplete)r?   rr   r   z@import url("x;");z@import url("x ");z@import "c";)	z@import "x.cssz
@import 'xz@import url(xz@import url('xz@import url("x;z@import url( "x;z@import url("x z@import url(x zD@import "a
                @import "b";
                @import "c";F)raisingN)rG   rK   s     r   test_incompletez!TestCSSImportRule.test_incomplete  s:     1(./3 43/ "0
 	u-r   c                 &    | j                  d       y)z,CSSImportRule.cssText InvalidModificationErrz@importN)_test_InvalidModificationErrr   s    r   test_InvalidModificationErrz-TestCSSImportRule.test_InvalidModificationErr  s    )))4r   c                 D   d}d}d}t         j                  j                  |||      }|t        |      v sJ t	        t        |            }t        ||j                        sJ ||j                  k(  sJ ||j                  j                  k(  sJ ||j                  k(  sJ y)z$CSSImportRule.__repr__(), .__str__()zx.cssz	tv, printr   r   N)r
   r   r   strevalreprr*   r:   r   r)   r   r   )r   r   r   r   rm   s2s         r   test_reprANDstrz!TestCSSImportRule.test_reprANDstr  s    	LL&&DID&Q s1v~~ $q']"akk***rwwBHH.....rwwr   )__name__
__module____qualname__r   r&   rM   rS   r_   rc   rn   ru   r   r   r   r   __classcell__)r:   s   @r   r   r      sF    *>&@Un5<&2A$.8`>A)F.$5r   r   )
__doc__rj   xml.domr6   r4   r
   r   r   TestCSSRuler   rV   r   r   <module>r      s+    . 	    ^00 ^r   