U
    ¤�©j>  ã                   @   s4  d dl Z d dlZd dlmZmZmZ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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%d&d'd(d)d*g¡d+d,„ ƒZd-d.„ Zd/d0„ Zd1d2„ ZdS )3é    N)ÚCalendarÚEventÚ
ParametersÚvCalAddress©Ú	parameterÚexpectedÚValue1©Ú
parameter1s   PARAMETER1=Value1r   ZValue2s   PARAMETER1=Value1,Value2ÚTRUEzREQ-PARTICIPANT)ZRSVPZROLEs   ROLE=REQ-PARTICIPANT;RSVP=TRUEÚALTREPzhttp://www.wiz.orgs   ALTREP="http://www.wiz.org"ZMEMBERzMAILTO:projectA@host.comzMAILTO:projectB@host.coms<   MEMBER="MAILTO:projectA@host.com","MAILTO:projectB@host.com"ZValue3Zvalue4)r   Z
parameter2r   sO   ALTREP="http://www.wiz.org","value4";PARAMETER1=Value1;PARAMETER2=Value2,Value3ZPARAMÚ s   PARAM=)Ú
PARAMETER1r   Z
PARAMETER2c                 C   s,   |   ¡ |kst‚t | d¡¡| ks(t‚d S )Núutf-8)Úto_icalÚAssertionErrorr   Ú	from_icalÚdecoder   © r   úH/tmp/pip-unpacked-wheel-g40nyxg1/icalendar/tests/test_property_params.pyÚ.test_parameter_to_ical_is_inverse_of_from_ical   s    6r   c                   C   s    t  d¡t dddœƒkst‚d S )NzPARAM1=Value 1;PARA2=Value 2zValue 1zValue 2)ZPARAM1ZPARA2)r   r   r   r   r   r   r   Ú*test_parse_parameter_string_without_quotesB   s    
ÿr   c                  C   s4   t dd�} | d | d   kr*| d ks0n t‚d S )Nr	   r
   r   r   Z
PaRaMeTer1)r   r   ©r   r   r   r   Ú!test_parametr_is_case_insensitiveH   s    
r   c                  C   s$   t dd�} t|  ¡ ƒdgks t‚d S )Nr	   r
   r   )r   ÚlistÚkeysr   r   r   r   r   Ú!test_parameter_keys_are_uppercaseM   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¡ksBt‚d S )Nztest@example.comÚCNZATTENDEEzATTENDEE;CN=z:test@example.comr   )r   r   ÚparamsÚaddr   r   r   )r   r   ÚeventÚattendeer   r   r   Útest_quotingR   s    
ÿr&   c                  C   sf   t dƒ} d| jd< tƒ }| d| ¡ t |¡}d}||ks>t‚t |¡}| d¡j d¡dksbt‚dS )z�Property 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!   Z	organizersV   BEGIN:VCALENDAR
ORGANIZER;CN="Doe, John":mailto:john.doe@example.org
END:VCALENDAR
Z	ORGANIZERN)r   r"   r   r#   r   r   r   Úget)Zcal_addressZicalZical_strZexp_strZical2r   r   r   Útest_property_paramsk   s    

ÿ
r(   c                 C   sT   | j  d¡d }|d d }| ¡ dks,t‚|j ¡ dks>t‚|jd dksPt‚dS )	z}Parse an ics string and access some property parameters then.
    This is a follow-up of a question received per email.

    ZVEVENTr   r%   s   MAILTO:rembrand@xs4all.nls-   CN=RembrandXS;PARTSTAT=NEEDS-ACTION;RSVP=TRUEZcnZ
RembrandXSN)Zproperty_paramsÚwalkr   r   r"   )Z	calendarsr$   r%   r   r   r   Ú%test_parse_and_access_property_params‚   s
    r*   c                  C   s"   t dd�} t dt| ƒ¡st‚dS )z"Test correct class representation.r	   r
   z*Parameters\({u?'PARAMETER1': u?'Value1'}\)N)r   ÚreÚmatchÚstrr   )Úitr   r   r   Ú	test_reprŽ   s    
r/   )r+   ZpytestZ	icalendarr   r   r   r   ÚmarkZparametrizer   r   r   r   r&   r(   r*   r/   r   r   r   r   Ú<module>   sp   þ
ÿüýÿø
ÿüýÿøÙþ5
öþ

