o
    .j                     @   s  d Z ddlmZ ddlZddlmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZ G dd dZej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d Zejdg ddd  Zejd!dej fd"ej!fd#ej"fgd$d% Z#ejd&d' Z$d'e	fd(d)Z%d'e	fd*d+Z&d,d- Z'd.d/ Z(d0d1 Z)ejd2d3d4gd'e	fd5d6Z*d'e	fd7d8Z+d'e	fd9d:Z,ejd;dd<gd=efd>d?Z-ejd@dej.fd"ej/fgdAdB Z0dCdD Z1dS )EzVTest the property parameters.

See https://github.com/collective/icalendar/issues/798
    )datetimeN)	CUTYPEFBTYPEPARTSTATRANGERELTYPEvCalAddress	vDatetimevPeriodvText)
Parameters)TZPc                   @   sL   e Zd ZU eed< dd ZdefddZddlm	Z	m
Z
mZmZmZmZ d	S )
Propparamsc                 K   s   t || _dS )zCreate a new property.N)r   r   )self
parameters r   g/home/thesage/.local/lib/python3.10/site-packages/icalendar/tests/test_issue_798_property_parameters.py__init__   s   zProp.__init__returnc                 C   s   | j  dS )zParameters to bytes to string.zutf-8)r   to_icaldecode)r   r   r   r   r       s   zProp.to_icalr   )ALTREPCNr   DELEGATED_FROMDELEGATED_TOr   N)__name__
__module____qualname__r   __annotations__r   strr   icalendar.paramr   r   r   r   r   r   r   r   r   r   r      s
   
 $r   c                   C   s   t  S )zEmpty test property.)r   r   r   r   r   p.   s   r"   c                 C   s*   d| _ | jddiksJ | j dksJ d S )Nhttp://example.comr   r   r   r"   r   r   r   test_set_altrep4   s   r&   c                   C   s   t dd dksJ dS )z,altrepparam = "ALTREP" "=" DQUOTE uri DQUOTE1234aA)r   zALTREP="1234aA"N)r   r   r   r   r   r   test_altrep_must_be_quoted:   s   r(   c                 C   s$   | ` | ji ks	J | j du sJ dS )Del when emptyNr$   r%   r   r   r   test_del_altrep?   s   r*   c                 C   s*   d| _ | ` | ji ksJ | j du sJ dS )r)   r#   Nr$   r%   r   r   r   test_del_altrep_fullF   s   r+   c                 C      | j dksJ dS )zThe default is individual.
INDIVIDUALNr   r%   r   r   r   test_get_cutypeN      r/   c                  C   s2   t dd} | jdksJ d| _| jtjksJ d S )N
individualr.   r-   unknown)r   r   UNKNOWNr%   r   r   r   test_set_lowercaseS   s   
r4   c                 C   s   d| _ | j dks
J d S )N
mailto:foor5   )r   r%   r   r   r   test_set_delegation_to_stringZ      r7   c                 C   s   d| _ | j dks
J d S )Nr5   z
mailto:barr   r%   r   r   r   test_set_delegation_to_tuple_   r8   r;   c                 C   s   d| _ | ` | j dksJ d S )Nr9   r   r:   r%   r   r   r   test_delete_delegation_tod   s   r<   )valueexpected))r    )r6   zDELEGATED-TO="mailto:foo")r9   z&DELEGATED-TO="mailto:foo","mailto:bar"))zmailto:"asd"zDELEGATED-TO="mailto:^'asd^'"c                 C   s   || _ |  |ksJ d S N)r   r   )r"   r=   r>   r   r   r   test_serialize_delegation_toj   s   
rA   )indexr>         c                 C   s8   | j j| }|d }t|tr|d }||jksJ d S )NFREEBUSYr   )issue_798_freebusyfreebusy
isinstancelistr   )	calendarsrB   r>   fbr"   r   r   r   test_get_fbtypex   s
   	
rL   c                   C   s   t dS )Nr5   )r   r   r   r   r   addr   s   rM   c                 C   r,   )ztest the default partstatzNEEDS-ACTIONN)r   rM   r   r   r   test_partstat_get   r0   rO   c                 C   s   t j| _ | j dksJ d S )NACCEPTED)r   rP   rN   r   r   r   test_set_the_partstat   s   rQ   c                   C   s   t tdddjd u sJ d S )N     
   )r	   r   r   r   r   r   r   test_this_and_future   s   rU   c                  C   s.   t tddd} tj| _| jd dksJ d S )NrR   rS   rT   r   THISANDFUTURE)r	   r   r   rV   r   )dr   r   r   test_this_and_future_set   s   rX   c                 C   s   | j rJ d S r@   )RSVPrN   r   r   r   test_rsvp_default   s   rZ   rsvpTFc                 C   s2   || _ || j ks
J | jd |rdndksJ d S )NrY   TRUEFALSE)rY   r   )rM   r[   r   r   r   test_set_rsvp   s   r^   c                 C   s   | j d u sJ d S r@   )SENT_BYrN   r   r   r   test_sent_by   s   r`   c                 C   s<   d| _ | j dks
J | jd dksJ | j dksJ d S )Nz
mailto:asdzSENT-BYs   SENT-BY="mailto:asd")r_   r   r   rN   r   r   r   test_set_sent_by   s   ra   tzidzEurope/Berlintzpc                 C   s*   t |tddd| }|j| ksJ dS )zBCheck that the TZID parameter is determined by the datetime value.rR   rS   rT   N)r	   localizer   TZID)rb   rc   dtr   r   r   	test_tzid   s   rg   )rB   reltypec                 C   sH   | j j| }t|   |d }t| t|j ||jks"J dS )z&The reltype parameter in the examples.z
RELATED-TON)issue_798_related_toeventsprintr   r   r   r   )rJ   rB   rh   eventrr   r   r   test_reltype_example   s   	
rn   c                 C   s.   t j| _ | j t jksJ | jd dksJ d S )Nr   CHILD)r   ro   r   r%   r   r   r   test_set_reltype   s   rp   )2__doc__r   pytest	icalendarr   r   r   r   r   r   r	   r
   r   icalendar.parserr   icalendar.timezone.tzpr   r   fixturer"   r&   r(   r*   r+   r/   r4   r7   r;   r<   markparametrizerA   BUSY_UNAVAILABLEBUSYFREErL   rM   rO   rQ   rU   rX   rZ   r^   r`   ra   rg   PARENTSIBLINGrn   rp   r   r   r   r   <module>   sh    ,

	



