o
    å/œhp  ã                   @   s>   d Z ddlZddlZddlZddlmZ G dd„ dejƒZdS )z&Testcases for cssutils.css.CSSPageRuleé    Né   )Útest_cssrulec                       sT   e Zd Zdd„ Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
‡  ZS )ÚTestCSSVariablesRulec                 C   s<   t j ¡ | _t jjdd| _t jjj| _d| _dt j	j
_d S )NT)ÚreadonlyÚVARIABLES_RULEF)ÚcssutilsÚcssÚCSSVariablesRuleÚrÚrROÚCSSPageRuler   Úr_typeÚr_typeStringÚserÚprefsÚresolveVariables)Úself© r   úX/var/www/html/myenv/lib/python3.10/site-packages/cssutils/tests/test_cssvariablesrule.pyÚ_setup_rule   s
   z TestCSSVariablesRule._setup_rulec                    s†   t ƒ  ¡  tj ¡ }t|jtjjƒsJ ‚||jjksJ ‚d|j	ks#J ‚t
 tjj¡ | j d¡ W d  ƒ dS 1 s<w   Y  dS )zCSSVariablesRule.__init__()Ú ÚxN)ÚsuperÚ	test_initr   r   r	   Ú
isinstanceÚ	variablesÚCSSVariablesDeclarationÚ
parentRuleÚcssTextÚpytestÚraisesÚxmlÚdomÚInvalidModificationErrr
   Ú_setAtkeyword©r   r
   ©Ú	__class__r   r   r      s   

"ÿzTestCSSVariablesRule.test_initc                 C   s$   |   d¡ dtjji}|  |¡ dS )z/CSSVariablesRule.cssText InvalidModificationErrz
@variablesz@var {}N)Ú_test_InvalidModificationErrr!   r"   r#   Ú
do_raise_r©r   Útestsr   r   r   Útest_InvalidModificationErr$   s   
ÿz0TestCSSVariablesRule.test_InvalidModificationErrc                 C   s   dddœ}|   |¡ dS )zCSSVariablesRule (incomplete)r   z@variables {
    x: red
    })z@variables { z@variables { x: redN)Ú
do_equal_pr*   r   r   r   Útest_incomplete,   s   þz$TestCSSVariablesRule.test_incompletec              	   C   s2   d}d||||ddddœ}|   |¡ |  |¡ dS )r	   z @variables {
    margin: 0
    }r   z%@variables {
    a: 1;
    b: 2
    }z&@variables /*1*/ {
    margin: 0
    })z@variables {}z@variables     {margin:0;}z@variables     {margin:0}z'@VaRIables {   margin    :   0   ;    }z @\VaRIables {    margin : 0    }z@variables {a:1;b:2}z @variables   /*1*/   {margin:0;}z@variables/*1*/{margin:0;}N)Ú
do_equal_rr-   )r   ÚEXPr+   r   r   r   Útest_cssText4   s   ÷
z!TestCSSVariablesRule.test_cssTextc                 C   sz   t j ¡ }t t¡ | d¡ W d  ƒ n1 sw   Y  t t¡ | dd¡ W d  ƒ dS 1 s6w   Y  dS )zCSSVariablesRule.mediaÚmediaNú?)r   r   r	   r   r    ÚAttributeErrorÚ__getattribute__Ú__setattr__r%   r   r   r   Ú
test_mediaE   s   
ÿ"ÿzTestCSSVariablesRule.test_mediac                 C   s  t jjt j d¡d}||jjksJ ‚t j ¡ }d|_|j}||jjks&J ‚||jks-J ‚|jjdks5J ‚|jdks<J ‚d|_||jjksGJ ‚||jksNJ ‚|jjdksVJ ‚|jdks]J ‚|j}zd|_W n tjj	yp   Y nw ||jksxJ ‚|jjdks€J ‚|jdks‡J ‚t j d	¡}||_||jjks˜J ‚||jksŸJ ‚|jjd	ks§J ‚|jd
ks®J ‚d|_||jks¸J ‚||jjksÀJ ‚|jjdksÈJ ‚|jdksÏJ ‚|j}zd|_W n tjj	yâ   Y nw ||jksêJ ‚||jjksòJ ‚|jjdksúJ ‚|jdksJ ‚dS )zCSSVariablesRule.variableszx: 1)r   z@variables { x: 1 }z@variables {
    x: 1
    }z@variables {y:2}zy: 2z@variables {
    y: 2
    }z@variables {$:1}zz: 3z@variables {
    z: 3
    }za: xz@variables {
    a: x
    }z$: xN)
r   r   r	   r   r   r   r   r!   r"   ÚDOMException)r   r
   Úvars1Úvars2Úvars3Úvars4r   r   r   Útest_variablesM   s\   
ÿ

ÿ
ÿz#TestCSSVariablesRule.test_variablesc                 C   sP   t j ¡ }d|_dt|ƒv sJ ‚tt|ƒƒ}t||jƒsJ ‚|j|jks&J ‚dS )z'CSSVariablesRule.__repr__(), .__str__()z@variables { xxx: 1 }ÚxxxN)	r   r   r	   r   ÚstrÚevalÚreprr   r'   )r   r
   Úr2r   r   r   Útest_reprANDstrŠ   s   
z$TestCSSVariablesRule.test_reprANDstr)Ú__name__Ú
__module__Ú__qualname__r   r   r,   r.   r1   r7   r=   rC   Ú__classcell__r   r   r&   r   r      s    =r   )	Ú__doc__Úxml.domr!   r   r   r   r   ÚTestCSSRuler   r   r   r   r   Ú<module>   s    