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 )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!   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


