python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_dbm_dumb.cpython-312.pyc

͑eN,dZddlZddlZddlZddlZddlZddlZddlmZ	ddl
mZddlm
Z
ddlmZe
j ZdZGddej&Zed	k(rej,yy)
zATest script for the dumbdbm module
   Original by Roger E. Masse
N)support)	os_helper)partialcjdD]}	tjt|z!y#t$rY.wxYw)N.dir.dat.bak)osunlink_fnameOSError)exts F/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_dbm_dumb.py
_delete_filesrs:'	IIfsl#		s&	22ceZdZddddddddd	d
ddd
ddjddiZdZejee	dde
jdZdZ
dZdZdZdZdZdZdZdZdZd Zd!Zd"Zd#Zd$Zd%Zd&Zd'Zd(Zd)Z e
jd*Z!eje
jDd+d,Z#d-Z$d.Z%d/Z&d0Z'd1Z(y2)3DumbDBMTestCase0asPython:bsProgrammingcsthedswayfsGuidogsintendedüutf-8!cBtjtjtd5}|jt
|jg|jD]}|j|||<|j|dddy#1swYyxYwNc)

contextlibclosingdumbdbmopenr
assertEquallistkeys_dictread_helper)selffkeys   rtest_dumbdbm_creationz%DumbDBMTestCase.test_dumbdbm_creation%s~


VS 9
:	 aT!&&(^R0zz
)C#
)Q		 	 	 sABBumaskztest needs os.umask()c:	tjd}tjtdd}|jtj|d}tjdk7rd}ddl}tjtdz}|j|j|j|tjtd	z}|j|j|j|y#tjwxYw)
Nr!iiposixirr	r)rr/r$r%r
closenamestatr&S_IMODEst_mode)r+	old_umaskr,
expected_moder5sts      rtest_dumbdbm_creation_modez*DumbDBMTestCase.test_dumbdbm_creation_mode,s	 IVS%0A
GGIHHY

77g"M
WWVf_
%bjj1=A
WWVf_
%bjj1=A
HHYsADDctjt}d|d<|j|dd|j	|j	y)Nrr)r$r%r
r&r3r+r,s  rtest_close_twicez DumbDBMTestCase.test_close_twiceBs?LL $4$'				rc`|jtjtjt
d5}dx|jd<|d<|j||j|jddd|j|dddddy#1swYyxYw)Nwsindentedrxxxfoo)
init_dbr"r#r$r%r
r)r*r&
setdefaultr=s  rtest_dumbdbm_modificationz)DumbDBMTestCase.test_dumbdbm_modificationIs


VS 9
:	0a)44DJJtqwQQ\\&&96BQvY/	0	0	0sAB$$B-c|jtjtjt
d5}|j
||jtjd5d|d<ddd|jtjd5|d=ddd|j|jd|jd|j|jddd|j|jd|jt5|dddddddy#1swYxYw#1swYxYw#1swY*xYw#1swYyxYw)Nrz'The database is opened for reading onlyxrrrArB)rCr"r#r$r%r
r*assertRaisesRegexerrorr&getr)assertIsNoneassertRaisesKeyErrorr=s  rtest_dumbdbm_readz!DumbDBMTestCase.test_dumbdbm_readRs8


VS 9
:
	aQ''

$MO
$
''

$MO
dG

QUU4[$**T*:;QUU662F;aeeFm,""8,
&	

	
	






	
	sT2E*0E6(E*E"B
E*/E5E*E	E*E	E*E'	#E**E3c|jtjtjt
5}|j
|}dddy#1swYyxYwN)rCr"r#r$r%r
keys_helper)r+r,r(s   rtest_dumbdbm_keysz!DumbDBMTestCase.test_dumbdbm_keyscsI


V 4
5	'##A&D	'	'	'sAA!ctjtjt5}d|d<|jd|dddy#1swYyxYw)Nhello1)r"r#r$r%r
assertInr=s  rtest_write_containsz#DumbDBMTestCase.test_write_containshsG


V 4
5	#AdGMM$"	#	#	#sAAcFtjtjt5}d|d<d|d<dddtjtjt5}|j|dddddy#1swYTxYw#1swYyxYw)NrUrVhello2)r"r#r$r%r
r&r=s  rtest_write_write_readz%DumbDBMTestCase.test_write_write_readms


V 4
5	 AdGAdG	 

V 4
5	1QtWi0	1	1	 	 	1	1sB,BBB c
|jtjtjt
d5}|j
|d|jdjddddy#1swYyxYw)NrGrr)	rCr"r#r$r%r
r&r)encoder=s  r
test_str_readzDumbDBMTestCase.test_str_readuse


