+
    Bi5                         ^ RI Ht ^ RI Ht ]P                  ! R4       ^ RIt^ RIt^ RIt^ RIHt  ! R R]P                  4      t
]R8X  d   ]P                  ! 4        R# R# )	    )import_helper)	os_helperzdbm.ndbmN)errorc                      a  ] tR t^	t o R tR tR tR tR tR t	R t
R tR	 t]P                  ! ]P                   R
4      R 4       tR tR tR tR tR tR tR tR tRtV tR# )DbmTestCasec                    \         P                  V n        \        P                  P                  V P                  R 4      V n        V P                  P                  4        R# cN)r   TESTFNfilenamedbmndbmopendcloseselfs   &)/usr/lib/python3.14/test/test_dbm_ndbm.pysetUpDbmTestCase.setUp   s6    !((t}}c2    c                f    R F*  p\         P                  ! V P                  V,           4       K,  	  R# ) Nr   z.pagz.dirz.db)r   unlinkr   )r   suffixs   & r   tearDownDbmTestCase.tearDown   s#    1FT]]V34 2r   c                h   \         P                  P                  V P                  R 4      V n        V P                  V P                  P                  4       . 4       RV P                  R&   RV P                  R&   RV P                  R&   V P                  P                  4        V P                  RV P                  4       V P                  RV P                  4       V P                  V P                  R,          R4       V P                  V P                  P                  R4      R4       V P                  V P                  P                  R	4      4       V P                  V P                  P                  R	R
4      R
4       V P                  \        4      ;_uu_ 4        V P                  R,           RRR4       V P                  V P                  P                  R	R
4      R
4       V P                  V P                  R	,          R
4       V P                  P                  4        R#   + '       g   i     L{; i)r
   bas   datas   bytes01923741098234091284019824212345678910   a   bs   xxxs   fooxxxN)r   r   r   r   r   assertEqualkeysassertIngetassertIsNoneassertRaisesKeyError
setdefaultr   r   s   &r   	test_keysDbmTestCase.test_keys   sp   t}}c2+s"x =}c466"dDFF#)73D)40$&&**V,-FF3V<x((FF5M )**66:FC0	 )(s   H!!H1	c                   \         P                  P                  R 8X  d   V P                  R4       \         P                  P	                  V P
                  R4      V n        V P                  V P                  P                  4       . 4       RV P                  R&   V P                  V P                  P                  4       R.4       V P                  RV P                  4       V P                  V P                  R,          R4       V P                  V P                  P                  R4      R4       V P                  V P                  P                  R4      R4       V P                  P                  4        R# )zBerkeley DBzCBerkeley DB doesn't distinguish the empty value from the absent oner
   r   emptys   emptyr   N)r   r   libraryskipTestr   r   r   r'   r(   r)   r*   r.   r   r   s   &r   test_empty_valueDbmTestCase.test_empty_value(   s    88},MM 0 1t}}c2+w
3h')3/H-s3**84c:r   c                    R FM  p \         P                  P                  V P                  V4      V n        V P                  P                  4        KO  	  R#   \         d    T P                  4         Kq  i ; i)rN)r8   rwwn)r   r   r   r   r   r   r   fail)r   modes   & r   
test_modesDbmTestCase.test_modes6   sR    )Dt}}d; *  		s   A	AA54A5c                   \         P                  P                  V P                  R 4      ;_uu_ 4       pRVR&   RRR4       \         P                  P                  V P                  R4      ;_uu_ 4       pV P	                  \        VP                  4       4      R.4       RRR4       V P                  \         P                  P                  4      ;_uu_ 4       pXP                  4        RRR4       V P	                  \        XP                  4      R4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L]; i)r
   zcontext managerzndbm context managerNr8   s   ndbm context managerz"DBM object has already been closed)r   r   r   r   r'   listr(   r,   r   str	exception)r   dbcms   &  r   test_context_manager DbmTestCase.test_context_manager>   s    XX]]4==#.."):B%& / XX]]4==#.."T"'')_/F.GH / sxx~~.."GGI /R\\*=	? /. /. /.s#   D3+D*D=D'	*D:	=E	c                   \         P                  P                  V P                  R 4      ;_uu_ 4       pRVR&   RRR4       \         P                  P                  V P                  R4      ;_uu_ 4       pV P	                  \        VP                  4       4      R.4       V P                  RV9   4       V P	                  VR,          R4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r
   s   bytes value s   bytes key Nr8   )r   r   r   r   r'   rA   r(   
