
    daf              	       d   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 d dlmZ d dl	m
Z
 d Z G d de      Z G d d	e j                        Z G d
 d      Z G d de      Z G d de      Zd dlmZ  eej(                  dz         D ]  Zeej,                  fZde dZ eeeddeii       e       e<   eej,                  fZ e
       D ]N  Zej8                  j;                  d      sJ ej8                  dd Zde de dZ eeeedeid       e       e<   P  edk(  r e j>                          yy)    N)	os_helper)MutableMapping)dbm_iteratorc                 $    | j                  d      S Nlatin-1)decode)ss    +/root/Python-3.12.4/Lib/test/test_shelve.pyL1r      s    88I    c                   D    e Zd ZdZd Zd Zd Zd Zd Zd Z	e	Z
d Zd	 Zy
)byteskeydictz Mapping that supports bytes keysc                     i | _         y N)dselfs    r   __init__zbyteskeydict.__init__   s	    r   c                 2    | j                   t        |         S r   r   r   r   keys     r   __getitem__zbyteskeydict.__getitem__   s    vvbgr   c                 4    || j                   t        |      <   y r   r   )r   r   values      r   __setitem__zbyteskeydict.__setitem__   s    r#wr   c                 0    | j                   t        |      = y r   r   r   s     r   __delitem__zbyteskeydict.__delitem__   s    FF2c7Or   c                 ,    t        | j                        S r   )lenr   r   s    r   __len__zbyteskeydict.__len__   s    466{r   c              #   p   K   | j                   j                         D ]  }|j                  d        y wr   )r   keysencode)r   ks     r   iterkeyszbyteskeydict.iterkeys    s.      	&A((9%%	&s   46c                 4    t        | j                               S r   )listr'   r   s    r   r$   zbyteskeydict.keys&   s    DMMO$$r   c                 ,    t        | j                        S r   )r   r   r   s    r   copyzbyteskeydict.copy)   s    DFF##r   N)__name__
__module____qualname____doc__r   r   r   r   r"   r'   __iter__r$   r+    r   r   r   r      s4    & & H%$r   r   c                       e Zd Zej                  Zej                  j                  ej                  d      Z	d Z
d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)TestCaseshelftemp.dbc                 L   i }t        j                  |dd      }g d|d<   | j                  |d   g d       | j                  t        |      d       |j	                          | j                  t        t        |       	 |d    | j                  d       y # t        $ r Y y w xY wN   Fprotocol	writeback   r7         key1r<   z"Closed shelf should not find a key)shelveShelfassertEqualr!   closeassertRaises
ValueErrorfailr   d1r
   s      r   
test_closezTestCase.test_close1   s    LLa59&	6I.Q#		*c1-	<fI II:;  		s    B 	B#"B#Nc                 `   t        j                  | j                         | j                  t        j
                  | j                         t        j                  ||n| j                  |      }	 d|d<   | j                  |d   d       |j                          y # |j                          w xY w)N)filenamer9   r;   r?   )osmkdirdirname
addCleanupr   rmtreer@   openfnrB   rC   )r   rK   r9   r
   s       r   test_open_templatezTestCase.test_open_template@   s}    
	(($,,7KKX-Atww!)+	!AfIQvY	2GGIAGGIs   0B B-c                 (    | j                  d       y )Nr   r9   rS   r   s    r   test_ascii_file_shelfzTestCase.test_ascii_file_shelfK       +r   c                 (    | j                  d       y )Nr<   rU   rV   r   s    r   test_binary_file_shelfzTestCase.test_binary_file_shelfN   rX   r   c                 (    | j                  d       y )Nr7   rU   rV   r   s    r   test_proto2_file_shelfzTestCase.test_proto2_file_shelfQ   rX   r   c                 b    | j                  t        j                  | j                               y N)rK   )rS   r   FakePathrR   r   s    r   test_pathlib_path_file_shelfz%TestCase.test_pathlib_path_file_shelfT   s"    ););DGG)DEr   c                 b    | j                  t        j                  | j                               y r^   )rS   rL   fsencoderR   r   s    r   test_bytes_path_file_shelfz#TestCase.test_bytes_path_file_shelfW   s     TWW)=>r   c                     | j                  t        j                  t        j                  | j
                                     y r^   )rS   r   r_   rL   rb   rR   r   s    r   "test_pathlib_bytes_path_file_shelfz+TestCase.test_pathlib_bytes_path_file_shelfZ   s+    ););BKK<P)QRr   c                    t               }t        j                  |d      5 }d|d<   | j                  |d   d       d d d        t               }t        j                  |d      5 }d|d<   | j                  |d   d       d d d        | j                  t	        |      d       | j                  t	        |      d       | j                  |j                         |j                                y # 1 sw Y   xY w# 1 sw Y   zxY w)Nr   rU   r;   r?   r<   )r   r@   rA   rB   r!   assertNotEqualitemsr   rH   r
   d2s       r   test_in_memory_shelfzTestCase.test_in_memory_shelf]   s    ^\\"q) 	3Q!AfIQvY	2	3 ^\\"q) 	3Q!AfIQvY	2	3 	R!$R!$BHHJ
