%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python3.8/sqlite3/test/__pycache__/
Upload File :
Create Path :
Current File : //usr/local/lib/python3.8/sqlite3/test/__pycache__/regression.cpython-38.pyc

U

p©ßaÝ<ã@shddlZddlZddlZddlZddlZddlmZGdd„dejƒZ	dd„Z
dd„Zed	krdeƒdS)
éN)Úsupportc@seZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	e
 ej
dkd¡dd„ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Z d7d8„Z!d9d:„Z"d;d<„Z#d=d>„Z$d?d@„Z%dAS)BÚRegressionTestscCst d¡|_dS)Nú:memory:)ÚsqliteÚconnectÚcon©Úself©r
ú3/usr/local/lib/python3.8/sqlite3/test/regression.pyÚsetUp szRegressionTests.setUpcCs|j ¡dS©N)rÚcloserr
r
rÚtearDown#szRegressionTests.tearDowncCs|j ¡}| d¡dS)Nzpragma user_version)rÚcursorÚexecute©r	Úcurr
r
rÚCheckPragmaUserVersion&s
z&RegressionTests.CheckPragmaUserVersioncCs@tjdtjd}z|j ¡}| d¡W5| ¡| ¡XdS)Nr©Zdetect_typeszpragma schema_version)rrZPARSE_COLNAMESrrrr©r	rrr
r
rÚCheckPragmaSchemaVersion+s
z(RegressionTests.CheckPragmaSchemaVersioncsŽtjddd‰‡fdd„tdƒDƒ}|d d¡tdƒD]"}|d d	d
d„tdƒDƒ¡q:tdƒD]}|| d|d¡qfˆ ¡dS)
Nré)Zcached_statementscsg|]}ˆ ¡‘qSr
)r©Ú.0Úx©rr
rÚ
<listcomp>:sz7RegressionTests.CheckStatementReset.<locals>.<listcomp>rzcreate table test(x)é
zinsert into test(x) values (?)cSsg|]
}|f‘qSr
r
rr
r
rr=sú zselect x from test)rrÚrangerÚexecutemanyÚrollback)r	ÚcursorsÚir
rrÚCheckStatementReset5s z#RegressionTests.CheckStatementResetcCsN|j ¡}| d¡| |jddd¡| d¡| |jddd¡dS)Nz select 1 as "foo bar [datetime]"rzfoo bar [datetime]zselect 1 as "foo baz"zfoo baz)rrrÚassertEqualÚdescriptionrr
r
rÚCheckColumnNameWithSpacesDs



z)RegressionTests.CheckColumnNameWithSpacescCsLt d¡}g}tdƒD](}| ¡}| |¡| dt|ƒ¡q| ¡dS)Nréizselect 1 x union select )rrr rÚappendrÚstrr)r	rr#r$rr
r
rÚ#CheckStatementFinalizationOnCloseDbLs

z3RegressionTests.CheckStatementFinalizationOnCloseDb)éér.zneeds sqlite 3.2.2 or newercCs€t d¡}| d¡| d¡z| d¡Wntjk
rBYnX| d¡z| ¡Wn tjk
rz| d¡YnXdS)Nrz3create table foo(x, unique(x) on conflict rollback)zinsert into foo(x) values (1)zinsert into foo(x) values (2)z1pysqlite knew nothing about the implicit ROLLBACK)rrrZ
DatabaseErrorÚcommitÚOperationalErrorZfail©r	rr
r
rÚCheckOnConflictRollbackZs



z'RegressionTests.CheckOnConflictRollbackcCs(|j d¡|j d¡|j d¡dS)zm
        pysqlite would crash with older SQLite versions unless
        a workaround is implemented.
        úcreate table foo(bar)údrop table fooN©rrrr
r
rÚ-CheckWorkaroundForBuggySqliteTransferBindingsisz=RegressionTests.CheckWorkaroundForBuggySqliteTransferBindingscCs|j d¡dS)z
        pysqlite used to segfault with SQLite versions 3.5.x. These return NULL
        for "no-operation" statements
        ÚNr5rr
r
rÚCheckEmptyStatementrsz#RegressionTests.CheckEmptyStatementcCshd}tjdtjd}| d¡| dtj ¡f¡| |¡| d¡| d¡| d¡| |¡d	S)
z
        pysqlite until 2.4.1 did not rebuild the row_cast_map when recompiling
        a statement. This test exhibits the problem.
        zselect * from foorrzcreate table foo(bar timestamp)zinsert into foo(bar) values (?)r4zcreate table foo(bar integer)úinsert into foo(bar) values (5)N)rrÚPARSE_DECLTYPESrÚdatetimeZnow)r	ZSELECTrr
