
    /hh
!                        S SK r S SKrS SKrS SKJr  S SKJr   S SKJr   S SKJ	r	  \R                  r\R                  R                  \\R                  5      rS rS rS r " S	 S
5      r " S S\ R&                  5      r\" 5        H7  r\R,                  SS rS\ 3r\" \\\ R&                  4S\05      \" 5       \'   M9     \S:X  a  \ R6                  " 5         gg! \ a    Sr Nf = f! \ a    Sr	 Nf = f)    N)import_helper)	os_helper)sqlite3)ndbmc               #      #    [         R                   H&  n  [        U S/S9nU[         R                  U '   Uv   M(     g ! [         a     M8  f = f7f)Nopen)fromlist)dbm_names
__import__ImportError_modules)namemods     6/opt/python-3.13.8/usr/lib/python3.13/test/test_dbm.pydbm_iteratorr      sN     

	TVH5C !T	   		s%   A>A
AAAAc                  8    [         R                  " [        5        g N)r   rmtreedirname     r   cleaunup_test_dirr   '   s    Wr   c                  L    [        5         [        R                  " [        5        g r   )r   osmkdirr   r   r   r   setup_test_dirr   *   s    HHWr   c                       \ rS rSrSSSSSSS.rS	 rS
 rS rS rS r	S r
S rS rS rS rS rS rS rS rS rS rS rS rSrg)AnyDBMTestCase/   s   Python:s   Programmings   thes   ways   Guidos   intended)abcdfgc                     [         R                  " [        S5      nU R                   H#  nU R                  U   XR	                  S5      '   M%     UR                  5         g )Nnascii)r
   r   _fname_dictencodeclose)selfr%   ks      r   init_dbAnyDBMTestCase.init_db8   sB    HHVS!A#'::a=Ahhw  		r   c                     [        S UR                  5        5       5      n[        U R                  R                  5       5      nU R                  X#5        U$ )Nc              3   B   #    U  H  oR                  S 5      v   M     g7f)r)   N)decode).0r/   s     r   	<genexpr>-AnyDBMTestCase.keys_helper.<locals>.<genexpr>?   s     :Ahhw''s   )sortedkeysr+   assertEqual)r.   r%   r9   dkeyss       r   keys_helperAnyDBMTestCase.keys_helper>   s@    :::tzz()%r   c                 j    U R                  [        U R                  R                  [        5      5        g r   )
assertTrue
issubclassmoduleerrorOSErrorr.   s    r   
test_errorAnyDBMTestCase.test_errorD   s    
4;;#4#4g>?r   c                 j    U R                  [        R                  [        R                  [        5        g r   )assertRaisesr
   rB   r   r*   rD   s    r   test_anydbm_not_existing'AnyDBMTestCase.test_anydbm_not_existingG   s    #))SXXv6r   c                 4   [         R                  " [        S5      nU R                  [	        UR                  5       5      / 5        U R                   H#  nU R                  U   XR                  S5      '   M%     U R                  U5        UR                  5         g )Nr#   r)   )
r
   r   r*   r:   listr9   r+   r,   read_helperr-   r.   r%   keys      r   test_anydbm_creation#AnyDBMTestCase.test_anydbm_creationJ   sj    HHVS!affh,::C%)ZZ_Ajj!" 		r   c                     [         R                  " [        5        [        R                  " [        S5       nU R                  [        U5      S5        S S S 5        g ! , (       d  f       g = f)Nr(   r   )r   create_empty_filer*   r
   r   r:   lenr.   r%   s     r   8test_anydbm_creation_n_file_exists_with_invalid_contentsGAnyDBMTestCase.test_anydbm_creation_n_file_exists_with_invalid_contentsR   s@    ##F+XXfc"aSVQ' #""s   A
