o
    .js                     @   s,  d dl Z d dlZd dlmZmZ d dlmZ d dlmZ ej	
dedddfed	dd
gidfeddddfeddidfedddgidfedd
dgddgddfeddidfedddgd
dgddfgdd  Zd!d" Zd#d$ Zd%d& Zej	
d'g d(d)d* Zd+d, Zd-d. Zd/d0 ZdS )1    N)
ParametersvCalAddress)Calendar)Event	parameterexpectedValue1
parameter1s   PARAMETER1=Value1r   Value2s   PARAMETER1=Value1,Value2TRUEzREQ-PARTICIPANT)RSVPROLEs   ROLE=REQ-PARTICIPANT;RSVP=TRUEALTREPzhttp://www.wiz.orgs   ALTREP="http://www.wiz.org"MEMBERzMAILTO:projectA@host.comzMAILTO:projectB@host.coms<   MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.com"Value3value4)r   
parameter2r   sO   ALTREP="http://www.wiz.org","value4";PARAMETER1=Value1;PARAMETER2=Value2,Value3PARAM s   PARAM=)
PARAMETER1r   
PARAMETER2c                 C   s,   |   |ksJ t|d| ksJ d S )Nutf-8)to_icalr   	from_icaldecoder    r   Y/home/thesage/.local/lib/python3.10/site-packages/icalendar/tests/test_property_params.py.test_parameter_to_ical_is_inverse_of_from_ical
   s   /r   c                   C   s    t dt dddksJ d S )NzPARAM1=Value 1;PARA2=Value 2zValue 1zValue 2)PARAM1PARA2)r   r   r   r   r   r   *test_parse_parameter_string_without_quotes=   s   
r"   c                  C   s6   t dd} | d | d   kr| d ksJ  J d S )Nr	   r
   r   r   
PaRaMeTer1)r   r   r   r   r   !test_parametr_is_case_insensitiveC   s   
,r%   c                  C   s$   t dd} t|  dgksJ d S )Nr	   r
   r   )r   listkeysr$   r   r   r   !test_parameter_keys_are_uppercaseH   s   
r(   )cn_param	cn_quoted))Aramisr+   )zAramis Alamedaz"Aramis Alameda")zAramis d'Alamedaz"Aramis d'Alameda")u   Арамис д'Аламедаu    "Арамис д'Аламеда")zAramis d"Alamedaz"Aramis d^'Alameda"c                 C   sF   t  }td}| |jd< |d| d| d| dv s!J d S )Nztest@example.comCNATTENDEEzATTENDEE;CN=z:test@example.comr   )r   r   paramsaddr   r   )r)   r*   eventattendeer   r   r   test_quotingM   s   
r2   c                  C   sf   t d} d| jd< t }|d|  t|}d}||ksJ t|}|djddks1J dS )zProperty parameters with values containing a COLON character, a
    SEMICOLON character or a COMMA character MUST be placed in quoted
    text.zmailto:john.doe@example.orgz	Doe, Johnr,   	organizersV   BEGIN:VCALENDAR
ORGANIZER;CN="Doe, John":mailto:john.doe@example.org
END:VCALENDAR
	ORGANIZERN)r   r.   r   r/   r   r   get)cal_addressicalical_strexp_strical2r   r   r   test_property_paramsf   s   


r;   c                 C   sT   | j dd }|d d }| dksJ |j dksJ |jd dks(J dS )	z}Parse an ics string and access some property parameters then.
    This is a follow-up of a question received per email.

    VEVENTr   r1   s   MAILTO:rembrand@xs4all.nls-   CN=RembrandXS;PARTSTAT=NEEDS-ACTION;RSVP=TRUEcn
RembrandXSN)property_paramswalkr   r.   )	calendarsr0   r1   r   r   r   %test_parse_and_access_property_params}   s
   rB   c                  C   s"   t dd} tdt| sJ dS )z"Test correct class representation.r	   r
   z*Parameters\({u?'PARAMETER1': u?'Value1'}\)N)r   rematchstr)itr   r   r   	test_repr   s   
rG   )rC   pytest	icalendarr   r   icalendar.cal.calendarr   icalendar.cal.eventr   markparametrizer   r"   r%   r(   r2   r;   rB   rG   r   r   r   r   <module>   sb    

.

