+
    ¾¾j¢  ã                   ó>  € R t ^ RIt^ RIt^ RIHtHt ^ RIHt R tR t	R t
R tR tR	 t]P                  P                  R
. RO4      R 4       tR tR tR tR tR tR tR tR tR tR t]P                  P                  R
. RO4      R 4       tR tR tR tR tR# )zTest vBinaryN)ÚCalendarÚvBinary)Ú
Parametersc                  óˆ   € R p Rp\        V 4      P                  4       V8X  g   Q h\         P                  ! V4      V 8X  g   Q hR# )ó   This is gibberishs   VGhpcyBpcyBnaWJiZXJpc2g=N©r   Úto_icalÚ	from_ical©ÚtxtÚtxt_icals     Ú`/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/tests/prop/test_vBinary.pyÚ	test_textr      s@   € Ø
€CØ*€HÜ�3‹<×ÑÓ! XÔ-Ð-Ð-Ü×Ò˜XÓ&¨#Ô-Ð-Ò-ó    c                  óˆ   € R p Rp\        V 4      P                  4       V8X  g   Q h\         P                  ! V4      V 8X  g   Q hR# )ó   Binary data  Vó   QmluYXJ5IGRhdGEgEyBWNr   r
   s     r   Útest_binaryr      s@   € Ø
"€CØ&€HÜ�3‹<×ÑÓ! XÔ-Ð-Ð-Ü×Ò˜XÓ&¨#Ô-Ð-Ò-r   c                  óœ   € \        \        R 4      P                  \        4      '       g   Q h\        R 4      P                  RRRR/8X  g   Q hR# )r   ÚVALUEÚBINARYÚENCODINGÚBASE64N)Ú
isinstancer   Úparamsr   © r   r   Ú
test_paramr      s@   € Ü”g˜e“n×+Ñ+¬Z×8Ò8Ð8Ð8Ü�5‹>× Ñ  W¨h¸
ÀHÐ$MÔMÐMÒMr   c                 óˆ   € Rp Rp\        V 4      P                  4       V8X  g   Q h\         P                  ! V4      V 8X  g   Q hR# )z>Long data should not have line breaks, as that would interfereNsc   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas„   YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhr   r
   s     r   Útest_long_datar      s@   € à
€CØ€HÜ�3‹<×ÑÓ! XÔ-Ð-Ð-Ü×Ò˜XÓ&¨#Ô-Ð-Ò-r   c                  ó@   € \        R 4      p \        V 4      R8X  g   Q hR# )ÚvaluezvBinary(b'dmFsdWU=')N)r   Úrepr)Úinstances    r   Ú	test_reprr#   &   s   € Ü�wÓ€HÜ�‹>Ð3Ô3Ð3Ò3r   c                  ó`  € \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! R4       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! R4       RRR4       R#   + '       g   i     LU; i  + '       g   i     R# ; i)úNot valid base 64 encoding\.©Úmatchr    Nõ   Ã¡Ã¨à¨®©ÚpytestÚraisesÚ
ValueErrorr   r	   r   r   r   Útest_from_icalr-   +   se   € Ü	�Š”zÐ)H×	IÖ	IÜ×Ò˜'Ô"÷ 
Jä	�Š”zÐ)H×	IÖ	IÜ×Ò˜)Ô$÷ 
JÑ	I÷ 
J×	Iúç	I×	IÐ	Iús   ¥B	Á(BÂ	B	ÂB-	r    c                 ó´   € \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! V 4       RRR4       R#   + '       g   i     R# ; i)r%   r&   Nr)   )r    s   &r   Ú,test_from_ical_rejects_non_base64_charactersr/   2   s4   € ô 
�Š”zÐ)H×	IÖ	IÜ×Ò˜%Ô ÷ 
J×	I×	IÒ	Iús   ¥AÁA	c                 óB   € Rp \        V 4      P                  V 8X  g   Q hR# )z-ical_value property returns the binary value.s   magic stringN©r   Ú
ical_value)Úraw_datas    r   Útest_ical_valuer4   ?   s    € à€HÜ�8Ó×'Ñ'¨8Ô3Ð3Ò3r   c                 óv   € \        R4      P                  R8X  g   Q h\        R4      P                  R8X  g   Q hR# )a'  Test that ``ical_value`` returns the raw stored bytes.