r
rÚCheckTypeMapUsageys




z!RegressionTests.CheckTypeMapUsagec	s\G‡fdd„dƒ}|ƒdg‰tjdtjd}| d¡| t¡| dˆ¡W5QRXdS)NcseZdZ‡fdd„ZdS)z0RegressionTests.CheckBindMutatingList.<locals>.Xcsˆ ¡dS)Nz...)Úclear)r	Úprotocol©Z
parametersr
rÚ__conform__‹sz<RegressionTests.CheckBindMutatingList.<locals>.X.__conform__N)Ú__name__Ú
__module__Ú__qualname__r@r
r?r
rÚXŠsrDrrrz$create table foo(bar X, baz integer)z'insert into foo(bar, baz) values (?, ?))rrr:rÚassertRaisesÚ
IndexError)r	rDrr
r?rÚCheckBindMutatingListˆs

z%RegressionTests.CheckBindMutatingListc	CsP| tj¡$}|j dttdgƒƒf¡ ¡W5QRXd}| |t	|j
ƒ¡dS)Nz"select 'xxx' || ? || 'yyy' colnameéúz9Could not decode to UTF-8 column 'colname' with text 'xxx)rErr0rrÚbytesÚ	bytearrayÚfetchoneZassertInr+Ú	exception)r	ÚcmÚmsgr
r
rÚCheckErrorMsgDecodeError•sÿz(RegressionTests.CheckErrorMsgDecodeErrorcCs| ttjid¡dS)z!
        See issue 3312.
        N)rEÚ	TypeErrorrZregister_adapterrr
r
rÚCheckRegisterAdapteržsz$RegressionTests.CheckRegisterAdaptercsìG‡fdd„dtƒ}t d¡‰dˆ_dD]@}|j|d*|ˆ_| ¡ˆ_| ¡ˆ_||ƒˆ_W5QRXq(dˆ_dˆ_dtfdtfd	tfd
tfdtfg}|D]J\}}|j|d0| 	|¡|ˆ_W5QRX| 
ˆjd¡W5QRXqœdS)Ncs eZdZdd„Z‡fdd„ZdS)z9RegressionTests.CheckSetIsolationLevel.<locals>.CustomStrcSsdSr
r
rr
r
rÚupper§sz?RegressionTests.CheckSetIsolationLevel.<locals>.CustomStr.uppercs
dˆ_dS)Nr7©Úisolation_levelrrr
rÚ__del__©szARegressionTests.CheckSetIsolationLevel.<locals>.CustomStr.__del__N)rArBrCrRrUr
rr
rÚ	CustomStr¦srVr)r7ÚDEFERREDZ	IMMEDIATEZ	EXCLUSIVE)ÚlevelrWéóÚabczIMMEDIATEEXCLUSIVEõé)r+rrrTÚsubTestÚlowerÚ
capitalizerPÚ
ValueErrorrEr&)r	rVrXZpairsÚvalueÚexcr
rrÚCheckSetIsolationLevel¤s,


þz&RegressionTests.CheckSetIsolationLevelc	CspGdd„dtjƒ}t d¡}||ƒ}| tj¡| d¡ ¡W5QRX| tjd¡| ¡W5QRXdS)zd
        Verifies that cursor methods check whether base class __init__ was
        called.
        c@seZdZdd„ZdS)z?RegressionTests.CheckCursorConstructorCallCheck.<locals>.CursorcSsdSr
r
r1r
r
rÚ__init__ÈszHRegressionTests.CheckCursorConstructorCallCheck.<locals>.Cursor.__init__N©rArBrCrdr
r
r
rÚCursorÇsrfrz
select 4+5z$^Base Cursor\.__init__ not called\.$N)	rrfrrEÚProgrammingErrorrÚfetchallZassertRaisesRegexr)r	rfrrr
r
rÚCheckCursorConstructorCallCheckÂs
ÿz/RegressionTests.CheckCursorConstructorCallCheckcCs(Gdd„dtƒ}|j d|dƒf¡dS)za
        The Python 3.0 port of the module didn't cope with values of subclasses of str.
        c@seZdZdS)z/RegressionTests.CheckStrSubclass.<locals>.MyStrN)rArBrCr
