
    /hh
!                     8   S r 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        HY  r\R.                  R1                  S5      (       d   e\R.                  SS rS\ 3r\" \\\R(                  4S\05      \" 5       \'   M[     \S:X  a  \R:                  " 5         gg! \	 a    Sr Nf = f! \	 a    Sr
 Nf = f)z=Test script for the dbm.open function based on testdumbdbm.py    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/      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).0r0   s     r   	<genexpr>-AnyDBMTestCase.keys_helper.<locals>.<genexpr>?   s     :Ahhw''s   )sortedkeysr,   assertEqual)r/   r&   r:   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
   rC   r   r+   rE   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;   listr:   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)	r1   r
   r   r+   r,   rN   r;   
setdefaultr.   rV   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"   r[   r\   )r1   r
   r   r+   rN   r;   getr,   assertIsNonerI   KeyErrorr.   rV   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 )Nra   )r1   r
   r   r+   r=   r.   )r/   r&   r:   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;   r:   assertInrc   r]   r.   rV   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        X   S:X  d   eUR                  5         g )Nra   r"   r*   r!   )r1   r
   r   r+   r-   rp   r.   rO   s      r   test_anydbm_access!AnyDBMTestCase.test_anydbm_access   sN    HHVS!jj!cv#$#		r   c                 ~    [         R                  " [        R                  " [        5      S5      R                  5         g Nr$   )r
   r   r   fsencoder+   r.   rE   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 rw   )r
   r   r   FakePathr+   r.   rE   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 rw   )r
   r   r   r|   r   rx   r+   r.   rE   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&   r:   rP   s       r   rN   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$   rb      bs   12345678910s   019237410982340912840198242c              3   *   #    U  H	  u  pUv   M     g 7fr   r   )r6   r0   vs      r   r7   +AnyDBMTestCase.test_keys.<locals>.<genexpr>   s     5HaFQaas   r[   c                     > T S   $ )Nr[   r   )r%   s   r   <lambda>*AnyDBMTestCase.test_keys.<locals>.<lambda>   s	    &	r   )
r
   r   r+   r;   r:   r9   rp   assertNotInrI   re   )r/   r"   r0   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;   r:   rp   rU   clearr   )r/   r%   r"   r0   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 )Nrn   )
addCleanupsetattrr
   rn   rB   r   r   rE   s    r   setUpAnyDBMTestCase.setUp   s6    mS__E++)*r   r   N)__name__
__module____qualname____firstlineno__r,   r1   r=   rF   rJ   rQ   rW   r^   rf   ri   rq   rt   ry   r}   r   rN   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)Nrn   r$   w   1)r   r   r
   rn   r   rx   r+   r   r|   r   r   r   r   r;   whichdbrp   )r/   _bytes_fnamefnamesrB   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   rx   r   r|   rd   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$   valuerP   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
   rE   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   zdbm.   	TestCase_rB   __main__)__doc__r   r
   r   test.supportr   r   r   r   r   r   TESTFNr   r   joinr+   r   r   r   r   TestCaser   r   r   
startswithsuffixtestnametypeglobalsmainr   r   r   <module>r      s.   C  
 	 & "*
 

	gy//	0

I IX=<h'' =<@ >C<<""6****\\!"F6(#Hx .0A0AB (#0GIh	  zMMO q  K  Ds"   D  D  D
DDD