
     h&                     N    d Z ddlZddlZddlmZ  G d dej                        Zy)zJTestcases for cssutils.css.cssvariablesdelaration.CSSVariablesDeclaration.    N   )basetestc                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)TestCSSVariablesDeclarationc                 J    t         j                  j                         | _        y )N)cssutilscssCSSVariablesDeclarationr)selfs    k/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_cssvariablesdeclaration.pysetup_methodz(TestCSSVariablesDeclaration.setup_method   s    557    c                    t         j                  j                         }d|j                  k(  sJ d|j                  k(  sJ |j
                  J t         j                  j                  d      }d|j                  k(  sJ d|j                  d      k(  sJ t         j                  j                         }t         j                  j                  d|      }||j
                  k(  sJ y)	z"CSSVariablesDeclaration.__init__() r   Nx: 0cssText0x)r   
parentRule)r   r	   r
   r   lengthr   getVariableValueCSSVariablesRule)r   vrules      r   	test_initz%TestCSSVariablesDeclaration.test_init   s    LL002QYYAHH}}||###LL000@"""a((----||,,.LL00D0Qq||###r   c                     t         j                  j                  d      }dD ]  }||v sJ |j                         |v rJ  d|vsJ y)z*CSSVariablesDeclaration.__contains__(name)z