r
r
rÚMyStr×srjzselect ?r[N)r+rr)r	rjr
r
rÚCheckStrSubclassÓsz RegressionTests.CheckStrSubclassc	Cs>Gdd„dtjƒ}|dƒ}| tj¡| ¡}W5QRXdS)zh
        Verifies that connection methods check whether base class __init__ was
        called.
        c@seZdZdd„ZdS)zGRegressionTests.CheckConnectionConstructorCallCheck.<locals>.ConnectioncSsdSr
r
)r	Únamer
r
rrdàszPRegressionTests.CheckConnectionConstructorCallCheck.<locals>.Connection.__init__Nrer
r
r
rÚ
ConnectionßsrmrN)rrmrErgr©r	rmrrr
r
rÚ#CheckConnectionConstructorCallCheckÚsz3RegressionTests.CheckConnectionConstructorCallCheckc	sŠG‡fdd„dtjƒ}Gdd„dtjƒ‰|dƒ}| ¡}| d¡| ddd	d
g¡| d¡| ¡| tj¡| 	¡W5QRXdS)
zœ
        Verifies that subclassed cursor classes are correctly registered with
        the connection object, too.  (fetch-across-rollback problem)
        cseZdZ‡fdd„ZdS)z;RegressionTests.CheckCursorRegistration.<locals>.Connectioncsˆ|ƒSr
r
r©rfr
rríszBRegressionTests.CheckCursorRegistration.<locals>.Connection.cursorN)rArBrCrr
rpr
rrmìsrmc@seZdZdd„ZdS)z7RegressionTests.CheckCursorRegistration.<locals>.CursorcSstj ||¡dSr
)rrfrdr1r
r
rrdñsz@RegressionTests.CheckCursorRegistration.<locals>.Cursor.__init__Nrer
r
r
rrfðsrfrzcreate table foo(x)zinsert into foo(x) values (?))r-)é)rzselect x from fooN)
rrmrfrrr!r"rEZInterfaceErrorrhrnr
rprÚCheckCursorRegistrationçs

z'RegressionTests.CheckCursorRegistrationcCstjddd}dS)z§
        Verifies that creating a connection in autocommit mode works.
        2.5.3 introduced a regression so that these could no longer
        be created.
        rNrS)rrr1r
r
rÚCheckAutoCommitýszRegressionTests.CheckAutoCommitcCs4|j ¡}| d¡| d¡| d¡| ¡}dS)z‡
        Verifies that running a PRAGMA statement that does an autocommit does
        work. This did not work in 2.5.3/2.5.4.
        r3r9zpragma page_sizeN)rrrrK)r	rÚrowr
r
rÚCheckPragmaAutocommits




z%RegressionTests.CheckPragmaAutocommitcCs| tj|jd¡dS)z}
        Call a connection with a non-string SQL request: check error handling
        of the statement constructor.
        rYN)rErÚWarningrrr
r
rÚCheckConnectionCallsz#RegressionTests.CheckConnectionCallcCs"dd„}| tj|jjd|¡dS)NcSsdS)NrYr
)ÚaÚbr
r
rÚcollation_cbsz4RegressionTests.CheckCollation.<locals>.collation_cbuí²€)rErrgrZcreate_collation)r	rzr
r
rÚCheckCollations
þzRegressionTests.CheckCollationc	sft d¡}| ¡‰ˆ d¡ˆ d¡‡fdd„}| tj¡ˆ ddd„|ƒDƒ¡W5QRXd	S)
zÝ
        http://bugs.python.org/issue10811

        Recursively using a cursor, such as when reusing it from a generator led to segfaults.
        Now we catch recursive cursor usage and raise a ProgrammingError.
        rzcreate table a (bar)zcreate table b (baz)c3sˆ dd¡dVdS)Nzinsert into a (bar) values (?))rYrY)rr
©rr
rÚfoo,sz4RegressionTests.CheckRecursiveCursorUse.<locals>.foozinsert into b (baz) values (?)css|]}|fVqdSr
r
)rr$r
r
rÚ	<genexpr>2sz:RegressionTests.CheckRecursiveCursorUse.<locals>.<genexpr>N)rrrrrErgr!)r	rr}r
r|rÚCheckRecursiveCursorUses


