+
    ¾¾j   ã                   ór   € R t ^ RIt^ RIHtHt  ! R R4      t ! R R4      t ! R R4      t ! R	 R
4      tR# )aÞ  Test VALUE parameter handling for Issue #349.

Tests that the VALUE parameter is properly set when adding properties with
Python native types (date, datetime, time, etc.) and properly used when
parsing iCalendar data.

Related Issues:
- #349: Adding an EXDATE with type date does not set the element's VALUE as DATE
- #187: Property values ignoring property parameters

Related PRs:
- #331: Fix VALUE parameter handling (2021, by thet)
- #196: Original attempt (2016, by stlaz)
N)ÚCalendarÚEventc                   óB   a € ] tR t^t o RtR tR tR tR tR t	Rt
V tR# )	ÚTestValueParameterEncodingz?Test that VALUE parameter is automatically set during encoding.c                ó  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  RR4       VP                  R\        P                  ! R^^4      4       VP                  RR	R
/4       VP                  R\        P                  ! R^^4      4       VP                  4       P                  4       pRV9   g   Q hR# )z;Test that adding EXDATE with datetime.date sets VALUE=DATE.ÚUIDztest-value-param-dateÚDTSTAMPÚSUMMARYzEXDATE testÚDTSTARTéæ  ÚRRULEÚFREQÚWEEKLYÚEXDATEzEXDATE;VALUE=DATE:20220108N©	r   ÚaddÚdatetimeÚnowÚtimezoneÚutcÚdateÚto_icalÚdecode©ÚselfÚevÚical_strs   &  Úm/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/tests/test_issue_349_value_parameter.pyÚ%test_exdate_with_date_sets_value_dateÚ@TestValueParameterEncoding.test_exdate_with_date_sets_value_date   s¼   € ä‹WˆØ
�‰ˆuÐ-Ô.Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGØ
�‰ˆy˜-Ô(Ø
�‰ˆyœ(Ÿ-š-¨¨a°Ó3Ô4Ø
�‰ˆw˜ Ð*Ô+Ø
�‰ˆxœŸš t¨Q°Ó2Ô3à—:‘:“<×&Ñ&Ó(ˆØ+¨xÔ7Ð7Ò7ó    c                óº  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^4      4       VP                  R\        P                  ! R^^4      4       VP                  4       P                  4       pRV9   g   Q hR# )	z:Test that adding RDATE with datetime.date sets VALUE=DATE.r   ztest-rdate-dater   r
   r   ÚRDATEzRDATE;VALUE=DATE:20220115Nr   r   s   &  r   Ú$test_rdate_with_date_sets_value_dateÚ?TestValueParameterEncoding.test_rdate_with_date_sets_value_date%   s›   € ä‹WˆØ
�‰ˆuÐ'Ô(Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGØ
�‰ˆyœ(Ÿ-š-¨¨a°Ó3Ô4Ø
�‰ˆwœŸš d¨A¨rÓ2Ô3à—:‘:“<×&Ñ&Ó(ˆØ*¨hÔ6Ð6Ò6r    c                ój  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^4      4       VP                  4       P                  4       pRV9   g   Q hR# )z5Test that DTSTART with datetime.date sets VALUE=DATE.r   ztest-dtstart-dater   r
   r   zDTSTART;VALUE=DATE:20220101Nr   r   s   &  r   Ú&test_dtstart_with_date_sets_value_dateÚATestValueParameterEncoding.test_dtstart_with_date_sets_value_date0   s€   € ä‹WˆØ
�‰ˆuÐ)Ô*Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGØ
�‰ˆyœ(Ÿ-š-¨¨a°Ó3Ô4à—:‘:“<×&Ñ&Ó(ˆØ,°Ô8Ð8Ò8r    c                ó¶  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^^
^ ^ \        P                  P
                  R7      4       VP                  4       P                  4       pRV9   g   Q hRV9   g   Q hR# )	zOTest that DTSTART with datetime.datetime doesn't set VALUE (default DATE-TIME).r   ztest-dtstart-datetimer   r
   r   ©ÚtzinfoÚ20220101T100000ZN)r   r   r   r   r   r   r   r   r   s   &  r   Ú)test_dtstart_with_datetime_no_value_paramÚDTestValueParameterEncoding.test_dtstart_with_datetime_no_value_param:   s¬   € ä‹WˆØ
�‰ˆuÐ-Ô.Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGØ
�‰ØÜ×Ò˜d A q¨"¨a°¼8×;LÑ;L×;PÑ;PÔQô	
ð
 —:‘:“<×&Ñ&Ó(ˆð ˜HÔ$Ð$Ð$Ø! XÔ-Ð-Ò-r    c                óD  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^4      4       VP                  RRR/4       VP                  R	\        P                  ! R^^4      4       VP                  R	\        P                  ! R^^
4      4       VP                  4       P                  4       pR
V9   g   Q hRV9   g   Q hR# )zATest that EXDATE list with datetime.date objects sets VALUE=DATE.r   ztest-exdate-listr   r
   r   r   r   ÚDAILYr   zEXDATE;VALUE=DATE:20220105zEXDATE;VALUE=DATE:20220110Nr   r   s   &  r   Ú+test_exdate_list_with_dates_sets_value_dateÚFTestValueParameterEncoding.test_exdate_list_with_dates_sets_value_dateJ   s×   € ä‹WˆØ
�‰ˆuÐ(Ô)Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGØ
�‰ˆyœ(Ÿ-š-¨¨a°Ó3Ô4Ø
�‰ˆw˜ Ð)Ô*à
�‰ˆxœŸš t¨Q°Ó2Ô3Ø
�‰ˆxœŸš t¨Q°Ó3Ô4à—:‘:“<×&Ñ&Ó(ˆØ+¨xÔ7Ð7Ð7Ø+¨xÔ7Ð7Ò7r    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r#   r&   r,   r0   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s&   ø‡ € ÙIò8ò	7ò9ò.÷ 8ð 8r    r   c                   ó6   a € ] tR t^Zt o RtR tR tR tRtV t	R# )ÚTestValueParameterDecodingz;Test that VALUE parameter is properly used during decoding.c                ó°  € Rp\         P                  ! V4      pVP                  R4      ^ ,          pVR,          p\        VP                  4      ^8X  g   Q hVP                  ^ ,          P
                  p\        V\        P                  4      '       g   Q h\        V\        P                  4      '       d   Q hV\        P                  ! R^^4      8X  g   Q hR# )z.Test parsing EXDATE with VALUE=DATE parameter.sØ   BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Test//Test//EN
BEGIN:VEVENT
UID:test-parse-exdate-date
DTSTART;VALUE=DATE:20220101
EXDATE;VALUE=DATE:20220108
DTSTAMP:20220101T120000Z
SUMMARY:Test Event
END:VEVENT
END:VCALENDARÚVEVENTr   r   N)	r   Ú	from_icalÚwalkÚlenÚdtsÚdtÚ
isinstancer   r   )r   r   ÚcalÚeventÚexdateÚ
first_dates   &     r   Ú!test_parse_exdate_with_value_dateÚ<TestValueParameterDecoding.test_parse_exdate_with_value_date]   s­   € ð
ˆô × Ò  Ó*ˆØ—‘˜Ó" 1Õ%ˆØ�x•ˆô �6—:‘:‹ !Ô#Ð#Ð#Ø—Z‘Z •]×%Ñ%ˆ
ä˜*¤h§m¡m×4Ò4Ð4Ð4Ü˜j¬(×*;Ñ*;×<Ò<Ð<Ð<ØœXŸ]š]¨4°°AÓ6Ô6Ð6Ò6r    c                óz  € Rp\         P                  ! V4      pVP                  R4      ^ ,          pVR,          p\        VP                  \
        P                  4      '       g   Q h\        VP                  \
        P
                  4      '       d   Q hVP                  \
        P                  ! R^^4      8X  g   Q hR# )z/Test parsing DTSTART with VALUE=DATE parameter.s¾   BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Test//Test//EN
BEGIN:VEVENT
UID:test-parse-dtstart-date
DTSTART;VALUE=DATE:20220101
DTSTAMP:20220101T120000Z
SUMMARY:Test Event
END:VEVENT
END:VCALENDARr?   r
   r   N)r   r@   rA   rE   rD   r   r   ©r   r   rF   rG   Údtstarts   &    r   Ú"test_parse_dtstart_with_value_dateÚ=TestValueParameterDecoding.test_parse_dtstart_with_value_datew   s‘   € ð	ˆô × Ò  Ó*ˆØ—‘˜Ó" 1Õ%ˆØ˜	Õ"ˆô ˜'Ÿ*™*¤h§m¡m×4Ò4Ð4Ð4Ü˜gŸj™j¬(×*;Ñ*;×<Ò<Ð<Ð<Ø�z‰zœXŸ]š]¨4°°AÓ6Ô6Ð6Ò6r    c                ó\  € Rp\         P                  ! V4      pVP                  R4      ^ ,          pVR,          p\        VP                  \
        P
                  4      '       g   Q hVP                  \
        P
                  ! R^^^
^ ^ \
        P                  P                  R7      8X  g   Q hR# )z@Test that DTSTART without VALUE parameter defaults to DATE-TIME.s¾   BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Test//Test//EN
BEGIN:VEVENT
UID:test-parse-dtstart-default
DTSTART:20220101T100000Z
DTSTAMP:20220101T120000Z
SUMMARY:Test Event
END:VEVENT
END:VCALENDARr?   r
   r   r)   N)r   r@   rA   rE   rD   r   r   r   rM   s   &    r   Ú5test_parse_dtstart_without_value_defaults_to_datetimeÚPTestValueParameterDecoding.test_parse_dtstart_without_value_defaults_to_datetime�   s•   € ð	ˆô × Ò  Ó*ˆØ—‘˜Ó" 1Õ%ˆØ˜	Õ"ˆô ˜'Ÿ*™*¤h×&7Ñ&7×8Ò8Ð8Ð8Ø�z‰zœX×.Ò.Ø�!�Q˜˜A˜q¬×):Ñ):×)>Ñ)>ô