With the release of icalendar 7.1.0, and previous to PR #1356,
``ical_value`` Base64-decoded the raw stored bytes. For example,
``vBinary("SGVsbG8=").ical_value`` was decoded to ``b"Hello"``
and raised ``ValueError`` for non-Base64 input.
s   SGVsbG8=s   !!!!dGV4dA==@@@@Nr1   r   r   r   Ú-test_ical_value_returns_raw_bytes_not_decodedr6   E   s8   € ô �;Ó×*Ñ*¨kÔ9Ð9Ð9äÐ&Ó'×2Ñ2Ð6IÔIÐIÒIr   c                 óÀ   € \        \        R4      4      p \        V 4      pVP                   V 8X  g   Q h\        P                  ! VP	                  4       4      V 8X  g   Q hR# )zUThe .bytes attribute exposes the raw value, including non-UTF-8 data.

See PR #1356.
é   N)ÚbytesÚranger   r	   r   )ÚrawÚbinarys     r   Ú"test_bytes_holds_raw_lossless_datar=   R   sM   € ô
 ”�c“
Ó
€CÜ�S‹\€FØ�<‰<˜3ÔÐÐä×Ò˜VŸ^™^Ó-Ó.°#Ô5Ð5Ò5r   c                 óÂ   € \         P                  ! \        RR7      ;_uu_ 4        \        R4      P                  R8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z[.obj is kept for backward compatibility but deprecated in favour of .bytes.

See PR #1356.
úobj is deprecatedr&   s   txtr   N)r*   ÚwarnsÚDeprecationWarningr   Úobjr   r   r   Ú"test_obj_is_deprecated_string_viewrC   ^   s?   € ô
 
�ŠÔ(Ð0C×	DÖ	DÜ�v‹×"Ñ" eÔ+Ð+Ñ+÷ 
E×	D×	DÒ	Dús   ¥AÁA	c                 óÐ   € \        R4      p \        P                  ! \        RR7      ;_uu_ 4        RV n        RRR4       V P
                  R8X  g   Q hR#   + '       g   i     L%; i)zVSetting .obj still works for backward compatibility and writes .bytes.

See PR #1356.
s   oldr?   r&   ÚnewNs   new)r   r*   r@   rA   rB   r9   )r<   s    r   Útest_obj_setter_updates_bytesrF   g   sI   € ô
 �V‹_€FÜ	�ŠÔ(Ð0C×	DÖ	DØˆŒ
÷ 
Eà�<‰<˜6Ô!Ð!Ò!÷ 
E×	Dús   °AÁA%	c                  óR   € \        R 4      p \        V 4      \        R 4      8X  g   Q hR# )s   hashed textN)r   Úhash©rB   s    r   Ú	test_hashrJ   r   s#   € Ü
�.Ó
!€CÜ�‹9œ˜^Ó,Ô,Ð,Ò,r   c                 ó¢   € \        R4      p V P                  R8X  g   Q hV P                  V P                  4       P                  R4      8X  g   Q hR# )z@base64data returns the same string as to_ical(), decoded to str.r   zVGhpcyBpcyBnaWJiZXJpc2g=ÚasciiN)r   Ú
base64datar   ÚdecoderI   s    r   Útest_base64data_getterrO   w   sC   € ä
Ð&Ó
'€CØ�>‰>Ð7Ô7Ð7Ð7Ø�>‰>˜SŸ[™[›]×1Ñ1°'Ó:Ô:Ð:Ò:r   c                 ó>   € \        R4      P                  R8X  g   Q hR# )z0base64data of an empty value is an empty string.r   Ú N©r   rM   r   r   r   Útest_base64data_getter_emptyrS   ~   s   € ä�3‹<×"Ñ" bÔ(Ð(Ò(r   c                 ó¤   € \        R4      p RV n        V P                  4       R8X  g   Q hV P                  V P                  4       4      R8X  g   Q hR# )z0Setting base64data updates the underlying value.ó   initial valueÚQmluYXJ5IGRhdGEgEyBWr   r   N)r   rM   r   r	   rI   s    r   Útest_base64data_setterrW   ƒ   sG   € ä
Ð"Ó
#€CØ+€C„NØ�;‰;‹=Ð3Ô3Ð3Ð3Ø�=‰=˜Ÿ™›Ó'Ð+CÔCÐCÒCr   c                 óP   € \        R4      p RV n        V P                  R8X  g   Q hR# )z<Reading base64data after setting it returns the same string.rU   rV   NrR   rI   s    r   Útest_base64data_roundtriprY   ‹   s'   € ä
Ð"Ó
#€CØ+€C„NØ�>‰>Ð3Ô3Ð3Ò3r   c                ó  € \        R4      p\        P                  ! \        RR7      ;_uu_ 4        Wn        RRR4       VP                  4       \        R4      P                  4       8X  g   Q hR#   + '       g   i     L@; i)zHThe setter raises ValueError, matching from_ical's error, for bad input.ó	   unchangedr%   r&   N)r   r*   r+   r,   rM   r   )r    rB   s   & r   Ú-test_base64data_setter_rejects_invalid_base64r\   ’   sY   € ô �,Ó
€CÜ	�Š”zÐ)H×	IÖ	IØŒ÷ 
Jð �;‰;‹=œG LÓ1×9Ñ9Ó;Ô;Ð;Ò;÷ 
J×	Iús   °A/Á/A?	c                 ó¨   € \        R4      p \        P                  ! \        4      ;_uu_ 4        RV n        RRR4       R#   + '       g   i     R# ; i)zFNon-str input raises TypeError, matching base64.b64decode's behaviour.r[   i90  N)r   r*   r+   Ú	TypeErrorrM   rI   s    r   Ú&test_base64data_setter_rejects_non_strr_   ¥   s1   € ä
�,Ó
€CÜ	�Š”y×	!Õ	!ØˆŒ÷ 
"×	!×	!Ò	!ús   ®A Á A	c                 óæ   € \        \        R4      4      p \        P                  ! V 4      P	                  R4      p\        R4      pWn        VP                   V 8X  g   Q hVP                  V8X  g   Q hR# )z]The setter writes the decoded bytes to .bytes, so non-UTF-8 data round-trips.

