%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__/dbapi.cpython-38.pyc

U

p©ßaé‹ã@sìddlZddlZddlZddlmZmZGdd„dejƒZGdd„dejƒZ	Gdd„dejƒZ
Gd	d
„d
ejƒZGdd„dejƒZGd
d„dejƒZ
Gdd„dejƒZGdd„dejƒZGdd„dejƒZdd„Zdd„ZedkrèeƒdS)éN)ÚTESTFNÚunlinkc@steZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„ZdS)ÚModuleTestscCs| tjddtj¡dS)Nz2.0zapilevel is %s, should be 2.0)ÚassertEqualÚsqliteZapilevel©Úself©r	ú./usr/local/lib/python3.8/sqlite3/test/dbapi.pyÚ
CheckAPILevel s
ÿzModuleTests.CheckAPILevelcCs| tjddtj¡dS)Nézthreadsafety is %d, should be 1)rrZthreadsafetyrr	r	r
ÚCheckThreadSafety$s
ÿzModuleTests.CheckThreadSafetycCs| tjddtj¡dS)NZqmarkz%paramstyle is '%s', should be 'qmark')rrZ
paramstylerr	r	r
ÚCheckParamStyle(s

ÿÿzModuleTests.CheckParamStylecCs| ttjtƒd¡dS)Nz&Warning is not a subclass of Exception)Ú
assertTrueÚ
issubclassrÚWarningÚ	Exceptionrr	r	r
ÚCheckWarning-sÿzModuleTests.CheckWarningcCs| ttjtƒd¡dS)Nz$Error is not a subclass of Exception)rrrÚErrorrrr	r	r
Ú
CheckError1sÿzModuleTests.CheckErrorcCs| ttjtjƒd¡dS)Nz)InterfaceError is not a subclass of Error)rrrÚInterfaceErrorrrr	r	r
ÚCheckInterfaceError5sÿzModuleTests.CheckInterfaceErrorcCs| ttjtjƒd¡dS)Nz(DatabaseError is not a subclass of Error)rrrÚ
DatabaseErrorrrr	r	r
ÚCheckDatabaseError9sÿzModuleTests.CheckDatabaseErrorcCs| ttjtjƒd¡dS)Nz,DataError is not a subclass of DatabaseError)rrrÚ	DataErrorrrr	r	r
ÚCheckDataError=sÿzModuleTests.CheckDataErrorcCs| ttjtjƒd¡dS)Nz3OperationalError is not a subclass of DatabaseError)rrrÚOperationalErrorrrr	r	r
ÚCheckOperationalErrorAsÿz!ModuleTests.CheckOperationalErrorcCs| ttjtjƒd¡dS)Nz1IntegrityError is not a subclass of DatabaseError)rrrÚIntegrityErrorrrr	r	r
ÚCheckIntegrityErrorEsÿzModuleTests.CheckIntegrityErrorcCs| ttjtjƒd¡dS)Nz0InternalError is not a subclass of DatabaseError)rrrÚ
InternalErrorrrr	r	r
ÚCheckInternalErrorIsÿzModuleTests.CheckInternalErrorcCs| ttjtjƒd¡dS)Nz3ProgrammingError is not a subclass of DatabaseError)rrrÚProgrammingErrorrrr	r	r
ÚCheckProgrammingErrorMsÿz!ModuleTests.CheckProgrammingErrorcCs| ttjtjƒd¡dS)Nz4NotSupportedError is not a subclass of DatabaseError)rrrÚNotSupportedErrorrrr	r	r
ÚCheckNotSupportedErrorQs

ÿþz"ModuleTests.CheckNotSupportedErrorN)Ú__name__Ú
__module__Ú__qualname__rr
rrrrrrrrr!r#r%r	r	r	r
rsrc@s–eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Ze ejdkd¡dd „ƒZd!S)"ÚConnectionTestscCs0t d¡|_|j ¡}| d¡| dd¡dS)Nú:memory:z4create table test(id integer primary key, name text)ú!insert into test(name) values (?)©Úfoo)rÚconnectÚcxÚcursorÚexecute©rÚcur	r	r
ÚsetUpXs

zConnectionTests.setUpcCs|j ¡dS©N©r/Úcloserr	r	r
ÚtearDown^szConnectionTests.tearDowncCs|j ¡dSr5©r/Úcommitrr	r	r
ÚCheckCommitaszConnectionTests.CheckCommitcCs|j ¡|j ¡dS)zV
        A commit should also work when no changes were made to the database.
        Nr9rr	r	r
ÚCheckCommitAfterNoChangesds
z)ConnectionTests.CheckCommitAfterNoChangescCs|j ¡dSr5©r/Úrollbackrr	r	r
Ú
CheckRollbackkszConnectionTests.CheckRollbackcCs|j ¡|j ¡dS)zX
        A rollback should also work when no changes were made to the database.
        Nr=rr	r	r