ô 
ð 	
ò 
r    r2   N)
r3   r4   r5   r6   r7   rJ   rO   rR   r8   r9   r:   s   @r   r=   r=   Z   s   ø‡ € ÙEò7ò47÷,
ð 
r    r=   c                   ó*   a € ] tR t^¥t o RtR tRtV tR# )ÚTestValueParameterRoundTripzATest that VALUE parameter survives encoding/decoding round trips.c                ó„  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^4      4       VP                  R\        P                  ! R^^4      4       VP                  4       p\        P                  ! RV,           R,           4      pVP                  R	4      ^ ,          p\        VR,          P                  \        P                  4      '       g   Q h\        VR,          P                  \        P                  4      '       d   Q hVR,          P                  \        P                  ! R^^4      8X  g   Q h\        VR,          P                  4      ^8X  g   Q hVR,          P                  ^ ,          P                  p\        V\        P                  4      '       g   Q h\        V\        P                  4      '       d   Q hV\        P                  ! R^^4      8X  g   Q hR
# )z@Test that date values maintain their type through encode/decode.r   ztest-roundtripr   r
   r   r   s(   BEGIN:VCALENDAR
VERSION:2.0
PRODID:test
s   
END:VCALENDARr?   N)r   r   r   r   r   r   r   r   r   r@   rA   rE   rD   rB   rC   )r   Úev1Ú
ical_bytesrF   Úev2rH   s   &     r   Útest_date_roundtripÚ/TestValueParameterRoundTrip.test_date_roundtrip¨   s±  € ô ‹gˆØ�‰�Ð'Ô(Ø�‰�	œ8×,Ñ,×0Ñ0´×1BÑ1B×1FÑ1FÓGÔHØ�‰�	œ8Ÿ=š=¨¨q°!Ó4Ô5Ø�‰�œ(Ÿ-š-¨¨a°Ó3Ô4ð —[‘[“]ˆ
ô × Ò Ø:Øõà õ!ó
ˆð
 �h‰h�xÓ  Õ#ˆô ˜#˜i�.×+Ñ+¬X¯]©]×;Ò;Ð;Ð;Ü˜c )�n×/Ñ/´×1BÑ1B×CÒCÐCÐCØ�9�~× Ñ ¤H§M¢M°$¸¸1Ó$=Ô=Ð=Ð=ô �3�x•=×$Ñ$Ó%¨Ô*Ð*Ð*Ø�X•×"Ñ" 1Õ%×(Ñ(ˆÜ˜&¤(§-¡-×0Ò0Ð0Ð0Ü˜f¤h×&7Ñ&7×8Ò8Ð8Ð8ØœŸš t¨Q°Ó2Ô2Ð2Ò2r    r2   N)r3   r4   r5   r6   r7   rZ   r8   r9   r:   s   @r   rU   rU   ¥   s   ø‡ € ÙK÷3ð 3r    rU   c                   ó0   a € ] tR t^Ét o RtR tR tRtV tR# )ÚTestExplicitValueParameterz6Test handling of explicitly provided VALUE parameters.c                ór  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^4      RR/R7       VP                  4       P                  4       pR	V9   g   Q hR