A)c                 2   U R                  5         [        R                  " [        S5      nS=U R                  S'   US'   U R                  U5        U R                  UR                  SS5      S5        U R                  US   S5        UR                  5         g )Nr#   s   indentedr&      g   xxx   foo)	r0   r
   r   r*   r+   rM   r:   
setdefaultr-   rU   s     r   test_anydbm_modification'AnyDBMTestCase.test_anydbm_modificationX   sw    HHVS!$//

3!D'ff5v>6F+		r   c                    U R                  5         [        R                  " [        S5      nU R	                  U5        U R                  UR                  S5      U R                  S   5        U R                  UR                  SS5      S5        U R                  UR                  S5      5        U R                  [        5         US     S S S 5        UR                  5         g ! , (       d  f       N= f)Nr   ar!   rZ   r[   )r0   r
   r   r*   rM   r:   getr+   assertIsNonerH   KeyErrorr-   rU   s     r   test_anydbm_readAnyDBMTestCase.test_anydbm_readb   s    HHVS!tdjjo6vv.7!%%-(x(fI )		 )(s   C!!
C/c                     U R                  5         [        R                  " [        S5      nU R	                  U5      nUR                  5         g )Nr`   )r0   r
   r   r*   r<   r-   )r.   r%   r9   s      r   test_anydbm_keysAnyDBMTestCase.test_anydbm_keysn   s4    HHVS!"		r   c                    [        [        R                  SS 5      S:X  a  U R                  S5        [        R                  " [
        S5      nU R                  UR                  5       / 5        SUS'   U R                  UR                  5       S/5        U R                  SU5        U R                  US   S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        UR                  5         g )NlibraryzBerkeley DBzCBerkeley DB doesn't distinguish the empty value from the absent oner#   r   s   empty)getattrr
   _defaultmodskipTestr   r*   r:   r9   assertInrb   r\   r-   rU   s     r   test_empty_valueAnyDBMTestCase.test_empty_valuet   s    3??It4EMM 0 1HHVS!2&(H:.h"8c*x#.h/5		r   c                     U R                  5         [        R                  " [        S5      nSR	                  S5      nU R                  X!5        UR                  5         g )Nr`   r!   r)   )r0   r
   r   r*   r,   ro   r-   rN   s      r   test_anydbm_access!AnyDBMTestCase.test_anydbm_access   s>    HHVS!jj!c		r   c                 ~    [         R                  " [        R                  " [        5      S5      R                  5         g Nr#   )r
   r   r   fsencoder*   r-   rD   s    r   test_open_with_bytes#AnyDBMTestCase.test_open_with_bytes   s"    V$c*002r   c                 ~    [         R                  " [        R                  " [        5      S5      R                  5         g rv   )r
   r   r   FakePathr*   r-   rD   s    r   test_open_with_pathlib_path*AnyDBMTestCase.test_open_with_pathlib_path   s$    ##F+S1779r   c                     [         R                  " [        R                  " [        R
                  " [        5      5      S5      R                  5         g rv   )r
   r   r   r{   r   rw   r*   r-   rD   s    r   !test_open_with_pathlib_path_bytes0AnyDBMTestCase.test_open_with_pathlib_path_bytes   s-    ##BKK$78#>DDFr   c                     U R                  U5      nU R                   H3  nU R                  U R                  U   XR                  S5         5        M5     g )Nr)   )r<   r+   r:   r,   )r.   r%   r9   rO   s       r   rM   AnyDBMTestCase.read_helper   sD    "::CTZZ_a

70C.DE r   c                   ^ [         R                  " [        S5       mU R                  TR	                  5       / 5        SS/nU H
  u  p#UTU'   M     U R                  [        TR	                  5       5      [        S U 5       5      5        U H,  u  p#U R                  UT5        U R                  TU   U5        M.     U R                  ST5        U R                  [        U4S j5        S S S 5        g ! , (       d  f       g = f)Nr#   ra      bs   12345678910s   019237410982340912840198242c              3   *   #    U  H	  u  pUv   M     g 7fr   r   )r5   r/   vs      r   r6   +AnyDBMTestCase.test_keys.<locals>.<genexpr>   s     5HaFQaas   rZ   c                     > T S   $ )NrZ   r   )r$   s   r   <lambda>*AnyDBMTestCase.test_keys.<locals>.<lambda>   s	    &	r   )
r
   r   r*   r:   r9   r8   ro   assertNotInrH   rd   )r.   r!   r/   r   r$   s       @r   	test_keysAnyDBMTestCase.test_keys   s    XXfc"aQVVXr*OPA! VAFFH-v5Ha5H/HIa#  1q)  VQ'h(9: #""s   CC22
D c                    [         R                  " [        S5       nU R                  UR	                  5       / 5        SS/nU H	  u  p4XAU'   M     U H  u  p5U R                  X15        M     U R                  [        U5      [        U5      5        UR                  5         U R                  [        U5      S5        U H  u  p5U R                  X15        M     S S S 5        g ! , (       d  f       g = f)Nr#   r   r   r   )	r
   r   r*   r:   r9   ro   rT   clearr   )r.   r$   r!   r/   r   _s         r   
test_clearAnyDBMTestCase.test_clear   s    XXfc"aQVVXr*OPA! a# SVSV,GGISVQ'  &  #""s   B;C  
C.c                     U R                  [        [        S[        R                  5        U R                  [        l        U R                  [
        5        [        5         g )Nrm   )
addCleanupsetattrr
   rm   rA   r   r   rD   s    r   setUpAnyDBMTestCase.setUp   s6    mS__E++)*r   r   N)__name__
__module____qualname____firstlineno__r+   r0   r<   rE   rI   rP   rV   r]   re   rh   rp   rs   rx   r|   r   rM   r   r   r   __static_attributes__r   r   r   r   r   /   sx     E@7(
3:GF
;'r   r   c                       \ rS rSrS r\R                  " \SS9S 5       r\R                  " \	SS9S 5       r
\R                  " \	SS9S 5       rS	 rS
rg)WhichDBTestCase   c                 @   U R                  [        [        S[        R                  5        [        R
                  " [        5      n[        [        R                  " [        5      U[        R                  " U5      /n[        5        H  nUR                  n[        5         U[        l        UR                  [        S5         S S S 5        U H-  nU R                  X@R                  R                  U5      5        M/     UR                  [        S5       nSUS'   U R                  SU5        U R                  US   S5        S S S 5        U H-  nU R                  X@R                  R                  U5      5        M/     M     g ! , (       d  f       N= f! , (       d  f       NW= f)Nrm   r#   w   1)r   r   r
   rm   r   rw   r*   r   r{   r   r   r   r   r:   whichdbro   )r.   _bytes_fnamefnamesrA   r   pathr%   s          r   test_whichdbWhichDBTestCase.test_whichdb   s'   mS__E{{6*),,V4	 2 2< @B"nF ??D$COVS))  xx'7'7'=>  VS)Q$dA&  4$/ *   xx'7'7'=> # % *) *)s   ?E>-F>
F	
F	zTest requires ndbm)reasonc                    [        [        S-   S5       nUR                  S5        S S S 5        [        R                  " [        5      n[        [
        R                  " [        5      U[
        R                  " U5      /nU H-  nU R                  U R                  R                  U5      5        M/     g ! , (       d  f       N= f)Nz.dbwbs   spam)
r   r*   writer   rw   r   r{   rc   r
   r   )r.   r%   r   r   r   s        r   test_whichdb_ndbm!WhichDBTestCase.test_whichdb_ndbm   s     &5.$'1GGG ({{6*),,V4	 2 2< @BDdhh..t45  ('s   B22
C zTest requires dbm.sqlite3c                     [         R                  " [        S5       nSUS'   S S S 5        U R                  U R                  R                  [        5      S5        g ! , (       d  f       N>= f)Nr#   valuerO   dbm.sqlite3)dbm_sqlite3r   r*   r:   r
   r   )r.   dbs     r   test_whichdb_sqlite3$WhichDBTestCase.test_whichdb_sqlite3   sL     fc*bBuI +))&1=A +*s   A
A(c                 z   [         R                  " S5      n UR                  [        5       nUR	                  S5        UR                  5         S S S 5        WR                  5         U R                  U R                  R                  [        5      S5        g ! , (       d  f       NN= f! WR                  5         f = f)Nr   zCREATE TABLE dummy(database)r   )
r   import_moduleconnectr*   executecommitr-   r:   r
   r   )r.   r   cxs      r    test_whichdb_sqlite3_existing_db0WhichDBTestCase.test_whichdb_sqlite3_existing_db   s      --i8	(B

9:		 ) HHJ))&1=A )( HHJs"   B( "BB( 
B%!B( (B:c                 x    U R                  [        5        [        5         [        R                  " S5      U l        g )Nr
   )r   r   r   r   import_fresh_moduler
   rD   s    r   r   WhichDBTestCase.setUp   s'    )* 44U;r   )r
   N)r   r   r   r   r   unittest
skipUnlessr   r   r   r   r   r   r   r   r   r   r   r      sx    ?2 &:;6 <6 -HIB JB -HI
B J
B<r   r      	TestCase_rA   __main__)r   r
   r   test.supportr   r   r   r   r   r   TESTFNr   r   joinr*   r   r   r   r   TestCaser   r   r   suffixtestnametypeglobalsmainr   r   r   <module>r      s    
 	 & "*
 

	gy//	0

I IX=<h'' =<@ >C\\!"F6(#Hx .0A0AB (#0GIh	  zMMO q  K  Ds"   C C* C'&C'*C54C5