
    dafA                         d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
  ej                  d      ZdZ G d de j                        Z G d d	ej                         Zed
k(  r ej&                          yy)    N)findfilewarnings_helper)TESTFNunlinkimghdr))
python.pngpng)z
python.gifgif)z
python.bmpbmp)z
python.ppmppm)z
python.pgmpgm)z
python.pbmpbm)z
python.jpgjpeg)zpython-raw.jpgr   )z
python.rasrast)z
python.sgirgb)zpython.tifftiff)z
python.xbmxbm)zpython.webpwebp)z
python.exrexrc                       e Zd Zd Zd Zy)UnseekableIOc                 "    t         j                  NioUnsupportedOperationselfs    +/root/Python-3.12.4/Lib/test/test_imghdr.pytellzUnseekableIO.tell       %%%    c                 "    t         j                  r   r   )r   argskwargss      r   seekzUnseekableIO.seek!   r!   r"   N)__name__
__module____qualname__r    r&    r"   r   r   r      s    &&r"   r   c                   d    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zy)
TestImghdrc                     t        dd      | _        t        | j                  d      5 }|j                         | _        d d d        y # 1 sw Y   y xY w)Nr   
imghdrdatasubdirrb)r   testfileopenreadtestdata)clsstreams     r   
setUpClasszTestImghdr.setUpClass%   sB    \B#,,% 	)!;;=CL	) 	) 	)s   AAc                 "    t        t               y r   )r   r   r   s    r   tearDownzTestImghdr.tearDown+   s	    vr"   c           	         t         D ]  \  }}t        |d      }| j                  t        j	                  |      |       t        |d      5 }| j                  t        j	                  |      |       d d d        t        |d      5 }|j                         }d d d        | j                  t        j	                  d       |       | j                  t        j	                  d t        |            |        y # 1 sw Y   xY w# 1 sw Y   mxY w)Nr.   r/   r1   )
TEST_FILESr   assertEqualr   whatr3   r4   	bytearray)r   filenameexpectedr7   datas        r   	test_datazTestImghdr.test_data.   s    ", 	KHh>HV[[2H=h% @  V!4h?@h% %{{}%V[[t4h?V[[y?J	K@ @% %s   &C6D6C?	D	c           	          t         D ]e  \  }}| j                  |      5  t        |d      }| j                  t        j                  t        j                  |            |       d d d        g y # 1 sw Y   rxY w)N)r@   r.   r/   )r<   subTestr   r=   r   r>   pathlibPath)r   r@   rA   s      r   test_pathlike_filenamez!TestImghdr.test_pathlike_filename9   ss    ", 	PHhx0 P#H\B  W\\(-C!DhOP P	PP Ps   AA00A9	c                     d }t         j                  j                  |       | j                  t         j                  j                         | j                  t         j                  d d      d       y )Nc                 (    | j                  d      ryy )N   eggsham)
startswith)hfiles     r   
test_jumboz1TestImghdr.test_register_test.<locals>.test_jumbo@   s    ||G$ %r"   rK   rL   )r   testsappend
addCleanuppopr=   r>   )r   rP   s     r   test_register_testzTestImghdr.test_register_test?   sL    	 	J'(()T73U;r"   c                    t        t        d      5 }|j                  d       |j                         }|j                  | j                         d d d        t        t        d      5 }|j                         | j                  t        j                  |      d       | j                  |j                         |       d d d        y # 1 sw Y   yxY w# 1 sw Y   y xY w)Nwbs   ababagalamagar1   r	   )	r3   r   writer    r5   r&   r=   r   r>   )r   r7   poss      r   test_file_poszTestImghdr.test_file_posG   s    &$ 	(6LL)*++-CLL'	( &$ 	16KKV[[0%8V[[]C0	1 	1		( 	(	1 	1s   =C&ACCCc                 >   | j                  t              5  t        j                          d d d        | j                  t              5  t        j                  d        d d d        | j                  t              5  t        j                  | j
                  d       d d d        | j                  t              5  t        j                  t        j                  | j
                               d d d        t        | j
                  d      5 }| j                  t              5  t        j                  |j                                d d d        d d d        y # 1 sw Y   ,xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   DxY w# 1 sw Y   y xY w)N   r1   )
assertRaises	TypeErrorr   r>   AttributeErrorr2   osfsencoder3   fileno)r   fs     r   test_bad_argszTestImghdr.test_bad_argsQ   s-   y) 	KKM	~. 	KK	y) 	*KKq)	*~. 	4KKDMM23	4$--& 	(!"">2 (AHHJ'(	( 	(	 		 		* 	*	4 	4( (	( 	(sS   EE";!E/93E;
F $FFE"E,/E8;FF	FFc                 \    dD ]'  }| j                  t        j                  d |             ) y )N)s   PN
s   s   Ys   cutecats	   000000JFIs   GIF80)assertIsNoner   r>   )r   headers     r   test_invalid_headerszTestImghdr.test_invalid_headers^   s.    ! 	9F fkk$78	9r"   c                 f   t        j                         5  t        j                  dt               t        D ]  \  }}t        |d      }t        |d      5 }|j                         j                  d      }d d d        | j                  t              5  t        j                  t        j                               d d d        | j                  t              5  t        j                  d        d d d         	 d d d        y # 1 sw Y   xY w# 1 sw Y   UxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nignorer.   r/   r1   latin1)warningscatch_warningssimplefilterBytesWarningr<   r   r3   r4   decoder]   r^   r   r>   r   StringIO)r   r@   _r7   rB   s        r   test_string_datazTestImghdr.test_string_datag   s    $$& 		,!!(L9) ,!#H\B(D) :V!;;=//9D:&&y1 3KKD 123&&y1 ,KKd+, ,,		, 		,: :3 3, ,		, 		,sT   A D' D5D')D;D'D/
D'DD'DD'D$ D''D0c                     | j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nmissing)r]   FileNotFoundErrorr   r>   r   s    r   test_missing_filezTestImghdr.test_missing_files   s2    01 	#KK	"	# 	# 	#s   5>c                    t        | j                  d      }|j                          | j                  t              5 }t
        j                  |       d d d        t        j                  | j                        }|j                          | j                  t              5 }t
        j                  |       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)Nr1   )
