q¯oSrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSK J r SSK J r SSKJr \ R rSr"SS\R&5r\S :Xa\R,"5 gg) z>Test script for the dumbdbm module Original by Roger E. Masse N)support) os_helper)partialctSH!n[R"[U-5 M# g![a M3f=f)N.dir.dat.bak)osunlink_fnameOSError)exts 9/opt/alt/python313/lib64/python3.13/test/test_dbm_dumb.py _delete_filesrs5'  IIfsl #(   s ) 77c\rSrSrSSSSSSSS S S S S SSSR S5S0rSr\R"\ "\ S5S5\ RS55r SrSrSrSrSrSrSrSrSrS rS!rS"rS#rS$rS%rS&rS'rS(rS)r S*r!S+r"S,r#\ RS-5r$\R"\ RJS.5S/5r&S0r'S1r(S2r)S3r*S4r+S5r,g6)7DumbDBMTestCase0asPython:bs ProgrammingcsthedswayfsGuidogsintendedüutf-8!cR[R"[R"[S55nUR [ UR55/5 URHnURUX'M URU5 SSS5 g!,(df  g=fNc) contextlibclosingdumbdbmopenr assertEquallistkeys_dict read_helper)selffkeys rtest_dumbdbm_creation%DumbDBMTestCase.test_dumbdbm_creation%sn    VS 9 :a   T!&&(^R 0zzC"   Q  ; : :s AB B&umaskztest needs os.umask()cH[R"S5n[R"[SS5nUR 5 [R"U5 Sn[R S:waSnSSKn[R"[S-5nURUR"UR5U5 [R"[S -5nURUR"UR5U5 g![R"W5 f=f) Nr"iiposixirr r) r r1r%r&r closenamestatr'S_IMODEst_mode)r, old_umaskr- expected_moder7sts rtest_dumbdbm_creation_mode*DumbDBMTestCase.test_dumbdbm_creation_mode,s I VS%0A GGI HHY  77g "M WWVf_ % bjj1=A WWVf_ % bjj1=A HHY s AD D!c[R"[5nSUS'URUSS5 UR 5 UR 5 g)Nrr)r%r&r r'r5r,r-s rtest_close_twice DumbDBMTestCase.test_close_twiceBs? LL $ 4$'    rcnUR5 [R"[R"[ S55nS=UR S'US'URU5 URURSS5S5 URUSS5 SSS5 g!,(df  g=f)Nwsindentedrxxxfoo) init_dbr#r$r%r&r r*r+r' setdefaultr@s rtest_dumbdbm_modification)DumbDBMTestCase.test_dumbdbm_modificationIs     VS 9 :a)4 4DJJt qw   Q    Q\\&&96 B   QvY / ; : :s AB&& B4cUR5 [R"[R"[ S55nUR U5 UR[RS5 SUS'SSS5 UR[RS5 US SSS5 URURS5URS5 URURSS5S5 URURS55 UR[5 US SSS5 SSS5 g!,(df  N=f!,(df  N=f!,(df  N9=f!,(df  g=f)Nrz'The database is opened for reading onlyxrrrErF)rGr#r$r%r&r r+assertRaisesRegexerrorr'getr* assertIsNone assertRaisesKeyErrorr@s rtest_dumbdbm_read!DumbDBMTestCase.test_dumbdbm_readRs$     VS 9 :a   Q '' $MO$O'' $MOdGO   QUU4[$**T*: ;   QUU662F ;   aeeFm ,""8,& -; :OOOO-,; :sU2E;2E8(E; E$B E;1E*7E; E E; E' #E;* E8 4E;; F cUR5 [R"[R"[ 55nUR U5nSSS5 g!,(df  g=fN)rGr#r$r%r&r keys_helper)r,r-r)s rtest_dumbdbm_keys!DumbDBMTestCase.test_dumbdbm_keyscs@     V 4 5##A&D6 5 5s A A(c[R"[R"[55nSUS'UR SU5 SSS5 g!,(df  g=f)Nhello1)r#r$r%r&r assertInr@s rtest_write_contains#DumbDBMTestCase.test_write_containshs>    V 4 5AdG MM$ "6 5 5s A Acb[R"[R"[55nSUS'SUS'SSS5 [R"[R"[55nUR USS5 SSS5 g!,(df  N[=f!,(df  g=f)Nr\r]hello2)r#r$r%r&r r'r@s rtest_write_write_read%DumbDBMTestCase.test_write_write_readms{    V 4 5AdGAdG6   V 4 5   QtWi 06 56 56 5s B0B  B B.cUR5 [R"[R"[ S55nUR USURSRS55 SSS5 g!,(df  g=f)NrLrr) rGr#r$r%r&r r'r*encoder@s r test_str_readDumbDBMTestCase.test_str_readusX     VS 9 :a   Qx[$**X__W5M*N O; : :s 2A;; B c(UR5 [R"[R"[ 55nSUS'SUS'SSS5 [R"[R"[ S55nUR SU5 URUSRS5URSRS55 URUSS5 SSS5 g!,(df  N=f!,(df  g=f) Nrra1rLrr]r) rGr#r$r%r&r r^r'rfr*r@s rtest_str_write_contains'DumbDBMTestCase.test_str_write_containszs     V 4 5AhKAcF6   VS 9 :a MM(A &   Qxw78!ZZ(@A C   QtWd + ; :6 5; :s C2A(D2 D Dc[R"[R"[55nSUS'SUS'SSS5 [ R"[S-S5nUR 5nSSS5 [RS:XaWRSS 5nOWRS S5n[ R"[S-S 5nURU5 SSS5 [R"[5nURUSS5 URUSS5 g!,(df  N=f!,(df  N=f!,(df  Nu=f) Nr\r]rb2rrb  s wb) r#r$r%r&r ioreadr linesepreplacewriter')r,r-filedatas rtest_line_endings!DumbDBMTestCase.test_line_endingss   V 4 5AdGAdG6 WWVf_d +t99;D, :: <<w/D<</D WWVf_d +t JJt , LL  4(+ 4),!6 5 , + , +s# D/ EE/ D= E EcURU5nURH$nURURUX5 M& grW)rXr*r')r,r-r)r.s rr+DumbDBMTestCase.read_helpers:"::C   TZZ_af 5rc[R"[R"[S55nUR HnUR UX'M SSS5 g!,(df  g=fNn)r#r$r%r&r r*r,r-ks rrGDumbDBMTestCase.init_dbsF    VS 9 :aZZzz!} ; : :s %A A,c[UR55n[URR55nURX#5 U$rW)sortedr)r*r')r,r-r)dkeyss rrXDumbDBMTestCase.keys_helpers:affhtzz() % rcSSKn0n[S5GH?n[R"[R "[ 55n[S5HtnURS5nUR5S:a XR;aX% XE M3M5URS5URS5-nXbU'XdU'URXEU5 Mv SSS5 [R"[R "[ 55n[SUR555n[UR55nURXx5 SSS5 GMB g!,(df  N=f!,(df  GMf=f) Nrd abcdefghijklmg?)rrri'c3L# UHupURS5U4v M g7f)zlatin-1N)rf).0rvs r .DumbDBMTestCase.test_random..s !Qytq188I#6":ys"$) randomranger#r$r%r&r choice randranger'ritems) r,rddummyr-rrexpectedgots r test_randomDumbDBMTestCase.test_randoms 1XE##GLL$89Q"3ZE o6A}},6 ! !"#MM*<=@P@PQV@WW ! !((q1(:##GLL$89Q!!Qqwwy!QQQWWY'  /:999:9sBE>A E( E% ( E8 c[R"[S5nSUS'SSS5 [R"[S5nUR[ UR 55S/5 SSS5 UR [R5 WR 5 SSS5 g!,(df  N=f!,(df  NX=f!,(df  g=f)Nr"zcontext managerzdumbdbm context managerrLsdumbdbm context manager)r%r&r r'r(r)rRrO)r,dbs rtest_context_manager$DumbDBMTestCase.test_context_managers \\&# &",=B( )'\\&# &"   T"'')_/I.J K'  w}} - GGI. - ' &' &. -s#B1+CC1 B? C C!ch[R"[S5nUR5 [ [ R U5[ [ RUS5[ [ RU5[ [ RU54HXnUR[R5nU"S5 SSS5 UR[WR5S5 MZ [ R"S5[ R"S5[ R"S5[ 4HXnUR[R5nU"U5 SSS5 UR[WR5S5 MZ g!,(df  N=f!,(df  NI=f)Nr"btestz"DBM object has already been closedr)iterkeysr)r%r&r r5roperatordelitemsetitemgetitemcontainsrRrOr'str exception methodcallerlen)r,r-methcms rtest_check_closed!DumbDBMTestCase.test_check_closeds4 LL %  X--q1X--q#6X--q1X..24D""7==1RV 2   S.A C 4**62**:6**73D""7==1RQ2   S.A C  2121s5 F F# F # F1 c`[R"[S5nURHnURUX'M SSS5 [R"[S5nUR UR 5/5 SSS5 g!,(df  NS=f!,(df  g=fr)r%r&r r*r'r)rs rtest_create_newDumbDBMTestCase.test_create_newsv \\&# &!ZZzz!} '\\&# &!   QVVXr *' & ' &' &s%B$!B B B-c[[S-SSS9nURS5 SSS5 [R"5nUR [ 5 [R"[5nSSS5 SSS5 URUR5S5 SSS5 g!,(df  N=f!,(df  NP=f!,(df  NY=f!,(df  g=f)NrrDr)encodingzstr(print('Hacked!')), 0 ) r&r rxrcaptured_stdoutrR ValueErrorr%r'getvalue)r,streamstdoutr-s r test_evalDumbDBMTestCase.test_evals &6/3 9V LL5 6:  $ $ &&"":.\\&)Q*/   V__. 3 ' &: 9*)/.' &sGB.C!C3B?5C=(C!. B<? C C C C!! C/cSHn[5 UR[5 [R"[ U5 SSS5 UR [RR[ S-55 UR [RR[ S-55 UR [RR[ S-55 M SGHn[5 [R"[ U5nUR[RR[ S-55 UR[RR[ S-55 UR [RR[ S-55 SSS5 UR [RR[ S-55 GM SGH n[5 [R"[ U5nSUS'UR[RR[ S-55 UR[RR[ S-55 UR [RR[ S-55 SSS5 UR[RR[ S-55 GM g!,(df  GN=f!,(df  GNn=f!,(df  Nm=f)NrLrDr rr r"rvaluer.) rrRFileNotFoundErrorr%r&r assertFalser pathexists assertTrue)r,rr-s rtest_missing_data!DumbDBMTestCase.test_missing_datasE O""#45 VU+6   RWW^^FVO< =   RWW^^FVO< =   RWW^^FVO< =   E Ofe,v ?@v ?@  !@A-   RWW^^FVO< =   E Ofe,"%v ?@v ?@  !@A - OOBGGNN6F?; < 65-,-,s%L B L$B%L0 L  L- 0 L> cZ[R"[S5nSSS5 [R"[S-5 SHnUR [ 5 [R"[U5 SSS5 UR[RR[S-55 UR[RR[S-55 M SHn[R"[U5nUR[RR[S-55 UR[RR[S-55 SSS5 UR[RR[S-55 [R"[S-5 M SGHn[R"[U5nSUS'UR[RR[S-55 UR[RR[S-55 SSS5 UR[RR[S-55 [R"[S-5 [R"[S-5 GM g!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  N=f)Nrrrr rrr.) r%r&r r r rRrrrrrr,r-rs rtest_missing_index"DumbDBMTestCase.test_missing_indexs \\&# &! ' &6/"E""#45 VU+6   RWW^^FVO< =   RWW^^FVO< =   Efe,v ?@  !@A-   RWW^^FVO< = IIfvo &   Efe,"%v ?@  !@A- OOBGGNN6F?; < IIfvo & IIfvo & !' &65 -,-,s1K&K8A+L 9A0L& K58 L L  L* c[R"[S5nSSS5 [R"[S-5 SGH n[R"[U5nUR [R R[S-55 UR[R R[S-55 UR5 UR [R R[S-55 UR[R R[S-55 [R"[S-5 UR5 UR[R R[S-55 UR[R R[S-55 SSS5 UR[R R[S-55 UR[R R[S-55 GM g!,(df  GNA=f!,(df  N=f)Nrrrr r%r&r r r rrrrsyncrs rtest_sync_empty_unmodified*DumbDBMTestCase.test_sync_empty_unmodified(ss \\&# &! ' &6/"Efe,v ?@  !@Av ?@  !@A &6/*  !@A  !@A-   RWW^^FVO< =   RWW^^FVO< = ' &-,sI$E8GAFB%GA F1G F. )G1 F? ;G Gz*requires OS support of non-ASCII encodingsc[RnSH%nUR[RX-5 M' [R "US5nSUS'SSS5 UR [RRUS-55 UR [RRUS-55 [R "US5nUR[UR55S/5 UR SU;5 URUSS5 SSS5 g!,(df  N=f!,(df  g=f)Nrr"svalueskeyr rrL) rTESTFN_NONASCII addCleanupr r%r&rr rrr'r(r))r,filenamesuffixrs rtest_nonascii_filename&DumbDBMTestCase.test_nonascii_filenameds,,.F OOI,,h.? @/ \\(C (B!BvJ) x&'89: x&'89: \\(C (B   T"'')_vh 7 OOFbL )   RZ 2) ( ) () (sD7AE7 E Ec~[R"[R"[5S5R 5 gr!)r%r&rFakePathr r5r,s rtest_open_with_pathlib_path+DumbDBMTestCase.test_open_with_pathlib_pathss$ Y''/5;;=rc~[R"[R"[5S5R 5 gr!)r%r&r fsencoder r5rs rtest_open_with_bytes_path)DumbDBMTestCase.test_open_with_bytes_pathvs" R[[(#.446rc[R"[R"[R "[ 55S5R5 gr!)r%r&rrr rr r5rs r!test_open_with_pathlib_bytes_path1DumbDBMTestCase.test_open_with_pathlib_bytes_pathys- Y'' F(; 6 6 8 ; __W % E W-/FG((B)HB(0"' # 1P ,-,6 % 0,C,+4=4'4>$>(+(( ) 22EG 3G 3>7Krr__main__)__doc__r#rtrr r7rdbm.dumbdumbr%rr test.supportr functoolsrTESTFNr rTestCaserrmainrrrrsg  "   fh''fR  z MMOr