VS 9
:	PaQx[$**X__W5M*NO	P	P	Ps2A99Bc|jtjtjt
5}d|d<d|d<dddtjtjt
d5}|j
d||j|djd|jdjd|j|dddddy#1swYxYw#1swYyxYw)	Nrra1rGrrVr)
rCr"r#r$r%r
rWr&r]r)r=s  rtest_str_write_containsz'DumbDBMTestCase.test_str_write_containszs


V 4
5	AhKAcF	

VS 9
:	,aMM(A&Qxw78!ZZ(@A
CQtWd+		,	,			,	,sC.=A(C:.C7:Dctjtjt5}d|d<d|d<dddtjtdzd5}|j
}dddtjdk(rjdd	}njd	d}tjtdzd
5}|j|dddtjt}|j|dd|j|ddy#1swYxYw#1swYxYw#1swYexYw)NrUrVrZ2rrb

s
wb)r"r#r$r%r
ioreadrlinesepreplacewriter&)r+r,filedatas    rtest_line_endingsz!DumbDBMTestCase.test_line_endingss

V 4
5	 AdGAdG	 
WWVf_d
+	t99;D	
::<<w/D<</D
WWVf_d
+	tJJt	
LL 4(+4),!	 	 
				s#D)D5E)D25D>E
c|j|}|jD]$}|j|j|||&yrQ)rRr)r&)r+r,r(r-s    rr*zDumbDBMTestCase.read_helpersA"::	6CTZZ_af5	6rctjtjtd5}|j
D]}|j
|||<	dddy#1swYyxYwNn)r"r#r$r%r
r)r+r,ks   rrCzDumbDBMTestCase.init_dbsV


VS 9
:	%aZZ
%zz!}!
%	%	%	%s$AA%ct|j}t|jj}|j|||SrQ)sortedr(r)r&)r+r,r(dkeyss    rrRzDumbDBMTestCase.keys_helpers<affhtzz()u%rcddl}i}tdD];}tjt	j
t5}tdD]t}|jd}|jdkr||vs,||=||=3|jd|jdz}|||<|||<|j|||v	dddtjt	j
t5}td|jD}t|j}|j||ddd>y#1swYxYw#1swYVxYw)	Nrd
abcdefghijklmg?)rrri'c3HK|]\}}|jd|fyw)zlatin-1N)r]).0rvvs   r	<genexpr>z.DumbDBMTestCase.test_random.<locals>.<genexpr>s"!Qtq!188I#6":!Qs ")randomranger"r#r$r%r
choice	randranger&rxitems)	r+rddummyr,rvrexpectedgots	         rtest_randomzDumbDBMTestCase.test_randoms@1X	0E##GLL$89
2Q"3Z
2E

o6A}},6 !! !!"MM*<=@P@PQV@WW ! !((1q1
2
2##GLL$89
0Q!!Qqwwy!QQQWWY'  3/
0
0	0
2
2
0
0s 7E:AE:AEE	E(	ctjtd5}d|d<dddtjtd5}|jt	|jdgddd|j
tj5jdddy#1swYxYw#1swYNxYw#1swYyxYw)Nr!zcontext managerzdumbdbm context managerrGsdumbdbm context manager)r$r%r
r&r'r(rMrJ)r+dbs  rtest_context_managerz$DumbDBMTestCase.test_context_managers
\\&#
&	>",=B()	>\\&#
&	L"T"'')_/I.JK	L

w}}
-	GGI		
	>	>	L	L		s#B/+B;C/B8;CCcDtjtd}|jt	t
j|t	t
j|dt	t
j|t	t
j|fD]W}|jtj5}|dddd|jtjdYtjdtjdtjdt fD]W}|jtj5}||ddd|jtjdYy#1swYxYw#1swY=xYw)Nr!btestz"DBM object has already been closedr(iterkeysr)r$r%r
r3roperatordelitemsetitemgetitemcontainsrMrJr&str	exceptionmethodcallerlen)r+r,methcms    rtest_check_closedz!DumbDBMTestCase.test_check_closedsPLL%		X--q1X--q#6X--q1X..24	CD""7==1
RV
S.A
C
	C**62**:6**73	CD""7==1
RQ
S.A
C
	C



s4	F
	F
F	F	cHtjtd5}|jD]}|j|||<	dddtjtd5}|j	|jgdddy#1swYMxYw#1swYyxYwrs)r$r%r
r)r&r(rus   rtest_create_newzDumbDBMTestCase.test_create_news
\\&#
&	%!ZZ
%zz!}!
%	%\\&#
&	+!QVVXr*	+	+		%	%	+	+s$B"!BBB!cttdzdd5}|jddddtj5}|jt5tjt5}	dddddd|j|jddddy#1swYxYw#1swYFxYw#1swYJxYw#1swYyxYw)Nrr@r)encodingzstr(print('Hacked!')), 0
)
r%r
rmrcaptured_stdoutrM
ValueErrorr$r&getvalue)r+streamstdoutr,s    r	test_evalzDumbDBMTestCase.test_evals
&6/3
9	7VLL56	7