ÿz'RegressionTests.CheckRecursiveCursorUsec
CsŠtjdtjd}| ¡}| d¡| d¡| d¡| d¡dd„| ¡Dƒ}| |t d	d
d
ddd
d¡t d	d
d
ddd
d¡g¡dS)zË
        http://bugs.python.org/issue14720

        The microsecond parsing of convert_timestamp() should pad with zeros,
        since the microsecond string "456" actually represents "456000".
        rrzCREATE TABLE t (x TIMESTAMP)z4INSERT INTO t (x) VALUES ('2012-04-04 15:06:00.456')z:INSERT INTO t (x) VALUES ('2012-04-04 15:06:00.123456789')zSELECT * FROM tcSsg|]}|d‘qS)rr
rr
r
rrGszKRegressionTests.CheckConvertTimestampMicrosecondPadding.<locals>.<listcomp>iÜrqééri@õi@âN)rrr:rrrhr&r;)r	rrÚvaluesr
r
rÚ'CheckConvertTimestampMicrosecondPadding4s



þz7RegressionTests.CheckConvertTimestampMicrosecondPaddingcCs|jttjddddS)Nré{rS)rErPrrrr
r
rÚCheckInvalidIsolationLevelTypeNs
ÿz.RegressionTests.CheckInvalidIsolationLevelTypecCsRt d¡}| t|d¡| t|d¡| ¡}| t|jd¡| t|jd¡dS)Nrz	select 1z	select 1z
 select 2z	select 2)rrrEr`rrrr
r
rÚCheckNullCharacterTs
z"RegressionTests.CheckNullCharacterc
CsÔt d¡}| d¡| |jd¡d}t| d¡ƒD]Œ\}}|j||dp| d|f¡| ¡|dkr|| |dd¡n2|dkr–| |dd¡n|d	kr®| |dd	¡|d7}W5QRXq4| |d
d¡dS)
zÉ
        Connection.commit() did reset cursors, which made sqlite3
        to return rows multiple times when fetched from cursors
        after commit. See issues 10513 and 23129 for details.
        rz£
        create table t(c);
        create table t2(c);
        insert into t values(0);
        insert into t values(1);
        insert into t values(2);
        r7rzselect c from t)r$rtzinsert into t2(c) values (?)rYr.r-z'should have returned exactly three rowsN)	rrZ
executescriptr&rTÚ	enumeraterr]r/)r	rZcounterr$rtr
r
rÚCheckCommitCursorReset]s 

z&RegressionTests.CheckCommitCursorResetcCsBdd„}t d¡}t |¡}t ||¡}| |¡~~t ¡dS)zm
        The interpreter shouldn't crash in case Cursor.__init__() is called
        more than once.
        cWsdSr
r
)Úargsr
r
rÚcallbacksz/RegressionTests.CheckBpo31770.<locals>.callbackrN)rrrfÚweakrefÚrefrdrÚ
gc_collect)r	rŠrrrŒr
r
rÚ
CheckBpo31770|s


zRegressionTests.CheckBpo31770c	Cs | t¡|j`W5QRXdSr
)rEÚAttributeErrorrrTrr
r
rÚCheckDelIsolation_levelSegfaultŒsz/RegressionTests.CheckDelIsolation_levelSegfaultcCsfGdd„dƒ}|jjtj|jjdd|jjfD]2}|ƒ}||jƒ||jƒ|j d¡|dƒq.dS)Nc@seZdZdd„ZdS)z.RegressionTests.CheckBpo37347.<locals>.PrintercWstjSr
)rZ	SQLITE_OK)r	r‰r
r
rÚlog’sz2RegressionTests.CheckBpo37347.<locals>.Printer.logN)rArBrCr‘r
r
r
rÚPrinter‘sr’rY)Únzselect 1)rZset_trace_callbackÚ	functoolsÚpartialZset_progress_handlerZset_authorizerr‘r)r	r’ÚmethodZprinter_instancer
r
rÚ
CheckBpo37347sþ

zRegressionTests.CheckBpo37347N)&rArBrCrrrrr%r(r,ÚunittestZskipIfrZsqlite_version_infor2r6r8r<rGrOrQrcrirkrorrrsrurwr{rrƒr…r†rˆrŽrr—r
r
r
rrs@

	
	
	rcCst td¡}t |f¡S)NZCheck)r˜Z	makeSuiterZ	TestSuite)Zregression_suiter
r
rÚsuite sÿr™cCst ¡}| tƒ¡dSr
)r˜ZTextTestRunnerÚrunr™)Zrunnerr
r
rÚtest¦sr›Ú__main__)r;r˜Zsqlite3rr‹r”r›rZTestCaserr™rAr
r
r
rÚ<module>s

Zerion Mini Shell 1.0