x: 0; y: 2r   )r   yzN)r   r	   r
   upper)r   r   tests      r   test__contains__z,TestCSSVariablesDeclaration.test__contains__   sQ    LL000FD199::<1$$$  !||r   c                    t         j                  j                         }d}||d<   ||d   k(  sJ ||j                  d      k(  sJ ||d   k(  sJ ||j                  d      k(  sJ d|d   k(  sJ d|j                  d      k(  sJ d|d<   d|j                  k(  sJ t        |      ddgk(  sJ |d= d	|j                  k(  sJ d	|j                  k(  sJ d|j                  d      k(  sJ d|j                  d      k(  sJ d
|j                  k(  sJ d|_        g }t        d
|j                        D ]"  }|j                  |j                  |             $ t        |      ddgk(  sJ y)z%CSSVariablesDeclaration[variableName]r   Xr   r   r   1r       r   r   zx:0; y:1N)r   r	   r
   r   r   sortedremoveVariabler   rangeappenditem)r   r   valuekeysis        r   
test_itemsz&TestCSSVariablesDeclaration.test_items&   s   LL002##**3////#**3////QsV||Q'',,,,#AHH}} ayS#J&&&cFAHH}}AHH}}a&&s++++Q%%c****AHH}}	q!((#AKKq	" $d|Sz)))r   c                     t         j                  j                  d      }ddgt        |j	                               k(  sJ y)zCSSVariablesDeclaration.keys()z
x: 0; Y: 2r   r   r   N)r   r	   r
   r(   r.   r   r   s     r   	test_keysz%TestCSSVariablesDeclaration.test_keysI   s6    LL000FSzVAFFH----r   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dddddd}| j                  |       d }y)CSSVariablesDeclaration.cssTextr    z 	 
  zx: 1Nzx: "a"zx: rgb(1, 2, 3)zx: 1px 2px 3pxzx:1zx:1;z	x  :  1  zx  :  1  ;  zx:1;y:2z
x: 1;
y: 2zx:1;y:2;zx  :  1  ;  y  :  2  zx  :  1  ;  y  :  2  ;  z/*x*/zx555: 5zxxx: 1;
yyy: 2zx: 2zsame: 2z>/**/ 
 /**/ 
 /**/ 
 x: 1 /**/;
/**/ 
 /**/ 
 /**/ 
 y: 2 /**/)zxxx:1;yyy:2zxxx : 1; yyy : 2zx:1;x:2;X:2zsame:1;SAME:2;z'/**/x/**/:/**/1/**/;/**/y/**/:/**/2/**/c                    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                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  d}| j                  |       y)r5   )topztop:ztop : ztop:;ztop 0ztop 0;:z:0z:0;z:;z: ;r   z0;;N)xmldom	SyntaxErr
do_raise_r)r   testss     r   test_cssText2z?TestCSSVariablesDeclaration.test_cssText.<locals>.test_cssText2k   s     ww(())''++****''++WW&&gg''ww((gg''ww((WW&&gg''WW&&E  OOE"r   )
do_equal_r)r   r?   r@   s      r   test_cssTextz(TestCSSVariablesDeclaration.test_cssTextN   s    


 
 D	

 d
 t
 d
 6
 F
 
 F
 }
 
 $]
 '
  W!
" t#
$ - 1!'7~-
0 		#r   c                 N   t         j                  j                         }d|j                  d      k(  sJ |j	                  dd       d|j                  d      k(  sJ d|j                  d      k(  sJ d|j
                  k(  sJ |j	                  dd       d|j                  d      k(  sJ d|j                  d      k(  sJ d|j
                  k(  sJ d|j                  d      k(  sJ d|j                  d      k(  sJ d|j                  d      k(  sJ d|j
                  k(  sJ y)z#CSSVariablesDeclaration.xVariable()r   r   r   r%   r   N)r   r	   r
   r   setVariabler   r)   r2   s     r   test_xVariablez*TestCSSVariablesDeclaration.test_xVariable   s,   LL002Q'',,,,	c3a((----a((----"""	c3a((----a((----"""a&&s++++Q%%c****Q'',,,,QYYr   c                 B   d }d}t        j                  |      }|j                  |      }|j                  d   j                  j
                  dk(  sJ |j                  j
                  dk(  sJ g dt        |j                  j                               k(  sJ dt         j                  j                  _
        |j                  d	k(  sJ d
t         j                  j                  _
        |j                  dk(  sJ t        j                  |      }|j                  dk(  sJ y)zCSSVariables importsc                 j    | j                  dd      } | | j                  d      dz   d  } d dddd|    fS )N\/r   ar  
                    @variables {
                        over3-2-1-0: 3;
                        over3-2-1: 3;
                        over3-2: 3;
                        over3-2-0: 3;
                        over3-1: 3;
                        over3-1-0: 3;
                        over3-0: 3;
                        local3: 3;
                    }

                ar  
                    @variables {
                        over3-2-1-0: 2;
                        over3-2-1: 2;
                        over3-2-0: 2;
                        over3-2: 2;
                        over2-1: 2;
                        over2-1-0: 2;
                        over2-0: 2;
                        local2: 2;
                    }

                a  
                    @import "3.css";
                    @import "2.css";
                    @variables {
                        over3-2-1-0: 1;
                        over3-2-1: 1;
                        over3-1: 1;
                        over3-1-0: 1;
                        over2-1: 1;
                        over2-1-0: 1;
                        over1-0: 1;
                        local1: 1;
                    }

                )z3.cssz2.cssz1.css)replacerfind)urls    r   fetcherz9TestCSSVariablesDeclaration.test_imports.<locals>.fetcher   sY    ++dC(Cciinq(*+C7*T U*- -r   a  
            @import "1.css";
            @variables {
                over3-2-1-0: 0;
                over3-2-0: 0;
                over3-1-0: 0;
                over2-1-0: 0;
                over3-0: 0;
                over2-0: 0;
                over1-0: 0;
                local0: 0;
            }
            a {
                local0: var(local0);
                local1: var(local1);
                local2: var(local2);
                local3: var(local3);
                over1-0: var(over1-0);
                over2-0: var(over2-0);
                over3-0: var(over3-0);
                over2-1: var(over2-1);
                over3-1: var(over3-1);
                over3-2: var(over3-2);
                over2-1-0: var(over2-1-0);
                over3-2-0: var(over3-2-0);
                over3-2-1: var(over3-2-1);
                over3-2-1-0: var(over3-2-1-0);
            }
        )rM   r         )local0local1local2local3zover1-0zover2-0zover2-1z	over2-1-0zover3-0zover3-1z	over3-1-0zover3-2z	over3-2-0z	over3-2-1zover3-2-1-0Fs:  @import "1.css";
@variables {
    over3-2-1-0: 0;
    over3-2-0: 0;
    over3-1-0: 0;
    over2-1-0: 0;
    over3-0: 0;
    over2-0: 0;
    over1-0: 0;
    local0: 0
    }
a {
    local0: var(local0);
    local1: var(local1);
    local2: var(local2);
    local3: var(local3);
    over1-0: var(over1-0);
    over2-0: var(over2-0);
    over3-0: var(over3-0);
    over2-1: var(over2-1);
    over3-1: var(over3-1);
    over3-2: var(over3-2);
    over2-1-0: var(over2-1-0);
    over3-2-0: var(over3-2-0);
    over3-2-1: var(over3-2-1);
    over3-2-1-0: var(over3-2-1-0)
    }Ts   @import "1.css";
a {
    local0: 0;
    local1: 1;
    local2: 2;
    local3: 3;
    over1-0: 0;
    over2-0: 0;
    over3-0: 0;
    over2-1: 1;
    over3-1: 1;
    over3-2: 2;
    over2-1-0: 0;
    over3-2-0: 0;
    over3-2-1: 1;
    over3-2-1-0: 0
    }sB  /* START @import "1.css" */
/* START @import "3.css" */
/* START @import "2.css" */
a {
    local0: 0;
    local1: 1;
    local2: 2;
    local3: 3;
    over1-0: 0;
    over2-0: 0;
    over3-0: 0;
    over2-1: 1;
    over3-1: 1;
    over3-2: 2;
    over2-1-0: 0;
    over3-2-0: 0;
    over3-2-1: 1;
    over3-2-1-0: 0
    }N)r   	CSSParserparseStringcssRules	variablesr   r(   r.   serprefsresolveVariablesr   resolveImports)r   rM   r	   pss        r   test_importsz(TestCSSVariablesDeclaration.test_imports   s!   0	d: w/MM# zz!}&&--222{{!!R'''
  AKK$$&'!( 	( (& /4+II			
	> /3+II			
	( ##A&II			
	r   c                     t        j                  d      }|j                  d   }|j                  }||j                  k(  sJ t         j
                  j                  d      }||_        ||j                  k(  sJ y)z"CSSVariablesDeclaration.parentRulez@variables { a:1}r   zb: 2N)r   rU   rV   rW   r   r	   r
   )r   r]   r   dd2s        r   test_parentRulez+TestCSSVariablesDeclaration.test_parentRuleO  sh      !45JJqMKKALL   \\11&9BMM!!!r   c                     t         j                  j                  d      }dt        |      v sJ t	        t        |            }t        ||j                        sJ y)z.CSSVariablesDeclaration.__repr__(), .__str__()za:1;b:2r   2N)r   r	   r
   strevalrepr
isinstance	__class__)r   r]   s2s      r   test_reprANDstrz+TestCSSVariablesDeclaration.test_reprANDstrZ  sJ    LL000Cc!f}}$q']"akk***r   N)__name__
__module____qualname__r   r   r#   r0   r3   rB   rE   r^   rb   rk    r   r   r   r   
   s8    8$!*F.
0#d(y
v	"+r   r   )__doc__xml.domr;   r   r   r   BaseTestCaser   ro   r   r   <module>rs      s%    P   W+("7"7 W+r   