o
    lqi                     @   sR   d Z ddlZddlZddlZddlmZ ddlZddlm	Z	 G dd de	j
ZdS )z.Testcases for cssutils.css.property._Property.    N)property_error   )basetestc                   @   sT   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd ZdS )TestPropertyc                 C   s   t jjdd| _d S )Ntop1px)cssutilscsspropertyPropertyr)self r   c/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/cssutils/tests/test_property.pysetup_method   s   zTestProperty.setup_methodc                 C   sh  t jjdd}d|jksJ d|jksJ d|jksJ d|jks$J d|jjks,J d|j	ks3J |j
s8J |js=J dg|jd ksGJ tt jjddt|jd sXJ g |jd	 ksaJ |j
sfJ t jjjdd
d}d|jksvJ d|jks}J d|jksJ d|jksJ d|jjksJ d|j	ksJ |j
rJ d|j_d|jksJ d|_d|jksJ ttjj t jjdd W d   n1 sw   Y  ttjj t jjd W d   n1 sw   Y  t jjdd}d|jksJ |jsJ ttjj |d W d   n	1 sw   Y  d|jks,J |js2J dS )zProperty.__init__()r   r   ztop: 1px r   2px)cssTextr      T)Z_mediaQueryN0)r   r	   r
   r   r   literalnamenamevalueZpropertyValuepriorityvalidZ
wellformedZseqs
isinstanceZPropertyValuetypepytestraisesxmldom	SyntaxErr	_setValuer   pr   r   r   	test_init   sN   

"

zTestProperty.test_initc                 C   s   t jj }dddddddd}| | tjjdftjjdftjjdftjjdftjjdftjjd	ftjjd
ftjjd
ftjjdftjjdfd
}|D ]'}|| \}}tj	|t
|d || W d   n1 snw   Y  qLdS )zProperty.cssTextNa: 1 !important)za: 1z
a: 1px 2pxr&   za: 1 !IMPORTANTza: 1 !impor\tantzfont: normal 1em/1.5 serifzfont: normal 1em/serifz"Property: No property name found: z,Property: No property name found: : [1:1: :]z-Property: No ":" after name found: a [1:1: a]z/Property: No ":" after name found: b ! [1:3: !]z1Property: No ":" after name found: /**/x [1:5: x]z.Property: No property value found: c: [1:2: :]zNo content to parse.zProperty: Invalid priority: !z+Property: No CSS priority value: importantx)
r   :azb !z/**/xzc:zd: ze:!importantzf: 1!zg: 1!importantXmatch)r   r	   r
   r   
do_equal_rr   r    r!   r   r   reescapeZ_setCssText)r   r$   teststestZecpmsgr   r   r   test_cssTextB   sD   








zTestProperty.test_cssTextc                 C   s   t jjdd}d|_d|jksJ ddddddddddd
}| j|d	d
 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	|dd
 t jjdd}d|j
ksZJ d|jksaJ dS )zProperty.namer   r   leftNxzaza)
r   z topztop z top z
/*x*/ top z
 top /*x*/z/*x*/top/*x*/z\xza\010za\01r   Zatt)	r    "
/*x*/r'   ;ztop:ztop;zcolor: #xyzZ_setNamec\olorredcolor)r   r	   r
   r   r   r+   r   r    r!   
do_raise_rr   r   r$   r.   r   r   r   	test_nameo   s:   zTestProperty.test_namec                 C   s\   t jjdd}d|jksJ tjttd d d|_W d   dS 1 s'w   Y  dS )zProperty.literalnamer9   r:   r)   r;   N)	r   r	   r
   r   r   r   r   AttributeErrorr   r#   r   r   r   test_literalname   s   "zTestProperty.test_literalnamec                 C   sX   t jjddd}|jsJ d|_|jdu sJ d|_|js J d|_|jdu s*J dS )	zProperty.validr2   r   r   r;   Fr   r:   N)r   r	   r
   r   r   r   r   r#   r   r   r   test_validate   s   

zTestProperty.test_validatec                 C   s   t jjddd}dD ]}||_d|jksJ d|jksJ qdD ])}||_d|jks-J |dr:|dd	  }d
|v rAd}n|}||jksJJ q!tj	j
tj	j
tj	j
tj	j
d}| j|dd d	S )zProperty.priorityr   r   	important)Nr   r   )
!importantz! importantz!/* x */ importantz!/* x */ important /**/rB   Z	IMPORTANTz
im\portant!r   Nz/*)r5   r6   r8   z!important !importantZ_setPriorityr4   )r   r	   r
   r   r   Zliteralpriority
startswithstripr   r    r!   r<   )r   r$   priocheckr.   r   r   r   test_priority   s(   	
zTestProperty.test_priorityc              	   C   s   t jjdd}d|jksJ d|_d|jksJ dddddd}| j|d	d
 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	|dd
 dS )zProperty.valuer   r   r   NZ3pxZ4px5px 1px)r   z 2pxz3px z 4px rJ   r   r4   )Nr   r5   r6   r7   r'   r8   rC   r"   )
r   r	   r
   r   r   r+   r   r    r!   r<   r=   r   r   r   
test_value   s*   zTestProperty.test_valuec                 C   s   d}d}d}t jjj|||d}|t|v sJ |t|v s J |t|v s(J tt|}t||js6J ||j	ks=J ||j
ksDJ ||jksKJ dS )zProperty.__repr__(), .__str__()r;   r:   rB   )r   r   r   N)r   r	   r
   r   strevalreprr   	__class__r   r   r   )r   r   r   r   ss2r   r   r   test_reprANDstr   s   zTestProperty.test_reprANDstrN)__name__
__module____qualname__r   r%   r1   r>   r@   rA   rI   rK   rR   r   r   r   r   r      s    0-%	%r   )__doc__r,   Zxml.domr   r   Zjaraco.testr   r   r   r   ZBaseTestCaser   r   r   r   r   <module>   s    