3	3 	3	3 	3s   C.&C:.C7:Dc                 p   t               }t        j                  |dd      5 }g d|d<   | j                  |d   g d       |d   j	                  d       | j                  |d   g d       d d d        t               }t        j                  |dd      5 }g d|d<   | j                  |d   g d       |d   j	                  d       | j                  |d   g d       d d d        | j                  t        |      d	       | j                  t        |      d	       y # 1 sw Y   xY w# 1 sw Y   LxY w)
Nr7   Fr8   r;   r?      T)r<   r7   r=   r>   rm   r<   )r   r@   rA   rB   appendr!   ri   s       r   test_mutable_entryzTestCase.test_mutable_entryk   s   ^\\"qE: 	3a!AfIQvY	2fIQQvY	2		3 ^\\"qD9 	5Q!AfIQvY	2fIQQvY4		5 	R!$R!$	3 	3	5 	5s   A
D A
D, D),D5c                 l   i }d}dgt        j                  |      |<   | j                  |j                  d      |       dgt        j                  |d      |<   | j                  |j                  d      |       t        j                  |d      }| j	                  t
        |j                  |dg       y )Nu   PÃ¶pr<   utf-8r   )keyencodingascii)r@   rA   assertInr%   rD   UnicodeEncodeErrorr   )r   r   r   r
   s       r   test_keyencodingzTestCase.test_keyencoding}   s     !sQcjj)1-78cQI.s3cjj+Q/LL0,ammS1#Fr   c                     i }d}|j                  d      }t        j                  |d      5 }dg||<   ||   }|d   j                  d       d d d        ||   }| j	                  |       y # 1 sw Y   !xY w)Nr   rq   T)r:   r<   r7   )r%   r@   rA   rn   rg   )r   r   r   
encodedkeyr
   p1p2s          r   &test_writeback_also_writes_immediatelyz/TestCase.test_writeback_also_writes_immediately   s~    ZZ(
\\!t, 	SAcF:BeHOOA	 z]B#	 	s    A--A6c                 V   i }t        j                  |dd      5 }g d|d<   | j                  |d   g d       | j                  t        |      d       d d d        | j	                  t
        t               	 |d    | j                  d       y # 1 sw Y   <xY w# t
        $ r Y y w xY wr6   )r@   rA   rB   r!   rD   rE   rF   rG   s      r   	test_withzTestCase.test_with   s    \\"qE: 	(a!AfIQvY	2SVQ'	( 	*c1-	<fI II:;	( 	(  		s   :B9B B	B('B(c                     t        j                  i       5 }| j                  |j                  t        j
                         d d d        y # 1 sw Y   y xY wr   )r@   rA   rB   	_protocolpickleDEFAULT_PROTOCOL)r   r
   s     r   test_default_protocolzTestCase.test_default_protocol   sC    \\" 	CQ[[&*A*AB	C 	C 	Cs   +A

A)NN)r,   r-   r.   r   TESTFNrN   rL   pathjoinrR   rI   rS   rW   rZ   r\   r`   rc   re   rk   ro   rv   r{   r}   r   r1   r   r   r3   r3   -   sq    G	i&&	7B<	,,,F?S4%$G
$<Cr   r3   c                   *    e Zd Zej                  Zd Zy)TestShelveBasec                     ddddS )Nvalue1r7   )r<   r7   r=   )r?   key2key3r1   r   s    r   
_referencezTestShelveBase._reference   s    '::r   N)r,   r-   r.   r@   rA   	type2testr   r1   r   r   r   r      s    I;r   r   c                       e Zd Zd Zy)TestShelveInMemBasec                 R    t        j                  t               fi | j                  S r   )r@   rA   r   _argsr   s    r   _empty_mappingz"TestShelveInMemBase._empty_mapping   s    ||LN9djj99r   N)r,   r-   r.   r   r1   r   r   r   r      s    :r   r   c                       e Zd ZdZd Zd Zy)TestShelveFileBaser   c                     | xj                   dz  c_         t        j                  | j                  t	        | j                         z   fi | j
                  }| j                  |j                         |S )Nr<   )counterr@   rQ   	base_pathstrr   rO   rC   )r   xs     r   r   z!TestShelveFileBase._empty_mapping   sN    KKT\\)::IdjjI r   c                 V   t         j                  }t        j                  |       | j	                  t         j
                  |       t        j                  j                  |d      | _        | j	                  t        t        dt        j                         | j                  t        _        y )Nr4   _defaultmod)r   r   rL   rM   rO   rP   r   r   r   setattrdbmr   dbm_mod)r   rN   s     r   setUpzTestShelveFileBase.setUp   sd    ""
	(('2g~>mS__E,,r   N)r,   r-   r.   r   r   r   r1   r   r   r   r      s    G'r   r   )mapping_testsr<   	TestProto	MemShelver   r9   zdbm.r>   File_Shelve)r   r   __main__) unittestr   r@   r   rL   test.supportr   collections.abcr   test.test_dbmr   r   r   r3   r   r   r   testr   rangeHIGHEST_PROTOCOLprotoBasicTestMappingProtocolbasesnametypeglobalsr   r,   
startswithsuffixmainr1   r   r   <module>r      sk    
   	 " * &$> $>yCx   yCx; ;:. :
' '$ 6**Q./ SE -"H"HIEugY'D4#j%%89;GIdO!G!GHE> S**6222!!!"%5'vhf5tU+2j%=PQS	$	SS zHMMO r   