
     h!                     V    d 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(Test cases for cssutils.css.CSSStyleRule    N   )test_cssrulec                   T     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 xZS )TestCSSStyleRulec                     t         j                  j                         | _        t         j                  j                  d      | _        t         j                  j                  j
                  | _        d| _        y )NT)readonly
STYLE_RULE)cssutilscssCSSStyleRulerrROr	   r_typer_typeString)selfs    `/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_cssstylerule.py_setup_rulezTestCSSStyleRule._setup_rule   sN    **,<<,,d,;ll//::(    c                    t         |           d| j                  j                  k(  sJ t	        | j                  j
                  t        j                  j                  j                        sJ d| j                  j                  k(  sJ t	        | j                  j                  t        j                  j                        sJ | j                  | j                  j                  j                  k(  sJ y)zCSSStyleRule.type and init N)super	test_initr   cssText
isinstanceselectorListr
   r   selectorlistSelectorListselectorTextstyleCSSStyleDeclaration
parentRule)r   	__class__s    r   r   zTestCSSStyleRule.test_init   s    TVV^^###$&&--x||/H/H/U/UVVVTVV((((($&&,,(H(HIIIvv00000r   c                    t         j                  j                         }|j                  |j                  }}||j
                  k(  sJ ||j
                  k(  sJ d|_        ||j                  k7  sJ d|j                  j                  k(  sJ ||j                  k7  sJ d|j                  j                  d      k(  sJ |j                  |j                  }}d}|D ]g  }	 ||_        ||j                  k(  sJ d|j                  j                  k(  sJ ||j                  k(  sJ d|j                  j                  d      k(  rgJ  t        j                  d      }|j                  d   }|j                  }|j                  }d|_        ||j                  k7  sJ d|j                  j                  k(  sJ d|j                  k(  sJ |j                  }	d	|	_        |	|j                  k(  sJ d	|j                  j                  k(  sJ d	|j                  k(  sJ t         j                  j                  d
      }
|
|_        |
|j                  k(  sJ d
|j                  j                  k(  sJ d|
_        d|
j                  k(  sJ d|j                  j                  k(  sJ d|j                  _        d|
j                  k(  sJ d|j                  j                  k(  sJ d|_        ||j                  k7  sJ d|j                  j                  k(  sJ t        j                  d      }||_        ||j                  k(  sJ d|j                  j                  k(  sJ |j                  |j                  }}	 d|_        ||j                  k(  sJ ||j                  k(  sJ d|_        ||j                  k7  sJ ||j                  k7  sJ y# t        j                  j                  $ r Y w xY w# t        j                  j                   $ r Y w xY w)zCSSStyleRule referencesz	a { x:1 }a1x)z
$b { x:2 }z	c { $x3 }z/b { 2 }z	a {s1: 1}r   bcsel2sel2bsel2czs1: 2zs2: 1z$ {content: "new"}za {content: "new"}N)r
   r   r   r   r   r!   r   r   getPropertyValuexmldomDOMExceptionparseStringcssRulesr   
parseStyle	SyntaxErr)r   sselr   invalidsinvalidr   sel1st1sel1br)   st2slsts                 r   	test_refszTestCSSStyleRule.test_refs   s   LL%%'^^QWWUCNN"""E$$$$$	ann$$$ann11111agg..s3333^^QWWU

  G#	 !..(((!..55555AGG###!''2237777     -JJqM~~gg q~~%%%ann11111ann$$$ &&&ann11111ann$$$||((0q~~%%%44444#$+++++!..55555&-#$+++++!..55555 agg~~!''//)))!!'*agg~~!''//))) B	,AI Q^^###QWW}}(	Q^^###QWW}}y 77'' j ww   		s$   N<)O  <OO P ?P c                    ddd}| j                  |       dt        j                  j                  _        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!}| j                  |       | j                  |       t        j                  j                  t        j                  j                  t        j                  j                  d#}| j                  |       |j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  d$       | j                  |       y)%zCSSStyleRule.cssTextr   )* {}a {}Tza
{color: #000}za {
    color: #000
    }za
{color: #000000}za
{color: #abc}za {
    color: #abc
    }za
{color: #abcdef}za {
    color: #abcdef
    }za
{color: #00a}za {
    color: #00a
    }za
{color: #1a1a1a}za {
    color: #1a1a1a
    }z#id
{ color: red }z#id {
    color: red
    }r@   NrA   zb { a: 1; }zb {
    a: 1
    }zc1 {/*1*/a:1;}zc1 {
    /*1*/
    a: 1
    }zc2 {a:1;/*2*/}zc2 {
    a: 1;
    /*2*/
    }z
d1 {/*0*/}zd1 {
    /*0*/
    }zd2 {/*0*//*1*/}zd2 {
    /*0*/
    /*1*/
    }z.a/*1*//*2*/,/*3*//*4*/b/*5*//*6*/{color: #000}z:a/*1*//*2*/, /*3*//*4*/b/*5*//*6*/ {
    color: #000
    }za,b{color: #000}za, b {
    color: #000
    }za
	 ,
	 b
	 {color: #000})za;za {{}za })z/*x*/a {za {}xza {/**/za {} )
do_equal_pr
   serprefskeepEmptyRules
do_equal_rr-   r.   r3   
do_raise_pupdate
do_raise_rr   testss     r   test_cssTextzTestCSSStyleRule.test_cssTextr   s    
 	 -1)
"$A
 &'D
 #$A	

 &'G
 #$A
 &'G
 &'E
 
 D
 1
 @
 A
 2
  B!
& A  CA'
( #$D)
* >?_+
. 	 gg''**ww((

 	**ww((**77,,**
 	 	r   c                    t         j                  j                         }|j                  j	                  d       d|j                  j
                  k(  sJ d|j                  k(  sJ |j                  j	                  d       t        j                  t        j                  j                        5  |j                  j	                  d       ddd       d|j                  j
                  k(  sJ d|j                  k(  sJ y# 1 sw Y   6xY w)zCSSStyleRule.selectorListr$   r   z b  z  h1, x N   za, b)r
   r   r   r   appendSelectorlengthr   pytestraisesr-   r.   InvalidModificationErrr   r   s     r   test_selectorListz"TestCSSStyleRule.test_selectorList   s    LL%%'	%%c*ANN)))))ann$$$	%%f-]]37799:NN))*5 ; ANN)))))'''	 ;:s   .C??Dc                    t         j                  j                         }d|_        d|j                  j
                  k(  sJ d|j                  k(  sJ d|_        d|j                  j
                  k(  sJ d|j                  k(  sJ y)zCSSStyleRule.selectorTextr$   r   z b, h1  rO   zb, h1N)r
   r   r   r   r   rQ   rU   s     r   test_selectorTextz"TestCSSStyleRule.test_selectorText   sv    LL%%'ANN)))))ann$$$#ANN)))))!..(((r   c                     t         j                  j                         }|| j                  _        |j
                  | j                  j                  j
                  k(  sJ | j                  |j                  k(  sJ y)zCSSStyleRule.styleN)r
   r   r    r   r   r   r!   )r   ds     r   
test_stylezTestCSSStyleRule.test_style   sW    LL,,.yyDFFLL00000 vv%%%r   c                 x    dt         j                  j                  _        dddddd}| j	                  |d       y)	zCSSStyleRule (incomplete)TrA   z'a {
    font-family: "arial sans"
    }z,p {
    color: green;
    color: green
    })rB   za { font-family: "arial sansza { font-family: "arial sans";zp {
                color: green;
                font-family: 'Courier New Times
                color: red;
                color: green;
                }zp {
                color: green;
                font-family: 'Courier New Times'
                color: red;
                color: green;
                F)raisingN)r
   rD   rE   rF   rC   rK   s     r   test_incompletez TestCSSStyleRule.test_incomplete   sB    ,0),W.Y L K!
$ 	u-r   c                     d}t         j                  j                  |      }|t        |      v sJ t	        t        |            }t        ||j                        sJ ||j                  k(  sJ y)z#CSSStyleRule.__repr__(), .__str__()z	a > b + c)r   N)	r
   r   r   strevalreprr   r"   r   )r   r5   r4   s2s       r   test_reprANDstrz TestCSSStyleRule.test_reprANDstr   sa    LL%%3%7c!f}}$q']"akk***boo%%%r   c                     t         j                  j                  dd      }|j                  sJ d|_        |j                  rJ d|_        |j                  rJ y)zCSSStyleRule.valid*z
color: red)r   r   zcolor: foobarzfoobar: redN)r
   r   r   validr   )r   rules     r   
test_validzTestCSSStyleRule.test_valid   sO    ||((c(Nzzz$
::~"
::~:r   )__name__
__module____qualname__r   r   r>   rM   rV   rX   r[   r^   rd   ri   __classcell__)r"   s   @r   r   r      s8    )1Tl2h( 
)&.6
&r   r   )	__doc__xml.domr-   rR   r
   r   r   TestCSSRuler    r   r   <module>rr      s(    .    m|// mr   