ÚCheckRollbackAfterNoChangesns
z+ConnectionTests.CheckRollbackAfterNoChangescCs|j ¡}dSr5)r/r0r2r	r	r
ÚCheckCursoruszConnectionTests.CheckCursorc	Cs*d}| tj¡t |¡}W5QRXdS)Nz/foo/bar/bla/23534/mydb.db)ÚassertRaisesrrr.)rZYOU_CANNOT_OPEN_THISÚconr	r	r
ÚCheckFailedOpenxszConnectionTests.CheckFailedOpencCs|j ¡dSr5r6rr	r	r
Ú
CheckClose}szConnectionTests.CheckClosecCs¸| |jjtj¡| |jjtj¡| |jjtj¡| |jjtj¡| |jjtj¡| |jjtj¡| |jj	tj	¡| |jj
tj
¡| |jjtj¡| |jjtj¡dSr5)
rr/rrrrrrrrr r"r$rr	r	r
ÚCheckExceptions€szConnectionTests.CheckExceptionscCs´t d¡}| ¡}| |jd¡| d¡| |jd¡| dd¡| |jd¡| ddg¡| ¡}| |jd¡| ¡| |jd¡| ddg¡| ¡}| |jd¡dS)	Nr*Fz?create table transactiontest(id integer primary key, name text)z,insert into transactiontest(name) values (?)r,Tz-select name from transactiontest where name=?r-)rr.r0rÚin_transactionr1Úfetchoner:)rr/r3Úrowr	r	r
ÚCheckInTransactions

z"ConnectionTests.CheckInTransactionc	Cs"| t¡d|j_W5QRXdS)NT)rBÚAttributeErrorr/rGrr	r	r
ÚCheckInTransactionROŸsz$ConnectionTests.CheckInTransactionROc	CsD| tt¡Gdd„dƒ}|ƒ}t |¡}| d¡W5QRXdS)z| Checks that we can successfully connect to a database using an object that
            is PathLike, i.e. has __fspath__(). c@seZdZdd„ZdS)z9ConnectionTests.CheckOpenWithPathLikeObject.<locals>.PathcSstSr5)rrr	r	r
Ú
__fspath__¨szDConnectionTests.CheckOpenWithPathLikeObject.<locals>.Path.__fspath__N)r&r'r(rMr	r	r	r
ÚPath§srNúcreate table test(id integer)N)Ú
addCleanuprrrr.r1)rrNÚpathr/r	r	r
ÚCheckOpenWithPathLikeObject£s
z+ConnectionTests.CheckOpenWithPathLikeObjectc
CsÐtjdkr4| tj¡tjdddW5QRXdS| tt¡t t¡}| d¡W5QRXtjdtdd}| d¡W5QRXtjdtddd(}| tj	¡| d	¡W5QRXW5QRXdS)
N)éérTr*T)ZurirOzfile:zinsert into test(id) values(0)z?mode=rozinsert into test(id) values(1))
rÚsqlite_version_inforBr$r.rPrrr1r)rr/r	r	r
ÚCheckOpenUri®s
zConnectionTests.CheckOpenUri)rSrSrz&needs sqlite versions older than 3.3.1c	Cs<| tj¡}tjdddW5QRX| t|jƒd¡dS)Nr*F)Zcheck_same_threadz shared connections not available)rBrr$r.rÚstrÚ	exception©rÚcmr	r	r
Ú CheckSameThreadErrorOnOldVersion¼sz0ConnectionTests.CheckSameThreadErrorOnOldVersionN)r&r'r(r4r8r;r<r?r@rArDrErFrJrLrRrVÚunittestZskipIfrrUr[r	r	r	r
r)Vs$
ÿr)c@s¤eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#dCdD„Z$dEdF„Z%dGdH„Z&dIdJ„Z'dKdL„Z(dMdN„Z)dOdP„Z*dQdR„Z+dSdT„Z,dUdV„Z-dWdX„Z.dYdZ„Z/d[d\„Z0d]d^„Z1d_d`„Z2dadb„Z3dcdd„Z4dedf„Z5dgS)hÚCursorTestscCs6t d¡|_|j ¡|_|j d¡|j dd¡dS)Nr*z\create table test(id integer primary key, name text, income number, unique_test text unique)r+r,©rr.r/r0r3r1rr	r	r
r4ÄsÿzCursorTests.setUpcCs|j ¡|j ¡dSr5©r3r7r/rr	r	r
r8Ís
zCursorTests.tearDowncCs|j d¡dS)Núdelete from test©r3r1rr	r	r
ÚCheckExecuteNoArgsÑszCursorTests.CheckExecuteNoArgsc	Cs(| tj¡|j d¡W5QRXdS)Nzselect asdf)rBrrr3r1rr	r	r
ÚCheckExecuteIllegalSqlÔsz"CursorTests.CheckExecuteIllegalSqlc	Cs(| tj¡|j d¡W5QRXdS)Nzselect 5+4; select 4+5)rBrrr3r1rr	r	r
ÚCheckExecuteTooMuchSqlØsz"CursorTests.CheckExecuteTooMuchSqlcCs|j d¡dS)Nzselect 5+4; -- foo barrarr	r	r
ÚCheckExecuteTooMuchSql2Üsz#CursorTests.CheckExecuteTooMuchSql2cCs|j d¡dS)NzT
            select 5+4;

            /*
            foo
            */
            rarr	r	r
