+
    ¾¾j©
  ã                   ó2   € R t ^ RIt^ RIHt  ! R R4      tR# )z&Tests for Component.register() method.N)Ú	Componentc                   óH   a € ] tR t^t o RtR tR tR tR tR t	R t
RtV tR	# )
ÚTestComponentRegisterz!Test Component.register() method.c                óì   €  ! R R\         4      p\         P                  ! V4       \         P                  ! R4      pW!J g   Q hV! 4       pVP                  R8X  g   Q hVP	                  4       R8X  g   Q hR# )z'Register a custom component and use it.c                   ó*   a € ] tR t^t o RtR tRtV tR# )ÚJTestComponentRegister.test_register_custom_component.<locals>.XMyComponentúX-MY-COMPONENTc                ó   € R # )Úcustom_value© ©Úselfs   &Úf/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/tests/test_component_register.pyÚcustom_methodÚXTestComponentRegister.test_register_custom_component.<locals>.XMyComponent.custom_method   s   € Ù%ó    r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Únamer   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   ÚXMyComponentr      s   ø‡ € Ø#ˆD÷&ð &r   r   r   r
   N)r   ÚregisterÚget_component_classr   r   )r   r   Ú	retrievedÚcomps   &   r   Útest_register_custom_componentÚ4TestComponentRegister.test_register_custom_component   sp   € ô	&œ9ô 	&ô 	×Ò˜<Ô(ô ×1Ò1Ð2BÓCˆ	ØÓ(Ð(Ð(ñ ‹{ˆØ�y‰yÐ,Ô,Ð,Ð,Ø×!Ñ!Ó# ~Ô5Ð5Ò5r   c                óÒ   €  ! R R\         4      p\        P                  ! \        RR7      ;_uu_ 4        \         P                  ! V4       RRR4       R#   + '       g   i     R# ; i)z?Registering component without name attribute raises ValueError.c                   ó   € ] tR t^"tRtR# )ÚWTestComponentRegister.test_register_component_without_name_raises.<locals>.BadComponentr   N)r   r   r   r   r   r   r   r   ÚBadComponentr$   "   s   † Ûr   r%   úmust have a 'name' attribute©ÚmatchN©r   ÚpytestÚraisesÚ
ValueErrorr   ©r   r%   s   & r   Ú+test_register_component_without_name_raisesÚATestComponentRegister.test_register_component_without_name_raises   s@   € ô	œ9ô 	ô �]Š]œ:Ð-K×LÖLÜ×Ò˜|Ô,÷ M×L×LÒLúó   ´AÁA&	c                óÒ   €  ! R R\         4      p\        P                  ! \        RR7      ;_uu_ 4        \         P                  ! V4       RRR4       R#   + '       g   i     R# ; i)z7Registering component with None name raises ValueError.c                   ó   € ] tR t^+tRtRtR# )ÚYTestComponentRegister.test_register_component_with_none_name_raises.<locals>.BadComponentNr   ©r   r   r   r   r   r   r   r   r   r%   r3   +   s   † ØŒDr   r%   r&   r'   Nr)   r-   s   & r   Ú-test_register_component_with_none_name_raisesÚCTestComponentRegister.test_register_component_with_none_name_raises(   s@   € ô	œ9ô 	ô �]Š]œ:Ð-K×LÖLÜ×Ò˜|Ô,÷ M×L×LÒLúr0   c                ó  €  ! R R\         4      p ! R R\         4      p\         P                  ! V4       \        P                  ! \        RR7      ;_uu_ 4        \         P                  ! V4       RRR4       R#   + '       g   i     R# ; i)z8Registering same component name twice raises ValueError.c                   ó   € ] tR t^4tRtRtR# )ÚSTestComponentRegister.test_register_duplicate_component_raises.<locals>.XComponent1úX-DUPLICATEr   Nr4   r   r   r   ÚXComponent1r9   4   ó   † Ø ŒDr   r;   c                   ó   € ] tR t^7tRtRtR# )ÚSTestComponentRegister.test_register_duplicate_component_raises.<locals>.XComponent2r:   r   Nr4   r   r   r   ÚXComponent2r>   7   r<   r   r?   zalready registeredr'   N)r   r   r*   r+   r,   )r   r;   r?   s   &  r   Ú(test_register_duplicate_component_raisesÚ>TestComponentRegister.test_register_duplicate_component_raises1   sZ   € ô	!œ)ô 	!ô	!œ)ô 	!ô 	×Ò˜;Ô'ä�]Š]œ:Ð-A×BÖBÜ×Ò˜{Ô+÷ C×B×BÒBús   ÁA:Á:B	c                ó|   €  ! R R\         4      p\         P                  ! V4       \         P                  ! V4       R# )z?Registering the exact same class twice is allowed (idempotent).c                   ó   € ] tR t^BtRtRtR# )ÚPTestComponentRegister.test_register_same_class_twice_allowed.<locals>.XComponentzX-IDEMPOTENTr   Nr4   r   r   r   Ú
XComponentrD   B   s   † Ø!ŒDr   rE   N)r   r   )r   rE   s   & r   Ú&test_register_same_class_twice_allowedÚ<TestComponentRegister.test_register_same_class_twice_allowed?   s,   € ô	"œô 	"ô 	×Ò˜:Ô&Ü×Ò˜:Ö&r   c                ó  €  ! R R\         4      p\         P                  ! V4       Rp\         P                  ! V4      p\        W14      '       g   Q hVP                  R8X  g   Q h\        VP                  4       4      R8X  g   Q hR# )z3Parsing uses the registered custom component class.c                   ó*   a € ] tR t^Kt o RtR tRtV tR# )ÚKTestComponentRegister.test_parse_uses_registered_component.<locals>.XVendorúX-VENDORc                ó$   € V P                  R 4      # )zX-VENDOR-ID)Úgetr   s   &r   Úget_vendor_idÚYTestComponentRegister.test_parse_uses_registered_component.<locals>.XVendor.get_vendor_idN   s   € Ø—x‘x Ó.Ð.r   r   N)r   r   r   r   r   rN   r   r   r   s   @r   ÚXVendorrJ   K   s   ø‡ € ØˆD÷/ð /r   rP   s9   BEGIN:X-VENDOR
UID:123
X-VENDOR-ID:vendor-1
END:X-VENDOR
rK   zvendor-1N)r   r   Ú	from_icalÚ
isinstancer   ÚstrrN   )r   rP   Ú	ical_datar   s   &   r   Ú$test_parse_uses_registered_componentÚ:TestComponentRegister.test_parse_uses_registered_componentH   sv   € ô	/”iô 	/ô 	×Ò˜7Ô#ðˆ	ô
 ×"Ò" 9Ó-ˆä˜$×(Ò(Ð(Ð(Ø�y‰y˜JÔ&Ð&Ð&Ü�4×%Ñ%Ó'Ó(¨JÔ6Ð6Ò6r   r   N)r   r   r   r   Ú__doc__r    r.   r5   r@   rF   rU   r   r   r   s   @r   r   r      s+   ø‡ € Ù+ò6ò(-ò-ò,ò'÷7ð 7r   r   )rW   r*   Ú	icalendarr   r   r   r   r   Ú<module>rY      s   ðÙ ,ã å ÷T7ó T7r   