$
$
&	4&"":.
\\&)Q

V__.3		4	4	7	7

	4	4sGB/CC4B;6C>(C/B8;CCC	CCcdD]}t|jt5tjt
|ddd|j
tjjt
dz|j
tjjt
dzy#1swYvxYw)NrGr@rr
)
rrMFileNotFoundErrorr$r%r
assertFalserpathexists)r+values  rtest_missing_dataz!DumbDBMTestCase.test_missing_datas	>EO""#45
,VU+
,RWW^^FVO<=RWW^^FVO<=	>
,
,sB55B>	ctjtd5}	dddtjtdzdD]}|jt5tjt|ddd|jtjjtdz|jtjjtdzy#1swYxYw#1swYxYw)Nrtrrr
)
r$r%r
rrrMrrrr)r+r,rs   rtest_missing_indexz"DumbDBMTestCase.test_missing_indexs
\\&#
&	!	
		&6/"	>E""#45
,VU+
,RWW^^FVO<=RWW^^FVO<=		>		
,
,sC+C7+C47D	cdD];}|jtd5tjt|ddd=y#1swYHxYw)N)xrfNz)Flag must be one of 'r', 'w', 'c', or 'n')rIrr$r%r
)r+flags  rtest_invalid_flagz!DumbDBMTestCase.test_invalid_flagsR%	+D''
)@A
+VT*
+
+	+
+
+sAA	c|tj5}tjj	|d}tj|d5}|jt|jg|jD]}|j|||<	dddtj|dztjtj|dztjtj|tjtjztj|d5}|jt|jt|j|j!ddddddy#1swYxYw#1swYxYw#1swYyxYw)Nrrtrr	rG)rtemp_dirrrjoinr$r%r&r'r(r)chmodr5S_IRUSRS_IXUSRrxr3)r+dirfnamer,r-s     rtest_readonly_filesz#DumbDBMTestCase.test_readonly_files
s<



!	SGGLLd+EeS)
-Q  affh4::-C!ZZ_AcF-
-
HHUV^T\\2HHUV^T\\2HHS$,,t||34eS)
Q  !16$**3EF	
		
-
-

		s>7F2A
FB!F2;A
F&F2F#	F2&F/	+F22F;z*requires OS support of non-ASCII encodingsctj}dD]%}|jtj||z't	j
|d5}d|d<ddd|j
tjj|dz|j
tjj|dzt	j
|d5}|jt|jdg|j
d|v|j|dddddy#1swYxYw#1swYyxYw)Nrr!svalueskeyr	rrG)
rTESTFN_NONASCII
addCleanuprr$r%
assertTruerrrr&r'r()r+filenamesuffixrs    rtest_nonascii_filenamez&DumbDBMTestCase.test_nonascii_filenames
,,.	AFOOI,,h.?@	A
\\(C
(	"B!BvJ	"x&'89:x&'89:
\\(C
(	3BT"'')_vh7OOFbL)RZ2	3	3		"	"	3	3sD3AD?3D<?Ecztjtjtdjyr )r$r%rFakePathr
r3r+s rtest_open_with_pathlib_pathz+DumbDBMTestCase.test_open_with_pathlib_path+s$Y''/5;;=rcztjtjtdjyr )r$r%rfsencoder
r3rs rtest_open_with_bytes_pathz)DumbDBMTestCase.test_open_with_bytes_path.s"R[[(#.446rctjtjt	j
tdjyr )r$r%rrrrr
r3rs r!test_open_with_pathlib_bytes_pathz1DumbDBMTestCase.test_open_with_pathlib_bytes_path1s-Y''F(;<cBHHJrctyrQrrs rtearDownzDumbDBMTestCase.tearDown4rctyrQrrs rsetUpzDumbDBMTestCase.setUp7rrN))__name__
__module____qualname__r]r)r.unittest
skipUnlesshasattrrrskip_unless_working_chmodr;r>rErOrSrXr[r^rbrpr*rCrRrrrrrrrrrrrrrrrrrrrrsC
3
:
>
6
6
8
;
__W
%
E XW-/FG((B)HB(0"'
#
1P
	,-,6
%
0,C,+4>>+(()X22EG3G3>7Krr__main__)__doc__r"rirrr5rdbm.dumbdumbr$rrtest.supportr	functoolsrTESTFNr
rTestCaserrmainrrr<module>rsi		"			^h''^B	zHMMOr