ÚCheckExecuteTooMuchSql3ßsz#CursorTests.CheckExecuteTooMuchSql3c	Cs&| t¡|j d¡W5QRXdS©Né*)rBÚ
ValueErrorr3r1rr	r	r
ÚCheckExecuteWrongSqlArgèsz#CursorTests.CheckExecuteWrongSqlArgcCs|j dd¡dS)Núinsert into test(id) values (?))rhrarr	r	r
ÚCheckExecuteArgIntìszCursorTests.CheckExecuteArgIntcCs|j dd¡dS)Nú#insert into test(income) values (?))gq=
×£ˆ£@rarr	r	r
ÚCheckExecuteArgFloatïsz CursorTests.CheckExecuteArgFloatcCs|j dd¡dS)Nr+)ZHugorarr	r	r
ÚCheckExecuteArgStringòsz!CursorTests.CheckExecuteArgStringcCs@|j dd¡|j d|jjf¡|j ¡}| |dd¡dS)Nr+)úHugoz select name from test where id=?rrp)r3r1Ú	lastrowidrHr©rrIr	r	r
Ú!CheckExecuteArgStringWithZeroByteõs
z-CursorTests.CheckExecuteArgStringWithZeroBytec	Cs:| t¡}|j dd¡W5QRX| t|jƒd¡dS)Nrkrhz"parameters are of unsupported type)rBrir3r1rrWrXrYr	r	r
ÚCheckExecuteNonIterableüsz#CursorTests.CheckExecuteNonIterablec	Cs*| tj¡|j dd¡W5QRXdS)Nrk)éZEgon©rBrr"r3r1rr	r	r
ÚCheckExecuteWrongNoOfArgs1sz&CursorTests.CheckExecuteWrongNoOfArgs1c	Cs(| tj¡|j d¡W5QRXdS©Nrkrvrr	r	r
ÚCheckExecuteWrongNoOfArgs2sz&CursorTests.CheckExecuteWrongNoOfArgs2c	Cs(| tj¡|j d¡W5QRXdSrxrvrr	r	r
ÚCheckExecuteWrongNoOfArgs3sz&CursorTests.CheckExecuteWrongNoOfArgs3cCs:|j d¡|j ddg¡|j ¡}| |dd¡dS)Nú%insert into test(name) values ('foo')ú"select name from test where name=?r-r©r3r1rHrrrr	r	r
ÚCheckExecuteParamLists
z!CursorTests.CheckExecuteParamListcCsHGdd„dƒ}|j d¡|j d|ƒ¡|j ¡}| |dd¡dS)Nc@seZdZdd„Zdd„ZdS)z0CursorTests.CheckExecuteParamSequence.<locals>.LcSsdS)Nrr	rr	r	r
Ú__len__sz8CursorTests.CheckExecuteParamSequence.<locals>.L.__len__cSs|dkst‚dS)Nrr-©ÚAssertionError©rÚxr	r	r
Ú__getitem__sz<CursorTests.CheckExecuteParamSequence.<locals>.L.__getitem__N©r&r'r(rr„r	r	r	r
ÚLsr†r{r|rr-r})rr†rIr	r	r
ÚCheckExecuteParamSequences

z%CursorTests.CheckExecuteParamSequencec	CsDGdd„dƒ}|j d¡| t¡|j d|ƒ¡W5QRXdS)Nc@seZdZdd„Zdd„ZdS)z6CursorTests.CheckExecuteParamSequenceBadLen.<locals>.LcSsdddS)Nrrr	rr	r	r
r&sz>CursorTests.CheckExecuteParamSequenceBadLen.<locals>.L.__len__cSst‚dSr5r€)Zslfrƒr	r	r
r„(szBCursorTests.CheckExecuteParamSequenceBadLen.<locals>.L.__getitem__Nr…r	r	r	r
r†%sr†r{r|)r3r1rBÚZeroDivisionError)rr†r	r	r
ÚCheckExecuteParamSequenceBadLen#sz+CursorTests.CheckExecuteParamSequenceBadLencCs<|j d¡|j dddi¡|j ¡}| |dd¡dS)Nr{ú&select name from test where name=:nameÚnamer-rr}rrr	r	r
ÚCheckExecuteDictMapping/s
z#CursorTests.CheckExecuteDictMappingcCsJGdd„dtƒ}|j d¡|j d|ƒ¡|j ¡}| |dd¡dS)Nc@seZdZdd„ZdS)z6CursorTests.CheckExecuteDictMapping_Mapping.<locals>.DcSsdS©Nr-r	)rÚkeyr	r	r
Ú__missing__7szBCursorTests.CheckExecuteDictMapping_Mapping.<locals>.D.__missing__N)r&r'r(rr	r	r	r
ÚD6srr{rŠrr-)Údictr3r1rHr)rrrIr	r	r
ÚCheckExecuteDictMapping_Mapping5s

