o
    /h                     @   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   P/var/www/html/myenv/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)_mediaQueryN0)r   r	   r
   r   r   literalnamenamevaluepropertyValuepriorityvalid
wellformedseqs
isinstance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escape_setCssText)r   r)   teststest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   att)	r    "
/*x*/r,   ;ztop:ztop;zcolor: #xyz_setNamec\olorredcolor)r   r	   r
   r   r   r0   r$   r%   r&   
do_raise_rr   r   r)   r4   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.literalnamerB   rC   r.   rD   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.validr9   r   r   rD   Fr   rC   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 /**/rK   	IMPORTANTz
im\portant!r   Nz/*)r=   r>   r@   z!important !important_setPriorityr;   )r   r	   r
   r   r   literalpriority
startswithstripr$   r%   r&   rE   )r   r)   priocheckr4   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   N3px4px5px 1px)r   z 2pxz3px z 4px rX   r   r;   )Nr   r=   r>   r?   r,   r@   rL   r'   )
r   r	   r
   r   r   r0   r$   r%   r&   rE   rF   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__()rD   rC   rK   )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*   r8   rG   rI   rJ   rU   rY   r`   r   r   r   r   r      s    0-%	%r   )__doc__r1   xml.domr$   r"   jaraco.testr   r   r   r   BaseTestCaser   r   r   r   r   <module>   s    