r3   r2   closer]   
ValueErrorr   r>   r   BytesIOr5   r   r7   cms      r   test_closed_filezTestImghdr.test_closed_filew   s    dmmT*z* 	 bKK	 DMM*z* 	 bKK	  	 		  	 	  	 s   B=C	=C	Cc                 `   t        t        d      5 }|j                  | j                         d d d        t	        t        d      5 }| j                  t        j                        5  t        j                  |       d d d        d d d        y # 1 sw Y   `xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrW   r1   )
r3   r   rX   r5   r   r]   r   r   r   r>   )r   r7   s     r   test_unseekablezTestImghdr.test_unseekable   s    &$ 	(6LL'	(&$' 	$6""2#:#:; $F#$	$ 	$	( 	($ $	$ 	$s/   B B$%B;B$BB!	B$$B-c                 $   t        t        d      5 }|j                  | j                         |j	                  d       | j                  t              5 }t        j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NrW   r   )	r3   r   rX   r5   r&   r]   OSErrorr   r>   r|   s      r   test_output_streamzTestImghdr.test_output_stream   st    &$ 	$6LL'KKN""7+ $rF#$	$ 	$$ $	$ 	$s$   ABA:)B:B	?BBN)r'   r(   r)   classmethodr8   r:   rC   rH   rU   rZ   rd   rh   rs   rw   r~   r   r   r*   r"   r   r,   r,   $   sR    ) )
	KP<1(9
,# $$r"   r,   __main__)r   r`   rF   unittestrl   test.supportr   r   test.support.os_helperr   r   import_deprecatedr   r<   FileIOr   TestCaser,   r'   mainr*   r"   r   <module>r      sr    	 	    2 1	*	*	*8	4
"&299 &i$"" i$V zHMMO r"   