z+CursorTests.CheckExecuteDictMapping_Mappingc	Cs:|j d¡| tj¡|j dddi¡W5QRXdS)Nr{z1select name from test where name=:name and id=:idr‹r-©r3r1rBrr"rr	r	r
Ú$CheckExecuteDictMappingTooLittleArgs?sz0CursorTests.CheckExecuteDictMappingTooLittleArgsc	Cs4|j d¡| tj¡|j d¡W5QRXdS)Nr{rŠr“rr	r	r
ÚCheckExecuteDictMappingNoArgsDsz)CursorTests.CheckExecuteDictMappingNoArgsc	Cs:|j d¡| tj¡|j dddi¡W5QRXdS)Nr{r|r‹r-r“rr	r	r
ÚCheckExecuteDictMappingUnnamedIsz*CursorTests.CheckExecuteDictMappingUnnamedcCs|j ¡dSr5)r3r7rr	r	r
rENszCursorTests.CheckClosecCsD|j d¡|j d¡|j d¡|j d¡| |jjd¡dS)Nr`r{zupdate test set name='bar'é©r3r1rÚrowcountrr	r	r
ÚCheckRowcountExecuteQs
z CursorTests.CheckRowcountExecutecCs |j d¡| |jjd¡dS)zÁ
        pysqlite does not know the rowcount of SELECT statements, because we
        don't fetch all rows after executing the select statement. The rowcount
        has thus to be -1.
        zselect 5 union select 6éÿÿÿÿNr˜rr	r	r
ÚCheckRowcountSelectXszCursorTests.CheckRowcountSelectcCs4|j d¡|j ddddg¡| |jjd¡dS)Nr`r+)r)r—©rSrS)r3r1Úexecutemanyrr™rr	r	r
ÚCheckRowcountExecutemanyasz$CursorTests.CheckRowcountExecutemanycCs0|j d¡|j d¡|jd|jjdddS)Nr{r—z"total changes reported wrong value)Úmsg)r3r1Z
assertLessr/Z
total_changesrr	r	r
ÚCheckTotalChangesfszCursorTests.CheckTotalChangescCs"|j ddd„tddƒDƒ¡dS)NrmcSsg|]
}|f‘qSr	r	)Ú.0rƒr	r	r
Ú
<listcomp>psz8CursorTests.CheckExecuteManySequence.<locals>.<listcomp>édén)r3ržÚrangerr	r	r
ÚCheckExecuteManySequenceosz$CursorTests.CheckExecuteManySequencecCs"Gdd„dƒ}|j d|ƒ¡dS)Nc@seZdZdd„Zdd„ZdS)z4CursorTests.CheckExecuteManyIterator.<locals>.MyItercSs
d|_dS©Né)Úvaluerr	r	r
Ú__init__tsz=CursorTests.CheckExecuteManyIterator.<locals>.MyIter.__init__cSs*|jdkrt‚n|jd7_|jfSdS)Né
r)rªÚ
StopIterationrr	r	r
Ú__next__ws
z=CursorTests.CheckExecuteManyIterator.<locals>.MyIter.__next__N)r&r'r(r«r®r	r	r	r
ÚMyIterssr¯rm©r3rž)rr¯r	r	r
ÚCheckExecuteManyIteratorrsz$CursorTests.CheckExecuteManyIteratorcCsdd„}|j d|ƒ¡dS)NcsstdƒD]}|fVqdSr¨)r¦)Úir	r	r
Úmygensz4CursorTests.CheckExecuteManyGenerator.<locals>.mygenrmr°)rr³r	r	r
ÚCheckExecuteManyGenerator€sz%CursorTests.CheckExecuteManyGeneratorc	Cs*| t¡|j ddg¡W5QRXdS)Nrhr)rBrir3ržrr	r	r
ÚCheckExecuteManyWrongSqlArg‡sz'CursorTests.CheckExecuteManyWrongSqlArgc	Cs,| tj¡|j ddg¡W5QRXdS)Nzselect ?r)rBrr"r3ržrr	r	r
ÚCheckExecuteManySelect‹sz"CursorTests.CheckExecuteManySelectc	Cs(| t¡|j dd¡W5QRXdS)Nrmrh)rBÚ	TypeErrorr3ržrr	r	r
ÚCheckExecuteManyNotIterablesz'CursorTests.CheckExecuteManyNotIterablecCsv|j d¡|j dd¡|j dd¡|j d¡g}|jD]}| |d¡q>| |dd¡| |dd	¡dS)
Nr`rk)r©)ézselect id from test order by idrr©rr¹)r3r1Úappendr)rZlstrIr	r	r
ÚCheckFetchIter“s
zCursorTests.CheckFetchItercCs@|j d¡|j ¡}| |dd¡|j ¡}| |d¡dS)Núselect name from testrr-r}rrr	r	r
Ú
CheckFetchoneŸs


zCursorTests.CheckFetchonecCs"|j ¡}| ¡}| |d¡dSr5)r/r0rHr)rÚcurrIr	r	r
ÚCheckFetchoneNoStatement¦s
z$CursorTests.CheckFetchoneNoStatementcCsr| |jjd¡d|j_|j d¡|j d¡|j d¡|j d¡|j d¡|j ¡}| t|ƒd¡dS)Nrr—r`z#insert into test(name) values ('A')z#insert into test(name) values ('B')z#insert into test(name) values ('C')r¼)rr3Z	arraysizer1Ú	fetchmanyÚlen©rÚresr	r	r
ÚCheckArraySize«s
zCursorTests.CheckArraySizecCsD|j d¡|j d¡}| t|ƒd¡|j d¡}| |g¡dS)Nr¼r¤r©r3r1rÀrrÁrÂr	r	r
ÚCheckFetchmany¼s
zCursorTests.CheckFetchmanycCs.|j d¡|jjdd}| t|ƒd¡dS)z0Checks if fetchmany works with keyword argumentsr¼r¤)ÚsizerNrÅrÂr	r	r
ÚCheckFetchmanyKwArgÃszCursorTests.CheckFetchmanyKwArgcCs@|j d¡|j ¡}| t|ƒd¡|j ¡}| |g¡dS)Nr¼r)r3r1ÚfetchallrrÁrÂr	r	r
Ú
CheckFetchallÉs


