
    i                    4   d Z ddlmZ ddlZddlZddlmZmZmZm	Z	 ddl
mZ  ej        d          Zej        dd	            Zej                            d
dddddedddfddedddfddedddfg          d             Zd Zd Zd Zd Zd Zd Zd Zd ZdS )z8Test the image class to convert from and to binary data.    )annotationsN)CalendarImagevBinaryvUri)vTextziVBORw0KGgoAAAANSUhEUgAAAAEAAAABCA
YAAAAfFcSJAAAACXBIWXMAAAAnAAAAJwEqCZFPAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jn
m+48GgAAAA1JREFUCJlj+P//PwMACPwC/oXNqzQAAAAASUVORK5CYII=returndict[str, Image]c                Z    | j         }i }|j        D ]}|j        d         }|||j        <   |S )z4Return the images we get from the example calendars.r   )rfc_7986_imagesubcomponentsimagesuid)	calendarscalendarr   	componentimgs        U/root/projects/butler/venv/lib/python3.11/site-packages/icalendar/tests/test_image.pyr   r      sD     #1H!F+ $ $	q! #y}M    )r   uridatafmt_typealtrepdisplay)z	uri-eventz#http://example.com/images/party.pngN	image/pngNBADGE)zuri-todo#http://example.com/images/party.jpgNNNr   )zuri-journalr   Nz	image/jpgNICONz
data-eventr   z	data-todor   zdata-journalr   c                    | |         }|j         |k    sJ |j        |k    sJ |j        |k    sJ |j        |k    sJ |j        |k    sJ dS )z1Test that the image property is parsed correctly.N)r   r   fmttyper   r   )r   r   r   r   r   r   r   images           r   test_image_parsingr"      ss    ~ 3KE9:=H$$$$<6!!!!=G######r   c                 V    t                      } t          | j                  dk    sJ dS )z*Test that an empty calendar has no images.r   N)r   lenr   )r   s    r   test_no_imagesr%   c   s,    zzHx1$$$$$$r   c                    t          j        t                    5  t          j        d           ddd           n# 1 swxY w Y   t          j        t                    5  t          j        t          dddi                     ddd           n# 1 swxY w Y   t          j        t                    5  t          j        t          d                     ddd           dS # 1 swxY w Y   dS )z?Test that creating an image with invalid type raises TypeError.znot a valid typeNVALUETEXTparamshttp://example.com/image.png)pytestraises	TypeErrorr   from_property_valuer    r   r   test_create_image_invalid_typer1   i   s   	y	!	! 6 6!"45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	y	!	! W W!%(:GVCT"U"U"UVVVW W W W W W W W W W W W W W W	y	!	! I I!%(F"G"GHHHI I I I I I I I I I I I I I I I I Is1   ;??&BBB5"C$$C(+C(c                      G d d          } t          j        t                    5  t          j         |                        ddd           dS # 1 swxY w Y   dS )zATest that creating an image with invalid params raises TypeError.c                      e Zd ZdZdS )4test_create_image_invalid_params.<locals>.DummyValueinvalidN)__name__
__module____qualname__r*   r0   r   r   
DummyValuer4   v   s        r   r9   N)r,   r-   r.   r   r/   )r9   s    r    test_create_image_invalid_paramsr:   s   s            
y	!	! 0 0!**,,///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   AAAc                     t          j        t                                        d          } t	          | ddi          }t          j        |          }|j        J |j        t          k    sJ |j	        dk    sJ |j
        J |j        J dS )z/Test creating an Image from a vBinary property.asciiFMTTYPEr   r)   N)base64	b64encodeTRANSPARENT_PIXELdecoder   r   r/   r   r   r    r   r   )b64datavbinr!   s      r   test_create_with_vBinaryrD   }   s    01188AAG7I{#;<<<D%d++E9:*****=K''''<=     r   c                     d} t          | ddd          }t          j        |          }|j        | k    sJ |j        J |j        dk    sJ |j        J |j        dk    sJ dS )z,Test creating an Image from a vUri property.r+   r   r   )r=   DISPLAYr)   N)r   r   r/   r   r   r    r   r   )r   vurir!   s      r   test_create_with_vUrirH      s    
(CHHIIID%d++E9:=K''''<=G######r   c                     t          j        t          dddi                    } | j        dk    sJ | j        J | j        J | j        J | j        J dS )PTest that creating an image with vText but VALUE URI or BINARY raises TypeError.r+   r'   URIr)   N)r   r/   r   r   r   r    r   r   )r   s    r   #test_create_image_with_vText_as_urirL      s~    

#,gu5EFFF C 7444448;:;r   c                    t          j        t                                        d          } t	          j        t          | ddi                    }|j        J |j        t          k    sJ |j	        J |j
        J |j        J dS )rJ   r<   r'   BINARYr)   N)r>   r?   r@   rA   r   r/   r   r   r   r    r   r   )rB   r   s     r   &test_create_image_with_vText_as_binaryrO      s    01188AAG

#E'7H:M$N$N$N
O
OC7???8(((((;:;r   c                 
   t          j        t                    5  t                       ddd           n# 1 swxY w Y   t          j        t                    5  t          dd           ddd           dS # 1 swxY w Y   dS )z&Test forbidden parameter combinations.N r+   )rB   r   )r,   r-   
ValueErrorr   r0   r   r   test_requires_uri_xor_binaryrS      s    	z	"	"                	z	"	" > >b<====> > > > > > > > > > > > > > > > > >s   599A88A<?A<)r	   r
   )__doc__
__future__r   r>   r,   	icalendarr   r   r   r   icalendar.propr   	b64decoder@   fixturer   markparametrizer"   r%   r1   r:   rD   rH   rL   rO   rS   r0   r   r   <module>r\      s   > > " " " " " "   4 4 4 4 4 4 4 4 4 4 4 4            $F$ &< = = 
     ;	
	
	
 	
 1	
 	
S14 4j$ $k4 4j$$% % %I I I0 0 0	! 	! 	!	$ 	$ 	$	 	 	  > > > > >r   