assertTruer   rD   s   & r   
test_bytesDbmTestCase.test_bytesJ   s    XX]]4==#.."$7B ! /XX]]4==#.."T"'')_/@.ABOO-34R 124GH /. /....s   C3AC(C%	(C9	c                   \         P                  P                  V P                  R 4      ;_uu_ 4       pRVR&   RRR4       \         P                  P                  V P                  R4      ;_uu_ 4       pV P	                  \        VP                  4       4      RP                  4       .4       V P                  RP                  4       V9   4       V P                  RV9   4       V P	                  VRP                  4       ,          RP                  4       4       V P	                  VR,          RP                  4       4       RRR4       R#   + '       g   i     EL; i  + '       g   i     R# ; i)r
   u   Unicode value 🐍u   Unicode key 🐍Nr8   )	r   r   r   r   r'   rA   r(   encoderI   rJ   s   & r   test_unicodeDbmTestCase.test_unicodeR   s	   XX]]4==#.."+EB'( /XX]]4==#.."T"'')_/G/N/N/P.QROO4;;=CDOO4:;R 8 ? ? AB7>>@BR 897>>@B /. /.....s   E3CEE	E-	c           	        \         P                  P                  V P                  R 4      ;_uu_ 4       pRVR&   RRR4       \         P                  P                  V P                  R4      ;_uu_ 4       pV P	                  \
        4      ;_uu_ 4        VR RRR4       V P	                  \
        4      ;_uu_ 4        VR RRR4       V P	                  \
        4      ;_uu_ 4        RVR&   RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lk; i  + '       g   i     LS; i  + '       g   i     R# ; i)r
   s   bytes values	   bytes keyNr8   s   not exist keys   not exist value)r   r   r   r   r,   r   rJ   s   & r   test_write_readonly_file$DbmTestCase.test_write_readonly_file^   s    XX]]4==#.."-B| /XX]]4==#.."""5))'( *""5))|$ *""5))'9#$ * /. /. *))))) /..s_   C;3ED	%E:D!	>%E#D4	)E;D	DE!D1,E4E?EE	z*requires OS support of non-ASCII encodingsc                  a \         P                  oR	 F*  pV P                  \         P                  SV,           4       K,  	  \        P
                  P                  SR4      ;_uu_ 4       pRVR&   RRR4       T P                  \        ;QJ d    V3R lR	 4       F  '       g   K   RM	  RM! V3R lR	 4       4      4       \        P
                  P                  SR4      ;_uu_ 4       pV P                  \        VP                  4       4      R.4       V P                  RV9   4       V P                  VR,          R4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)
r   r
   s   values   keyNc              3   p   <"   T F+  p\         P                  P                  SV,           4      x  K-  	  R # 5i)N)ospathexists).0r   r   s   & r   	<genexpr>5DbmTestCase.test_nonascii_filename.<locals>.<genexpr>q   s.      G*E GGNN8f+<==*Es   36TFr8   r   )r   TESTFN_NONASCII