zCursorTests.CheckFetchallcCs|j dddg¡dS)NrSér©)r3Z
setinputsizesrr	r	r
ÚCheckSetinputsizesÐszCursorTests.CheckSetinputsizescCs|j dd¡dS)Nr©r©r3Z
setoutputsizerr	r	r
ÚCheckSetoutputsizeÓszCursorTests.CheckSetoutputsizecCs|j d¡dSrgrÍrr	r	r
ÚCheckSetoutputsizeNoColumnÖsz&CursorTests.CheckSetoutputsizeNoColumncCs| |jj|j¡dSr5)rr3Ú
connectionr/rr	r	r
ÚCheckCursorConnectionÙsz!CursorTests.CheckCursorConnectionc	Cs.| t¡dd„}|j |¡}W5QRXdS)NcSsdSr5r	r	r	r	r
Úfßóz/CursorTests.CheckWrongCursorCallable.<locals>.f)rBr·r/r0)rrÒr¾r	r	r
ÚCheckWrongCursorCallableÝsz$CursorTests.CheckWrongCursorCallablec	Cs8Gdd„dƒ}|ƒ}| t¡t |¡}W5QRXdS)Nc@seZdZdS)z.CursorTests.CheckCursorWrongClass.<locals>.FooN)r&r'r(r	r	r	r
ÚFooãsrÕ)rBr·rZCursor)rrÕr-r¾r	r	r
ÚCheckCursorWrongClassâsz!CursorTests.CheckCursorWrongClassc
CsNd}dD]@}|j|d*|j | |¡d¡| |jjd¡W5QRXqdS)zV
        INSERT OR REPLACE and REPLACE INTO should produce the same behavior.
        z+{} INTO test(id, unique_test) VALUES (?, ?))zINSERT OR REPLACEZREPLACE©Ú	statement)rr-rN)ÚsubTestr3r1Úformatrrq)rÚsqlrØr	r	r
ÚCheckLastRowIDOnReplaceès
z#CursorTests.CheckLastRowIDOnReplacecCs@|j dd¡| |jjd¡|j dd¡| |jjd¡dS)Nz2insert or ignore into test(unique_test) values (?))Útestr—)r3r1rrqrr	r	r
ÚCheckLastRowIDOnIgnoreòsþþz"CursorTests.CheckLastRowIDOnIgnorecCs¸g}dD]Ž}d}|jd |¡dn|j | |¡|f¡| ||jjf¡| tj¡|j | |¡|f¡W5QRX| ||jjf¡W5QRXqddddddg}| 	||¡dS)N)ÚFAILÚABORTÚROLLBACKz.INSERT OR {} INTO test(unique_test) VALUES (?)zINSERT OR {}r×)rßr—)ràrS)rárË)
rÙrÚr3r1rºrqrBrrr)rÚresultsrØrÛZexpectedr	r	r
ÚCheckLastRowIDInsertORüs" ýz"CursorTests.CheckLastRowIDInsertORN)6r&r'r(r4r8rbrcrdrerfrjrlrnrorsrtrwryrzr~r‡r‰rŒr’r”r•r–rEršrœrŸr¡r§r±r´rµr¶r¸r»r½r¿rÄrÆrÈrÊrÌrÎrÏrÑrÔrÖrÜrÞrãr	r	r	r
r]Ãsf		

		

r]c@s\eZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„Zdd„ZdS)ÚThreadTestscCs(t d¡|_|j ¡|_|j d¡dS)Nr*z\create table test(id integer primary key, name text, bin binary, ratio number, ts timestamp))rr.rCr0r¾r1rr	r	r
r4szThreadTests.setUpcCs|j ¡|j ¡dSr5)r¾r7rCrr	r	r
r8s
zThreadTests.tearDowncCsRdd„}g}tj||j|dœd}| ¡| ¡t|ƒdkrN| d |¡¡dS)NcSsJz| ¡}| d¡WdStjk
r0YdS| d¡YnXdS©Núdid not raise ProgrammingErrorúraised wrong exception)r0rºrr")rCÚerrorsr¾r	r	r
Úruns
z'ThreadTests.CheckConCursor.<locals>.run©rCrè©ÚtargetÚkwargsrÚ
©Ú	threadingÚThreadrCÚstartÚjoinrÁÚfail©rrérèÚtr	r	r
ÚCheckConCursors
zThreadTests.CheckConCursorcCsRdd„}g}tj||j|dœd}| ¡| ¡t|ƒdkrN| d |¡¡dS)NcSsJz| ¡| d¡WdStjk
r0YdS| d¡YnXdSrå)r:rºrr"rêr	r	r
ré+s
z'ThreadTests.CheckConCommit.<locals>.runrêrërrîrïrõr	r	r
ÚCheckConCommit*s
zThreadTests.CheckConCommitcCsRdd„}g}tj||j|dœd}| ¡| ¡t|ƒdkrN| d |¡¡dS)NcSsJz| ¡| d¡WdStjk
r0YdS| d¡YnXdSrå)r>rºrr"rêr	r	r
ré=s
z)ThreadTests.CheckConRollback.<locals>.runrêrërrîrïrõr	r	r
ÚCheckConRollback<s
zThreadTests.CheckConRollbackcCsRdd„}g}tj||j|dœd}| ¡| ¡t|ƒdkrN| d |¡¡dS)NcSsJz| ¡| d¡WdStjk
r0YdS| d¡YnXdSrå©r7rºrr"rêr	r	r
réOs
z&ThreadTests.CheckConClose.<locals>.runrêrërrîrïrõr	r	r
Ú
CheckConCloseNs
zThreadTests.CheckConClosecCsRdd„}g}tj||j|dœd}| ¡| ¡t|ƒdkrN| d |¡¡dS)NcSsLz| d¡| d¡WdStjk
r2YdS| d¡YnXdS)Nú#insert into test(name) values ('a')rærç©r1rºrr"©r¾rèr	r	r
réas