See PR #1356.
r8   rL   r   N)r9   r:   Úbase64Ú	b64encoderN   r   rM   )r;   ÚencodedrB   s      r   Ú'test_base64data_setter_stores_raw_bytesrd   ¬   s_   € ô
 ”�c“
Ó
€CÜ×Ò˜sÓ#×*Ñ*¨7Ó3€GÜ
�#‹,€CØ„NØ�9‰9˜ÔÐÐØ�>‰>˜WÔ$Ð$Ò$r   c                ó¸   € V P                   pVP                  w  pVP                  R4      pVR,          R8X  g   Q hVRR R8X  g   Q h\        V4      ^€8X  g   Q hR# )z…The example calendar's PNG attachment round-trips without corruption.

Regression test for the corruption fixed in #1356. See #1549.
ÚATTACH:Né   Ns   ‰PNG

Ns   IEND®B`‚iøÿÿÿ)Úissue_1549_binary_attachmentÚeventsÚdecodedÚlen)Ú	calendarsÚcalendarÚeventÚdatas   &   r   Ú)test_attach_example_preserves_binary_datarp   ¹   sd   € ð
 ×5Ñ5€HØ�‰�H€UØ�=‰=˜Ó"€Dð ��8Ð+Ô+Ð+Ð+Ø��ˆ9Ð)Ô)Ð)Ð)Üˆt‹9˜ÔÐÒr   c                óì   € V P                   p\        P                  ! VP                  4       4      pVP                  w  pVP                  w  pVP                  R4      VP                  R4      8X  g   Q hR# )zNThe PNG attachment is byte-identical after to_ical()/from_ical().

See #1549.
rf   N)rh   r   r	   r   ri   rj   )rl   rm   ÚreparsedÚoriginalÚroundtrippeds   &    r   Ú,test_attach_example_survives_reserializationru   È   sb   € ð
 ×5Ñ5€HÜ×!Ò! (×"2Ñ"2Ó"4Ó5€Hà—/‘/�K€XØ—o‘o�O€\Ø×Ñ Ó)¨X×-=Ñ-=¸hÓ-GÔGÐGÒGr   )ú!!!!dGV4dA==@@@@ú	dG V4dA==ú	dGV4dA==#)r    r(   rv   rw   rx   ) Ú__doc__ra   r*   Ú	icalendarr   r   Úicalendar.parserr   r   r   r   r   r#   r-   ÚmarkÚparametrizer/   r4   r6   r=   rC   rF   rJ   rO   rS   rW   rY   r\   r_   rd   rp   ru   r   r   r   Ú<module>r~      sÒ   ðÙ ã ã ç 'Ý 'ò.ò.òNò
.ò4ò
%ð ‡�×ÑØòóñ!óð!ò
4ò
Jò	6ò,ò"ò-ò
;ò)ò
Dò4ð ‡�×ÑØòó	ñ<ó	ð<òò
%òô
Hr   