addCleanupr   r   r   r   rI   anyr'   rA   r(   )r   r   rD   r   s   &  @r   test_nonascii_filename"DbmTestCase.test_nonascii_filenamei   s    ,,1FOOI,,h.?@ 2XX]]8S))R!BvJ * G*EG G*EG G 	HXX]]8S))RT"'')_vh7OOFbL)RZ2 *)	 *) *))s   *E)AEE	E/	c                x   R pV P                  \        P                  P                  4      ;_uu_ 4       p\        P                  P	                  V4       RRR4       V P                  V\        XP                  4      4       V P                  VP                  P                  V4       R#   + '       g   i     L]; i)znonexisting-fileN)
r,   r   r   r   r   r)   rB   rC   r'   r   )r   nonexisting_filerE   s   &  r   test_nonexisting_file!DbmTestCase.test_nonexisting_filex   su    -sxx~~.."HHMM*+ /&BLL(9:..0@A /.s    B))B9	c                    \         P                  P                  \        P                  ! V P
                  4      R 4      P                  4        R# r	   )r   r   r   r   FakePathr   r   r   s   &r   test_open_with_pathlib_path'DbmTestCase.test_open_with_pathlib_path   s,    i((7=CCEr   c                    \         P                  P                  \        P                  ! V P
                  4      R 4      P                  4        R# r	   )r   r   r   rV   fsencoder   r   r   s   &r   test_open_with_bytes_path%DbmTestCase.test_open_with_bytes_path   s*    bkk$--0#6<<>r   c                    \         P                  P                  \        P                  ! \
        P                  ! V P                  4      4      R 4      P                  4        R# r	   )	r   r   r   r   rf   rV   rj   r   r   r   s   &r   !test_open_with_pathlib_bytes_path-DbmTestCase.test_open_with_pathlib_bytes_path   s5    i((T]])CDcJPPRr   c                    \         P                  P                  V P                  R 4      ;_uu_ 4       pV P	                  \        V4      4       RRR4       R#   + '       g   i     R# ; ir	   )r   r   r   r   assertFalseboolrJ   s   & r   test_bool_emptyDbmTestCase.test_bool_empty   s>    XX]]4==#.."T"X& /...s   AA)	c                    \         P                  P                  V P                  R 4      ;_uu_ 4       pRVR&   V P	                  \        V4      4       RRR4       R#   + '       g   i     R# ; ir
   r    r!   N)r   r   r   r   rI   rr   rJ   s   & r   test_bool_not_emptyDbmTestCase.test_bool_not_empty   sE    XX]]4==#.."BsGOODH% /...s    AA.	c                
   \         P                  P                  V P                  R 4      ;_uu_ 4       pRVR&   RRR4       V P	                  \         P                  P
                  \        X4       R#   + '       g   i     LA; irv   )r   r   r   r   r,   r   rr   rJ   s   & r   test_bool_on_closed_db_raises)DbmTestCase.test_bool_on_closed_db_raises   sN    XX]]4==#.."BsG /#((..$3 /.s   A22B	c                   RR.p\         P                  P                  V P                  R4      ;_uu_ 4       pV F  w  r4WBV&   V P	                  W24       K  	  V P                  \        V4      \        V4      4       VP                  4        V F  w  r4V P                  W24       K  	  V P                  \        V4      ^ 4       RRR4       R#   + '       g   i     R# ; i)foor
   N)r}   bar)12345678)	r   r   r   r   r)   r'   lenclearassertNotIn)r   kvsrD   kvs   &    r   
test_clearDbmTestCase.test_clear   s    /0XX]]4==#.."1a$  SWc#h/HHJ  ' SWa( /...s   BCC	)r   r   N)__name__
__module____qualname____firstlineno__r   r   r/   r5   r>   rF   rK   rO   rR   unittest
skipUnlessr   r\   r_   rc   rg   rk   rn   rs   rw   rz   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r   	   s     
5(
?I
B	: 22EG3G3BF?S'&
4
) )r   r   __main__)test.supportr   r   import_modulerV   r   dbm.ndbmr   r   TestCaser   r   main r   r   <module>r      sR    & "   J ' 	   X)(## X)v zMMO r   