
     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)Testcases for cssutils.css.CSSCharsetRule    N   )test_cssrulec                   H     e Zd Zd Z fdZd Zd Zd Zd Zd Z	d Z
 xZS )	TestCSSCharsetRulec                     t         j                  j                         | _        t         j                  j                  d      | _        t         j                  j                  j
                  | _        d| _        y )NT)readonlyCHARSET_RULE)cssutilscssCSSCharsetRulerrROr	   r_typer_typeStringselfs    b/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/cssutils/tests/test_csscharsetrule.py_setup_rulezTestCSSCharsetRule._setup_rule   sN    ,,.<<...=ll11>>*    c                 B   t         |           | j                  j                  J d| j                  j                  k(  sJ t        j                  t        j                  j                        5  | j                  j                  d       ddd       y# 1 sw Y   yxY w)zCSSCharsetRule.__init__()N xxx)super	test_initr   encodingcssTextpytestraisesxmldomInvalidModificationErr_setCssText)r   	__class__s    r   r   zTestCSSCharsetRule.test_init   sl    vv&&&TVV^^###]]37799:FFu% ;::s   0BBc                 &    | j                  d       y)z%CSSCharsetRule InvalidModificationErrz@charsetN)_test_InvalidModificationErrr   s    r   test_InvalidModificationErrz.TestCSSCharsetRule.test_InvalidModificationErr   s    ))*5r   c                    dD ]  }t         j                  j                  |      }| |j                  J d|j                  k(  rBJ |j                         |j                  k(  sJ d|j                         z  |j                  k(  rJ  dD ]Y  }t        j                  t        j                  j                  d      5  t         j                  j                  |       ddd       [ dD ]Y  }t        j                  t        j                  j                  d	      5  t         j                  j                  |       ddd       [ y# 1 sw Y   xY w# 1 sw Y   rxY w)
z!CSSCharsetRule.__init__(encoding))NUTF-8utf-8
iso-8859-1asciiNr   @charset "%s";) ascii  asciiascii Syntax ErrormatchunknownUnknown \(Python\) encoding)r
   r   r   r   r   lowerr   r   r   r    	SyntaxErr)r   encr   s      r   test_init_encodingz%TestCSSCharsetRule.test_init_encoding    s   BC++C0A{zz)))QYY&yy{ajj000'#))+5BBB C 3Csww00G++C0 HG 3  Csww008VW++C0 XW   HG XWs   > E EE	E	c                 N   dD ]h  }|| j                   _        |j                         | j                   j                  k(  sJ d|j                         z  | j                   j                  k(  rhJ  dD ]K  }t	        j
                  t        j                  j                  d      5  || j                   _        ddd       M dD ]K  }t	        j
                  t        j                  j                  d      5  || j                   _        ddd       M y# 1 sw Y   xY w# 1 sw Y   dxY w)	zCSSCharsetRule.encoding)r(   r)   r*   r+   r,   )Nr-   r.   r/   r0   r1   Nr3   r5   )	r   r   r6   r   r   r   r   r    r7   )r   r8   s     r   test_encodingz TestCSSCharsetRule.test_encoding3   s    <C!DFFO99;$&&//111#ciik1TVV^^CCC =
 9Csww00G"% HG 9  Csww008VW"% XW   HG XWs   "D2DD	D$	c                 6   ddd}| 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
                  t        j                  j
                  d}| j                  |       y)zCSSCharsetRule.cssText

        setting cssText is ok to use @CHARSET or other but a file
        using parse MUST use ``@charset "ENCODING";``
        N@charset "utf-8";)r=   z@charset 'utf-8';)z
@charset;"z@CHARSET "UTF-8";z@charset "";z@charset /*1*/"utf-8"/*2*/;z@charset /*1*/"utf-8";z@charset "utf-8"/*2*/;z@charset { utf-8 }z@charset "utf-8"z@charset a;z@charset /**/;z@charset "utf-8";sz@charset "utf-8";/**/z@charset "utf-8"; z@charset "utf-8"/*1*//*2*/;)
do_equal_r
do_equal_pr   r    r!   r7   
do_raise_r)r   testss     r   test_cssTextzTestCSSCharsetRule.test_cssTextB   s     "&!4
 	 ''88!$!?!?GG--/2ww/@/@*-''*;*;*-''*;*;"%''"3"3 # 1 177,,!gg//"%''"3"3%(WW%6%6"%''"3"3+.77+<+<#
& 	r   c                 X    d| j                   _        dt        | j                         v sJ y)zCSSCharsetRule.__repr__()r)   N)r   r   reprr   s    r   	test_reprzTestCSSCharsetRule.test_reprd   s#    !$tvv,&&&r   c                     d}t         j                  j                  |      }|t        |      v sJ t	        t        |            }t        ||j                        sJ ||j                  k(  sJ y)z%CSSCharsetRule.__repr__(), .__str__()r)   )r   N)	r
   r   r   strevalrD   
isinstancer#   r   )r   r   ss2s       r   test_reprANDstrz"TestCSSCharsetRule.test_reprANDstri   sc    LL''':3q6!!!$q']"akk***2;;&&&r   )__name__
__module____qualname__r   r   r&   r9   r;   rB   rE   rL   __classcell__)r#   s   @r   r   r      s,    +&61&& D'

'r   r   )
__doc__xml.domr   r   cssutils.cssr
   r   r   TestCSSRuler    r   r   <module>rV      s(    /    g'11 g'r   