U
    j                  	   @   s~   d Z ddlZddlZddlmZmZ ejdddddgd	d
 ed	dD  dd Z
dd Zdd Zdd Zdd ZdS )zThese tests make sure that we have some coverage on the usage of the PERIOD value type.

See
- https://github.com/collective/icalendar/issues/156
- https://github.com/pimutils/khal/issues/152#issuecomment-933635248
    N)	vDDDTypesvPeriod)calnametznameindexperiod_string)'issue_156_RDATE_with_PERIOD_TZID_khal_2Europe/Berlinr   z20211101T160000/20211101T163000)r   r	      z20211206T160000/20211206T163000)r   r	      z20220103T160000/20220103T163000)r   r	      z20220207T160000/20220207T163000c                 C   s   g | ]\}}d d||fqS )Z%issue_156_RDATE_with_PERIOD_TZID_khalzAmerica/Chicago ).0iperiodr   r   ?/tmp/pip-unpacked-wheel-g40nyxg1/icalendar/tests/test_period.py
<listcomp>+   s   r   a_  20180327T080000/20180327T090000,20180403T080000/20180403T090000,20180410T080000/20180410T090000,20180417T080000/20180417T090000,20180424T080000/20180424T090000,20180501T080000/20180501T090000,20180508T080000/20180508T090000,20180515T080000/20180515T090000,20180522T080000/20180522T090000,20180529T080000/20180529T090000,20180605T080000/20180605T090000,20180612T080000/20180612T090000,20180619T080000/20180619T090000,20180626T080000/20180626T090000,20180703T080000/20180703T090000,20180710T080000/20180710T090000,20180717T080000/20180717T090000,20180724T080000/20180724T090000,20180731T080000/20180731T090000,c                 C   s@   | | }| dd d }|j| }|jtj||dks<tdS )z'Check items in a list of period values.Zveventr   rdate)timezoneN)walkdtsdtr   	from_icalAssertionError)	calendarsr   r   r   r   calendarr   r   r   r   r   #test_issue_156_period_list_in_rdate   s    1
r   c                 C   s   t d}t d}| jd }t| |jd j}tt| |d |ksNt|d jdks`t|d j	dksrt|d |kstdS )z!This checks the duration PT5H30M.Z19970109T180000ZZPT5H30MRDATEr
   r   iXM  N)
r   r   Z issue_156_RDATE_with_PERIOD_listprintr   r   dirr   daysseconds)eventsstartdurationr   r   r   r   r   test_duration_properly_parsedF   s    


r&   c                 C   s.   t | jdd }|d jd dks*tdS )z/The TZID should be mentioned in the parameters.VEVENTr   r   ZTZIDAmerica/VancouverN)listperiod_with_timezoner   paramsr   )r   eventr   r   r   #test_tzid_is_part_of_the_parametersT   s    r-   c              	   C   sl   t | jdd }|d jd j\}}||tdddddksHt||tdddddkshtd	S )
z'The TZID should be set in the datetime.r'   r   r   i        r(      N)r)   r*   r   r   r   Zlocalizedatetimer   )r   Ztzpr,   r$   endr   r   r   &test_tzid_is_part_of_the_period_valuesZ   s     
r3   c                  C   s   t  ddddd} t  ddddd}t  ddddd}t| |f}t| |f}t||f}||sht||svt||rtd S )Ni        r.   r      r/   )r1   r   overlapsr   )Z
datetime_1Z
datetime_2Z
datetime_3Zperiod_1Zperiod_2Zperiod_3r   r   r   test_period_overlapsd   s    r8   )__doc__r1   ZpytestZicalendar.propr   r   markZparametrize	enumeratesplitr   r&   r-   r3   r8   r   r   r   r   <module>   s2   
-


