
    i                        d Z ddlZddlmZmZmZm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 dedefdZd	 Zd
 Zd Zd Zd Z eddd           eddd          f eddd           eddd          f edddej                   eddd ed                    f eddd ed                     eddd ed                    f eddd ed                     eddd ed                    f edddd ed                     edddd ed                    fgZej                            de          Zej                            deeeeeeg          Zeed                         Zd Zd ZeeeegZej                            de          ej                            d e          ed!                                     Z d" Z!d# eD             Z"ej                            de"          ed$                         Z#ej                            d%eeg          ed&                         Z$ej                            d%eeg          ed'                         Z%d( Z&dS ))zfEvents differ although their times are equal.

See https://github.com/collective/icalendar/issues/828
    N)datedatetime	timedeltatimezone)ZoneInfo)EventJournalvDate	vDatetime	vDDDLists	vDDDTypesareturnc                     | S N r   s    Y/root/projects/butler/venv/lib/python3.11/site-packages/icalendar/tests/test_issue_828.pyto_dtr      s    H    c                     t                      }| |_        | t          d          z   |_        |                    d| t          d          z
             |S )N   daysRECURRENCE-ID)r   startr   endadd)r   es     r   to_eventr       sR    AAG	q!!!!AEEE/1ya0000111Hr   c                     t                      }| |_        | t          d          z   |_        |                    d| t          d          z
             |S )zreturn a journal for testingr   r   r   )r	   r   r   r   r   )r   js     r   
to_journalr#      sR    		AAG	q!!!!AEEE/1ya0000111Hr   c                 h    t          | t                    rt          |           S t          |           S )zReturn a value type.)
isinstancer   r   r
   r   s    r   to_vDDr&   $   s+    !X ||88Or   c                      t          |           S r   )r   r   s    r   to_vDDDTypesr(   +   s    Q<<r   c                 "    t          | g          S r   )r   r   s    r   to_vDDDListsr*   /   s    aS>>r   i  
   r           )tzinfoUTCi  zGMT+0zEurope/Zurich   )d1d2	transformc                 R     ||           } ||          }t          ||           dS )z Check that the values are equal.Nassert_equalr2   r3   r4   r   bs        r    test_equality_of_equal_datetimesr:   P   s4     		"A	"AAr   c                    | |k    sJ d|  d|             || k    sJ d| d|              | |k    rJ d|  d|             || k    rJ d| d|              t          |           t          |          k    s*J dt          |            dt          |                       t          j        t                    5  t	          |           t	          |          k    sJ 	 ddd           dS # 1 swxY w Y   dS )	Check all equality tests.z	1 equal:  == z2 equal reversed: z3 not equal:  != z4 not equal reversed: z5 equal bool: N)bool
contextlibsuppress	TypeErrorhashr   r9   s     r   r7   r7   Y   si   666)q))a))666666222q22666Avvv1q11a11vvvAvvv:::q::vvv77d1ggFQFFT!WWFF		Y	'	' " "Aww$q''!!!!!" " " " " " " " " " " " " " " " " "s   <#C--C14C1c                     | |k    sJ d|  d|             || k    sJ d| d|              | |k    rJ d|  d|             || k    rJ d| d|              dS )r<   z1 unequal: r=   z2 unequal reversed: z3 not unequal: r>   z4 not unequal reversed: Nr   rD   s     r   assert_not_eqrF   d   s    666+++++6666664!4444666Avvv33333vvvAvvv<!<<<<vvvvvr   
transform1
transform2c                 R     ||           } ||          }t          ||           dS )z8Check the equality of the date and date implementations.Nr6   )r2   r3   rG   rH   r   r9   s         r   )test_property_times_for_date_and_datetimerJ   o   s4    
 	
2A
2AAr   c                      t          ddd          } t          |           t          t          | g                    v sJ d S )Nr,   r-   r.   )r   strr   )dts    r   'test_datetime_is_in_list_representationrN   y   s@    	$B		Br77c)RD//********r   c                 (    g | ]\  }}||k    ||fS r   r   ).0r   r9   s      r   
<listcomp>rQ   ~   s%    ===DAqa1ff!Qfffr   c                 R     ||           } ||          }t          ||           dS )zThe values are not equal.N)rF   r8   s        r   test_inequalityrS      s4     		"A	"A!Qr   ddd_typec                 f     ||           }  ||          }d| j         d<   t          | |           dS )zKIf the items are equal but the parameters differ, they should not be equal.barfooN)paramsrF   r2   r3   rT   s      r   #test_not_equal_if_parameters_differrZ      s@     
"B	"BBIe"br   c                 f     ||           }  ||          }d| j         d<   t          | |           dS )zVRFC 5545: Applications MUST ignore x-param and iana-param values they don't recognize.rV   zx-fooN)rX   r7   rY   s      r   test_equal_ignoring_x_paramsr\      s@     
"B	"BBIgRr   c            
          t          j        t                    5  t          t	          t          ddd          g                     ddd           dS # 1 swxY w Y   dS )z)We cannot hash a list because it changes.r,   r-   r.   N)pytestraisesrB   rC   r   r   r   r   r   test_list_is_not_hashabler`      s    	y	!	! 2 2Yr2../001112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   -AAA)'__doc__r@   r   r   r   r   zoneinfor   r^   	icalendarr   r	   r
   r   r   r   r   r    r#   r&   r(   r*   utcequal_dt_pairsmarkparametrizeparam_equal_dtsparam_transformr:   r7   rF   dtsrJ   rN   unequal_pairsrS   rZ   r\   r`   r   r   r   <module>rl      s/   
     8 8 8 8 8 8 8 8 8 8 8 8        L L L L L L L L L L L L L L L LT d              
 
T$AT2q))*XdBXXdB334r2hl333r2hhuoo666
 	r2hhuoo666r2hhuoo666
 	r2hhuoo666r2hhw&7&7888
 	r2r((?*C*CDDDr2r((5//:::, +)),GG+))%:v|\R 
    " " "= = = flL1 s++s++   ,+ ,++ + +
 >=N=== }55   65 fl%;<<   =< fl%;<<   =<2 2 2 2 2r   