# )z6Test that explicitly provided VALUE parameter is used.r   ztest-explicit-valuer   r
   r   ÚVALUEÚDATE©Ú
parametersz
VALUE=DATENr   r   s   &  r   Ú-test_explicit_value_param_overrides_inferenceÚHTestExplicitValueParameter.test_explicit_value_param_overrides_inferenceÌ   s‰   € ä‹WˆØ
�‰ˆuÐ+Ô,Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGà
�‰ˆyœ(Ÿ-š-¨¨a°Ó3ÀÈ&Ð@QˆÔRà—:‘:“<×&Ñ&Ó(ˆØ˜xÔ'Ð'Ò'r    c                ó–  € \        4       pVP                  RR4       VP                  R\        P                  P                  \        P                  P
                  4      4       VP                  R\        P                  ! R^^^
^ ^ 4      RR/R7       VR,          pRVP                  9   g   Q hVP                  R,          R8X  g   Q hR	# )
z=Test that other parameters are preserved when VALUE is added.r   ztest-params-preservedr   r
   r   ÚTZIDzAmerica/New_Yorkra   N)r   r   r   r   r   r   Úparams)r   r   rN   s   &  r   Útest_parameters_preservedÚ4TestExplicitValueParameter.test_parameters_preserved×   s­   € ä‹WˆØ
�‰ˆuÐ-Ô.Ø
�‰ˆyœ(×+Ñ+×/Ñ/´×0AÑ0A×0EÑ0EÓFÔGØ
�‰ØÜ×Ò˜d A q¨"¨a°Ó3ØÐ 2Ð3ð 	ô 	
ð �Y•-ˆØ˜Ÿ™Ô'Ð'Ð'Ø�~‰~˜fÕ%Ð);Ô;Ð;Ò;r    r2   N)	r3   r4   r5   r6   r7   rc   rh   r8   r9   r:   s   @r   r]   r]   É   s   ø‡ € Ù@ò	(÷<ð <r    r]   )	r7   r   Ú	icalendarr   r   r   r=   rU   r]   r2   r    r   Ú<module>rk      sA   ðñó ç %÷B8ñ B8÷JH
ñ H
÷V!3ñ !3÷H<ó <r    