z.ThreadTests.CheckCurImplicitBegin.<locals>.runrþrërrî©rðrñr¾ròrórÁrôrõr	r	r
ÚCheckCurImplicitBegin`s
z!ThreadTests.CheckCurImplicitBegincCsRdd„}g}tj||j|dœd}| ¡| ¡t|ƒdkrN| d |¡¡dS)NcSsJz| ¡| d¡WdStjk
r0YdS| d¡YnXdSrårúrþr	r	r
réss
z&ThreadTests.CheckCurClose.<locals>.runrþrërrîrÿrõr	r	r
Ú
CheckCurClosers
zThreadTests.CheckCurClosecCs^dd„}g}|j d¡tj||j|dœd}| ¡| ¡t|ƒdkrZ| d |¡¡dS)NcSsLz| d¡| d¡WdStjk
r2YdS| d¡YnXdS)Nr¼rærçrýrþr	r	r
ré…s

z(ThreadTests.CheckCurExecute.<locals>.runrürþrërrî©r¾r1rðrñròrórÁrôrõr	r	r
ÚCheckCurExecute„s
zThreadTests.CheckCurExecutecCsjdd„}g}|j d¡|j d¡tj||j|dœd}| ¡| ¡t|ƒdkrf| d |¡¡dS)	NcSsJz| ¡}| d¡WdStjk
r0YdS| d¡YnXdSrå)rHrºrr")r¾rèrIr	r	r
ré˜s
z)ThreadTests.CheckCurIterNext.<locals>.runrür¼rþrërrîrrõr	r	r
ÚCheckCurIterNext—s
zThreadTests.CheckCurIterNextN)
r&r'r(r4r8r÷rørùrûrrrrr	r	r	r
räsräc@sDeZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dS)ÚConstructorTestscCst ddd¡}dS)NéÔr¬é)rZDate©rÚdr	r	r
Ú	CheckDate¬szConstructorTests.CheckDatecCst ddd¡}dS)Néé'é#)rZTime©rrör	r	r
Ú	CheckTime¯szConstructorTests.CheckTimecCst dddddd¡}dS)Nrr¬rrrr
)rZ	Timestamp©rÚtsr	r	r
ÚCheckTimestamp²szConstructorTests.CheckTimestampcCst d¡}dSrg)rZ
DateFromTicksrr	r	r
ÚCheckDateFromTicksµsz#ConstructorTests.CheckDateFromTickscCst d¡}dSrg)rZ
TimeFromTicksrr	r	r
ÚCheckTimeFromTicks¸sz#ConstructorTests.CheckTimeFromTickscCst d¡}dSrg)rZTimestampFromTicksrr	r	r
ÚCheckTimestampFromTicks»sz(ConstructorTests.CheckTimestampFromTickscCst d¡}dS)Ns')rZBinary)rÚbr	r	r
ÚCheckBinary¾szConstructorTests.CheckBinaryN)
r&r'r(r
rrrrrrr	r	r	r
r«src@sDeZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dS)ÚExtensionTestscCsBt d¡}| ¡}| d¡| d¡| ¡d}| |d¡dS)Nr*z
            -- bla bla
            /* a stupid comment */
            create table a(i);
            insert into a(i) values (5);
            zselect i from arr©)rr.r0Ú
executescriptr1rHr)rrCr¾rÃr	r	r
ÚCheckScriptStringSqlÂs


z#ExtensionTests.CheckScriptStringSqlc	Cs8t d¡}| ¡}| tj¡| d¡W5QRXdS)Nr*z1create table test(x); asdf; create table test2(x)©rr.r0rBrr©rrCr¾r	r	r
ÚCheckScriptSyntaxErrorÏs
z%ExtensionTests.CheckScriptSyntaxErrorc	Cs8t d¡}| ¡}| tj¡| d¡W5QRXdS)Nr*z5create table test(sadfsadfdsa); select foo from hurz;rrr	r	r
ÚCheckScriptErrorNormalÕs
z%ExtensionTests.CheckScriptErrorNormalc	CsHt d¡}| ¡}| t¡}| d¡W5QRX| t|jƒd¡dS)Nr*s9create table test(foo); insert into test(foo) values (5);z script argument must be unicode.)	rr.r0rBrirrrWrX)rrCr¾rZr	r	r
ÚCheckCursorExecutescriptAsBytesÛs

z.ExtensionTests.CheckCursorExecutescriptAsBytescCs.t d¡}| d¡ ¡d}| |dd¡dS)Nr*zselect 5rr©z Basic test of Connection.execute)rr.r1rHr©rrCÚresultr	r	r
ÚCheckConnectionExecuteâs
z%ExtensionTests.CheckConnectionExecutecCsbt d¡}| d¡| dddg¡| d¡ ¡}| |dddd	¡| |d
ddd	¡dS)Nr*zcreate table test(foo)z insert into test(foo) values (?)r©rËz!select foo from test order by foorrSz$Basic test of Connection.executemanyrrË)rr.r1ržrÉrr r	r	r
ÚCheckConnectionExecutemanyçs

z)ExtensionTests.CheckConnectionExecutemanycCs8t d¡}| d¡| d¡ ¡d}| |dd¡dS)Nr*z9create table test(foo); insert into test(foo) values (5);zselect foo from testrr©z&Basic test of Connection.executescript)rr.rr1rHrr r	r	r
ÚCheckConnectionExecutescriptïs

z+ExtensionTests.CheckConnectionExecutescriptN)
r&r'r(rrrrr"r$r%r	r	r	r
rÁs
rc@sTeZdZdd„Zdd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Z	dd„Z
dd„ZdS)ÚClosedConTestsc	Cs6t d¡}| ¡| tj¡| ¡}W5QRXdS©Nr*)rr.r7rBr"r0rr	r	r
ÚCheckClosedConCursorös
z#ClosedConTests.CheckClosedConCursorc	Cs6t d¡}| ¡| tj¡| ¡W5QRXdSr')rr.r7rBr"r:©rrCr	r	r
ÚCheckClosedConCommitüs
z#ClosedConTests.CheckClosedConCommitc	Cs6t d¡}| ¡| tj¡| ¡W5QRXdSr')rr.r7rBr"r>r)r	r	r
ÚCheckClosedConRollbacks
z%ClosedConTests.CheckClosedConRollbackc	Cs@t d¡}| ¡}| ¡| tj¡| d¡W5QRXdS)Nr*zselect 4)rr.r0r7rBr"r1rr	r	r
ÚCheckClosedCurExecutes

z$ClosedConTests.CheckClosedCurExecutec	CsDt d¡}| ¡dd„}| tj¡| dd|¡W5QRXdS)Nr*cSsdS©Nrur	)rƒr	r	r
rÒrÓz3ClosedConTests.CheckClosedCreateFunction.<locals>.fr-r)rr.r7rBr"Zcreate_function)rrCrÒr	r	r
ÚCheckClosedCreateFunctions

z(ClosedConTests.CheckClosedCreateFunctionc	CsJt d¡}| ¡Gdd„dƒ}| tj¡| dd|¡W5QRXdS)Nr*c@s$eZdZdd„Zdd„Zdd„ZdS)z6ClosedConTests.CheckClosedCreateAggregate.<locals>.AggcSsdSr5r	rr	r	r
r«sz?ClosedConTests.CheckClosedCreateAggregate.<locals>.Agg.__init__cSsdSr5r	r‚r	r	r
Ústepsz;ClosedConTests.CheckClosedCreateAggregate.<locals>.Agg.stepcSsdSr-r	rr	r	r
Úfinalizesz?ClosedConTests.CheckClosedCreateAggregate.<locals>.Agg.finalizeN)r&r'r(r«r/r0r	r	r	r
ÚAggsr1r-r)rr.r7rBr"Zcreate_aggregate)rrCr1r	r	r
ÚCheckClosedCreateAggregates

z)ClosedConTests.CheckClosedCreateAggregatec	Cs@t d¡}| ¡dd„}| tj¡| |¡W5QRXdS)Nr*cWstjSr5)rZDENY)Úargsr	r	r
Ú
authorizer&sz;ClosedConTests.CheckClosedSetAuthorizer.<locals>.authorizer)rr.r7rBr"Zset_authorizer)rrCr4r	r	r
ÚCheckClosedSetAuthorizer#s

z'ClosedConTests.CheckClosedSetAuthorizerc	CsBt d¡}| ¡dd„}| tj¡| |d¡W5QRXdS)Nr*cSsdSr5r	r	r	r	r
Úprogress.rÓz?ClosedConTests.CheckClosedSetProgressCallback.<locals>.progressr¤)rr.r7rBr"Zset_progress_handler)rrCr6r	r	r
ÚCheckClosedSetProgressCallback+s

z-ClosedConTests.CheckClosedSetProgressCallbackc	Cs4t d¡}| ¡| tj¡|ƒW5QRXdSr')rr.r7rBr"r)r	r	r
ÚCheckClosedCall2s
zClosedConTests.CheckClosedCallN)r&r'r(r(r*r+r,r.r2r5r7r8r	r	r	r
r&õs
r&c@seZdZdd„ZdS)ÚClosedCurTestsc
Cszt d¡}| ¡}| ¡dD]V}|dkr0d}n|dkrFdddgf}ng}| tj¡t||ƒ}||ŽW5QRXqdS)	Nr*)r1ržrrÉrÀrH)r1r)zselect 4 union select 5ržzinsert into foo(bar) values (?)rr#)rr.r0r7rBr"Úgetattr)rrCr¾Zmethod_nameÚparamsÚmethodr	r	r
ÚCheckClosed9s

zClosedCurTests.CheckClosedN)r&r'r(r=r	r	r	r
r98sr9c@sXeZdZdZdd„Zdd„Zdd„Zdd	„Zd
d„Zdd
„Z	dd„Z
dd„Zdd„ZdS)ÚSqliteOnConflictTestszz
    Tests for SQLite's "insert on conflict" feature.

    See https://www.sqlite.org/lang_conflict.html for details.
    cCs(t d¡|_|j ¡|_|j d¡dS)Nr*zz
          CREATE TABLE test(
            id INTEGER PRIMARY KEY, name TEXT, unique_name TEXT UNIQUE
          );
        r^rr	r	r
r4RszSqliteOnConflictTests.setUpcCs|j ¡|j ¡dSr5r_rr	r	r
r8[s
zSqliteOnConflictTests.tearDownc	Csˆd|j_|j ¡|_|j d¡|j d¡|j d¡| tj¡|j d¡W5QRX|j ¡|j d¡| 	|j 
¡g¡dS)NÚBEGINú,INSERT INTO test(name) VALUES ('abort_test')ú8INSERT OR ROLLBACK INTO test(unique_name) VALUES ('foo')z"SELECT name, unique_name from test©r/Zisolation_levelr0r3r1rBrrr:rrÉrr	r	r
Ú.CheckOnConflictRollbackWithExplicitTransaction_s
zDSqliteOnConflictTests.CheckOnConflictRollbackWithExplicitTransactionc	CsŒd|j_|j ¡|_|j d¡|j d¡|j d¡| tj¡|j d¡W5QRX|j ¡|j d¡| 	|j 
¡ddg¡dS)Nr?r@ú5INSERT OR ABORT INTO test(unique_name) VALUES ('foo')ú"SELECT name, unique_name FROM test©Z
abort_testNrrBrr	r	r
Ú2CheckOnConflictAbortRaisesWithExplicitTransactionsns
zHSqliteOnConflictTests.CheckOnConflictAbortRaisesWithExplicitTransactionsc	Cs^|j d¡|j d¡| tj¡|j d¡W5QRX|j d¡| |j ¡g¡dS)Nr@rArE©r3r1rBrrrrÉrr	r	r
Ú)CheckOnConflictRollbackWithoutTransaction~sz?SqliteOnConflictTests.CheckOnConflictRollbackWithoutTransactionc	Csb|j d¡|j d¡| tj¡|j d¡W5QRX|j d¡| |j ¡ddg¡dS)Nr@rDrErFrrHrr	r	r
Ú-CheckOnConflictAbortRaisesWithoutTransactionsˆszCSqliteOnConflictTests.CheckOnConflictAbortRaisesWithoutTransactionsc	CsF|j d¡| tj¡|j d¡W5QRX| |j ¡g¡dS)Nz4INSERT OR FAIL INTO test(unique_name) VALUES ('foo')rHrr	r	r
ÚCheckOnConflictFail“sz)SqliteOnConflictTests.CheckOnConflictFailcCs<|j d¡|j d¡|j d¡| |j ¡dg¡dS)Nz6INSERT OR IGNORE INTO test(unique_name) VALUES ('foo')zSELECT unique_name FROM testr,©r3r1rrÉrr	r	r
ÚCheckOnConflictIgnore™sz+SqliteOnConflictTests.CheckOnConflictIgnorecCs<|j d¡|j d¡|j d¡| |j ¡dg¡dS)NzFINSERT OR REPLACE INTO test(name, unique_name) VALUES ('Data!', 'foo')zUINSERT OR REPLACE INTO test(name, unique_name) VALUES ('Very different data!', 'foo')rE)zVery different data!r-rLrr	r	r
ÚCheckOnConflictReplace sz,SqliteOnConflictTests.CheckOnConflictReplaceN)
r&r'r(Ú__doc__r4r8rCrGrIrJrKrMrNr	r	r	r
r>Ks	
r>c	Csˆt td¡}t td¡}t td¡}t td¡}t td¡}t td¡}t td¡}t t	d¡}t t
d¡}t |||||||||f	¡S)NZCheck)r\Z	makeSuiterr)r]rärrr&r9r>Z	TestSuite)	Zmodule_suiteZconnection_suiteZcursor_suiteZthread_suiteZconstructor_suiteZ	ext_suiteZclosed_con_suiteZclosed_cur_suiteZon_conflict_suiter	r	r
Úsuite¨s(ýrPcCst ¡}| tƒ¡dSr5)r\ZTextTestRunnerrérP)Zrunnerr	r	r
rݸsrÝÚ__main__)rðr\Zsqlite3rZtest.supportrrZTestCaserr)r]rärrr&r9r>rPrÝr&r	r	r	r
Ú<module>s&7mM4C]

Zerion Mini Shell 1.0