Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/sqlite3/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/sqlite3/test/__pycache__/dbapi.cpython-34.pyo

�
e f�z�
@seddlZddlZyddlZWnek
rBdZYnXddlmZmZGdd�dej�Z	Gdd�dej�Z
Gdd�dej�Zejed	�Gd
d�dej��Z
Gdd
�d
ej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zdd�Zdd�Zedkrae�ndS)�N)�TESTFN�unlinkc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�ModuleTestscCs!|jtjddtj�dS)Nz2.0zapilevel is %s, should be 2.0)�assertEqual�sqliteZapilevel)�self�r�7/opt/alt/python34/lib64/python3.4/sqlite3/test/dbapi.py�
CheckAPILevel#szModuleTests.CheckAPILevelcCs!|jtjddtj�dS)N�zthreadsafety is %d, should be 1)rrZthreadsafety)rrrr	�CheckThreadSafety'szModuleTests.CheckThreadSafetycCs!|jtjddtj�dS)NZqmarkz%paramstyle is '%s', should be 'qmark')rrZ
paramstyle)rrrr	�CheckParamStyle+szModuleTests.CheckParamStylecCs |jttjt�d�dS)Nz&Warning is not a subclass of Exception)�
assertTrue�
issubclassr�Warning�	Exception)rrrr	�CheckWarning0szModuleTests.CheckWarningcCs |jttjt�d�dS)Nz$Error is not a subclass of Exception)rrr�Errorr)rrrr	�
CheckError4szModuleTests.CheckErrorcCs#|jttjtj�d�dS)Nz)InterfaceError is not a subclass of Error)rrr�InterfaceErrorr)rrrr	�CheckInterfaceError8szModuleTests.CheckInterfaceErrorcCs#|jttjtj�d�dS)Nz(DatabaseError is not a subclass of Error)rrr�
DatabaseErrorr)rrrr	�CheckDatabaseError<szModuleTests.CheckDatabaseErrorcCs#|jttjtj�d�dS)Nz,DataError is not a subclass of DatabaseError)rrr�	DataErrorr)rrrr	�CheckDataError@szModuleTests.CheckDataErrorcCs#|jttjtj�d�dS)Nz3OperationalError is not a subclass of DatabaseError)rrr�OperationalErrorr)rrrr	�CheckOperationalErrorDsz!ModuleTests.CheckOperationalErrorcCs#|jttjtj�d�dS)Nz1IntegrityError is not a subclass of DatabaseError)rrr�IntegrityErrorr)rrrr	�CheckIntegrityErrorHszModuleTests.CheckIntegrityErrorcCs#|jttjtj�d�dS)Nz0InternalError is not a subclass of DatabaseError)rrr�
InternalErrorr)rrrr	�CheckInternalErrorLszModuleTests.CheckInternalErrorcCs#|jttjtj�d�dS)Nz3ProgrammingError is not a subclass of DatabaseError)rrr�ProgrammingErrorr)rrrr	�CheckProgrammingErrorPsz!ModuleTests.CheckProgrammingErrorcCs#|jttjtj�d�dS)Nz4NotSupportedError is not a subclass of DatabaseError)rrr�NotSupportedErrorr)rrrr	�CheckNotSupportedErrorTs	z"ModuleTests.CheckNotSupportedErrorN)�__name__�
__module__�__qualname__r
rr
rrrrrrrr r"r$rrrr	r"src@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�ConnectionTestscCsBtjd�|_|jj�}|jd�|jdd�dS)Nz:memory:z4create table test(id integer primary key, name text)z!insert into test(name) values (?)�foo)zfoo)r�connect�cx�cursor�execute)r�currr	�setUp[s
zConnectionTests.setUpcCs|jj�dS)N)r+�close)rrrr	�tearDownaszConnectionTests.tearDowncCs|jj�dS)N)r+�commit)rrrr	�CheckCommitdszConnectionTests.CheckCommitcCs|jj�|jj�dS)zV
        A commit should also work when no changes were made to the database.
        N)r+r2)rrrr	�CheckCommitAfterNoChangesgs
z)ConnectionTests.CheckCommitAfterNoChangescCs|jj�dS)N)r+�rollback)rrrr	�
CheckRollbacknszConnectionTests.CheckRollbackcCs|jj�|jj�dS)zX
        A rollback should also work when no changes were made to the database.
        N)r+r5)rrrr	�CheckRollbackAfterNoChangesqs
z+ConnectionTests.CheckRollbackAfterNoChangescCs|jj�}dS)N)r+r,)rr.rrr	�CheckCursorxszConnectionTests.CheckCursorcCsFd}ytj|�}Wntjk
r4dSYnX|jd�dS)Nz/foo/bar/bla/23534/mydb.dbz&should have raised an OperationalError)rr*r�fail)rZYOU_CANNOT_OPEN_THIS�conrrr	�CheckFailedOpen{s	zConnectionTests.CheckFailedOpencCs|jj�dS)N)r+r0)rrrr	�
CheckClose�szConnectionTests.CheckClosecCs�|j|jjtj�|j|jjtj�|j|jjtj�|j|jjtj�|j|jjtj�|j|jjtj�|j|jj	tj	�|j|jj
tj
�|j|jjtj�|j|jjtj�dS)N)
rr+rrrrrrrrrr!r#)rrrr	�CheckExceptions�szConnectionTests.CheckExceptionscCs�tjd�}|j�}|j|jd�|jd�|j|jd�|jdd�|j|jd�|jddg�|j�}|j|jd�|j�|j|jd�|jddg�|j�}|j|jd�dS)	Nz:memory:Fz?create table transactiontest(id integer primary key, name text)z,insert into transactiontest(name) values (?)r)Tz-select name from transactiontest where name=?)zfoo)rr*r,r�in_transactionr-�fetchoner2)rr+r.�rowrrr	�CheckInTransaction�s

z"ConnectionTests.CheckInTransactionc	Cs&|jt��d|j_WdQXdS)NT)�assertRaises�AttributeErrorr+r>)rrrr	�CheckInTransactionRO�sz$ConnectionTests.CheckInTransactionROc"Cs�tjdkr?|jtj��tjddd�WdQXdS|jtt�tjt��}|jd�WdQXtjdtdd��}|jd�WdQXtjdtd	dd��-}|jtj	��|jd
�WdQXWdQXdS)N��z:memory:ZuriTzcreate table test(id integer)zfile:zinsert into test(id) values(0)z?mode=rozinsert into test(id) values(1))rErFrF)
rZsqlite_version_inforBr#r*Z
addCleanuprrr-r)rr+rrr	�CheckOpenUri�s zConnectionTests.CheckOpenUriN)r%r&r'r/r1r3r4r6r7r8r;r<r=rArDrGrrrr	r(Ys
r(c@s8eZdZdd�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]S)^�CursorTestscCsKtjd�|_|jj�|_|jjd�|jjdd�dS)Nz:memory:zCcreate table test(id integer primary key, name text, income number)z!insert into test(name) values (?)r))zfoo)rr*r+r,r.r-)rrrr	r/�szCursorTests.setUpcCs|jj�|jj�dS)N)r.r0r+)rrrr	r1�s
zCursorTests.tearDowncCs|jjd�dS)Nzdelete from test)r.r-)rrrr	�CheckExecuteNoArgs�szCursorTests.CheckExecuteNoArgscCsUy!|jjd�|jd�Wn-tjk
r<dSYn|jd�YnXdS)Nzselect asdfz&should have raised an OperationalErrorzraised wrong exception)r.r-r9rr)rrrr	�CheckExecuteIllegalSql�sz"CursorTests.CheckExecuteIllegalSqlcCsUy!|jjd�|jd�Wn-tjk
r<dSYn|jd�YnXdS)Nzselect 5+4; select 4+5zshould have raised a Warningzraised wrong exception)r.r-r9rr)rrrr	�CheckExecuteTooMuchSql�sz"CursorTests.CheckExecuteTooMuchSqlcCs|jjd�dS)Nzselect 5+4; -- foo bar)r.r-)rrrr	�CheckExecuteTooMuchSql2�sz#CursorTests.CheckExecuteTooMuchSql2cCs|jjd�dS)NzT
            select 5+4;

            /*
            foo
            */
            )r.r-)rrrr	�CheckExecuteTooMuchSql3�s	z#CursorTests.CheckExecuteTooMuchSql3cCsRy!|jjd�|jd�Wn*tk
r9dSYn|jd�YnXdS)N�*zshould have raised a ValueErrorzraised wrong exception.)r.r-r9�
ValueError)rrrr	�CheckExecuteWrongSqlArg�s
z#CursorTests.CheckExecuteWrongSqlArgcCs|jjdd�dS)Nzinsert into test(id) values (?)rN)rN)r.r-)rrrr	�CheckExecuteArgInt�szCursorTests.CheckExecuteArgIntcCs|jjdd�dS)Nz#insert into test(income) values (?)�q=
ף��@)rR)r.r-)rrrr	�CheckExecuteArgFloat�sz CursorTests.CheckExecuteArgFloatcCs|jjdd�dS)Nz!insert into test(name) values (?)�Hugo)rT)r.r-)rrrr	�CheckExecuteArgString�sz!CursorTests.CheckExecuteArgStringcCsV|jjdd�|jjd|jjf�|jj�}|j|dd�dS)Nz!insert into test(name) values (?)�Hugoz select name from test where id=?r)rV)r.r-Z	lastrowidr?r)rr@rrr	�!CheckExecuteArgStringWithZeroByte�sz-CursorTests.CheckExecuteArgStringWithZeroBytecCs@y$|jjdd�|jd�Wntjk
r;YnXdS)Nzinsert into test(id) values (?)��Egonz#should have raised ProgrammingError)rXrY)r.r-r9rr!)rrrr	�CheckExecuteWrongNoOfArgs1�s
z&CursorTests.CheckExecuteWrongNoOfArgs1cCs=y!|jjd�|jd�Wntjk
r8YnXdS)Nzinsert into test(id) values (?)z#should have raised ProgrammingError)r.r-r9rr!)rrrr	�CheckExecuteWrongNoOfArgs2s
z&CursorTests.CheckExecuteWrongNoOfArgs2cCs=y!|jjd�|jd�Wntjk
r8YnXdS)Nzinsert into test(id) values (?)z#should have raised ProgrammingError)r.r-r9rr!)rrrr	�CheckExecuteWrongNoOfArgs3
s
z&CursorTests.CheckExecuteWrongNoOfArgs3cCsM|jjd�|jjddg�|jj�}|j|dd�dS)Nz%insert into test(name) values ('foo')z"select name from test where name=?r)r)r.r-r?r)rr@rrr	�CheckExecuteParamListsz!CursorTests.CheckExecuteParamListcCscGdd�dt�}|jjd�|jjd|��|jj�}|j|dd�dS)Nc@s(eZdZdd�Zdd�ZdS)z0CursorTests.CheckExecuteParamSequence.<locals>.LcSsdS)Nrr)rrrr	�__len__sz8CursorTests.CheckExecuteParamSequence.<locals>.L.__len__cSsdS)Nr)r)r�xrrr	�__getitem__sz<CursorTests.CheckExecuteParamSequence.<locals>.L.__getitem__N)r%r&r'r^r`rrrr	�Lsraz%insert into test(name) values ('foo')z"select name from test where name=?rr))�objectr.r-r?r)rrar@rrr	�CheckExecuteParamSequences
z%CursorTests.CheckExecuteParamSequencecCsQ|jjd�|jjdidd6�|jj�}|j|dd�dS)Nz%insert into test(name) values ('foo')z&select name from test where name=:namer)�namer)r.r-r?r)rr@rrr	�CheckExecuteDictMapping(sz#CursorTests.CheckExecuteDictMappingcCscGdd�dt�}|jjd�|jjd|��|jj�}|j|dd�dS)Nc@seZdZdd�ZdS)z6CursorTests.CheckExecuteDictMapping_Mapping.<locals>.DcSsdS)Nr)r)r�keyrrr	�__missing__0szBCursorTests.CheckExecuteDictMapping_Mapping.<locals>.D.__missing__N)r%r&r'rgrrrr	�D/srhz%insert into test(name) values ('foo')z&select name from test where name=:namerr))�dictr.r-r?r)rrhr@rrr	�CheckExecuteDictMapping_Mapping.s
z+CursorTests.CheckExecuteDictMapping_MappingcCsW|jjd�y+|jjdidd6�|jd�Wntjk
rRYnXdS)Nz%insert into test(name) values ('foo')z1select name from test where name=:name and id=:idr)rdz#should have raised ProgrammingError)r.r-r9rr!)rrrr	�$CheckExecuteDictMappingTooLittleArgs8sz0CursorTests.CheckExecuteDictMappingTooLittleArgscCsM|jjd�y!|jjd�|jd�Wntjk
rHYnXdS)Nz%insert into test(name) values ('foo')z&select name from test where name=:namez#should have raised ProgrammingError)r.r-r9rr!)rrrr	�CheckExecuteDictMappingNoArgs@sz)CursorTests.CheckExecuteDictMappingNoArgscCsW|jjd�y+|jjdidd6�|jd�Wntjk
rRYnXdS)Nz%insert into test(name) values ('foo')z"select name from test where name=?r)rdz#should have raised ProgrammingError)r.r-r9rr!)rrrr	�CheckExecuteDictMappingUnnamedHsz*CursorTests.CheckExecuteDictMappingUnnamedcCs|jj�dS)N)r.r0)rrrr	r<PszCursorTests.CheckClosecCsZ|jjd�|jjd�|jjd�|jjd�|j|jjd�dS)Nzdelete from testz%insert into test(name) values ('foo')zupdate test set name='bar'�)r.r-r�rowcount)rrrr	�CheckRowcountExecuteSs
z CursorTests.CheckRowcountExecutecCs*|jjd�|j|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 6rN���)r.r-rro)rrrr	�CheckRowcountSelectZszCursorTests.CheckRowcountSelectcCsF|jjd�|jjddddg�|j|jjd�dS)	Nzdelete from testz!insert into test(name) values (?)rrnrE)r)rn)rE)r.r-�executemanyrro)rrrr	�CheckRowcountExecutemanycsz$CursorTests.CheckRowcountExecutemanycCsF|jjd�|jjd�|jjdkrB|jd�ndS)Nz%insert into test(name) values ('foo')rnz"total changes reported wrong value)r.r-r+Z
total_changesr9)rrrr	�CheckTotalChangeshszCursorTests.CheckTotalChangescCs-|jjddd�tdd�D��dS)Nz#insert into test(income) values (?)cSsg|]}|f�qSrr)�.0r_rrr	�
<listcomp>ss	z8CursorTests.CheckExecuteManySequence.<locals>.<listcomp>�d�n)r.rs�range)rrrr	�CheckExecuteManySequencersz$CursorTests.CheckExecuteManySequencecCs-Gdd�d�}|jjd|��dS)Nc@s(eZdZdd�Zdd�ZdS)z4CursorTests.CheckExecuteManyIterator.<locals>.MyItercSs
d|_dS)N�)�value)rrrr	�__init__wsz=CursorTests.CheckExecuteManyIterator.<locals>.MyIter.__init__cSs5|jdkrt�n|jd7_|jfSdS)N�
r)r}�
StopIteration)rrrr	�__next__zs	z=CursorTests.CheckExecuteManyIterator.<locals>.MyIter.__next__N)r%r&r'r~r�rrrr	�MyItervsr�z#insert into test(income) values (?))r.rs)rr�rrr	�CheckExecuteManyIteratorusz$CursorTests.CheckExecuteManyIteratorcCs&dd�}|jjd|��dS)Ncss#xtd�D]}|fVq
WdS)Nr|)rz)�irrr	�mygen�sz4CursorTests.CheckExecuteManyGenerator.<locals>.mygenz#insert into test(income) values (?))r.rs)rr�rrr	�CheckExecuteManyGenerator�sz%CursorTests.CheckExecuteManyGeneratorcCsXy'|jjddg�|jd�Wn*tk
r?dSYn|jd�YnXdS)NrNrEzshould have raised a ValueErrorzraised wrong exception.)rE)r.rsr9rO)rrrr	�CheckExecuteManyWrongSqlArg�s
z'CursorTests.CheckExecuteManyWrongSqlArgcCs[y'|jjddg�|jd�Wn-tjk
rBdSYn|jd�YnXdS)Nzselect ?rEz%should have raised a ProgrammingErrorzraised wrong exception.)rE)r.rsr9rr!)rrrr	�CheckExecuteManySelect�sz"CursorTests.CheckExecuteManySelectcCs�y$|jjdd�|jd�WnWtk
r<dSYnBtk
r}}z"td|j�|jd�WYdd}~XnXdS)Nz#insert into test(income) values (?)rNzshould have raised a TypeError�raisedzraised wrong exception.)r.rsr9�	TypeErrorr�print�	__class__)r�errr	�CheckExecuteManyNotIterable�s
z'CursorTests.CheckExecuteManyNotIterablecCs�|jjd�|jjdd�|jjdd	�|jjd�g}x"|jD]}|j|d�qVW|j|dd�|j|dd�dS)
Nzdelete from testzinsert into test(id) values (?)r|�zselect id from test order by idrr)r|)r�)r.r-�appendr)rZlstr@rrr	�CheckFetchIter�szCursorTests.CheckFetchItercCsV|jjd�|jj�}|j|dd�|jj�}|j|d�dS)Nzselect name from testrr))r.r-r?r)rr@rrr	�
CheckFetchone�s
zCursorTests.CheckFetchonecCs/|jj�}|j�}|j|d�dS)N)r+r,r?r)r�curr@rrr	�CheckFetchoneNoStatement�sz$CursorTests.CheckFetchoneNoStatementcCs�|j|jjd�d|j_|jjd�|jjd�|jjd�|jjd�|jjd�|jj�}|jt|�d�dS)Nrrnzdelete from testz#insert into test(name) values ('A')z#insert into test(name) values ('B')z#insert into test(name) values ('C')zselect name from test)rr.Z	arraysizer-�	fetchmany�len)r�resrrr	�CheckArraySize�szCursorTests.CheckArraySizecCs^|jjd�|jjd�}|jt|�d�|jjd�}|j|g�dS)Nzselect name from testrxr)r.r-r�rr�)rr�rrr	�CheckFetchmany�s
zCursorTests.CheckFetchmanycCs?|jjd�|jjdd�}|jt|�d�dS)z0Checks if fetchmany works with keyword argumentszselect name from test�sizerxrN)r.r-r�rr�)rr�rrr	�CheckFetchmanyKwArg�szCursorTests.CheckFetchmanyKwArgcCsX|jjd�|jj�}|jt|�d�|jj�}|j|g�dS)Nzselect name from testr)r.r-�fetchallrr�)rr�rrr	�
CheckFetchall�s
zCursorTests.CheckFetchallcCs|jjdddg�dS)NrE�r|)r.Z
setinputsizes)rrrr	�CheckSetinputsizes�szCursorTests.CheckSetinputsizescCs|jjdd�dS)Nr|r)r.�
setoutputsize)rrrr	�CheckSetoutputsize�szCursorTests.CheckSetoutputsizecCs|jjd�dS)NrN)r.r�)rrrr	�CheckSetoutputsizeNoColumn�sz&CursorTests.CheckSetoutputsizeNoColumncCs|j|jj|j�dS)N)rr.Z
connectionr+)rrrr	�CheckCursorConnection�sz!CursorTests.CheckCursorConnectioncCsYy/dd�}|jj|�}|jd�Wntk
rGdSYnX|jd�dS)NcSsdS)Nrrrrr	�f�sz/CursorTests.CheckWrongCursorCallable.<locals>.fzshould have raised a TypeErrorzshould have raised a ValueError)r+r,r9r�)rr�r�rrr	�CheckWrongCursorCallable�s
	z$CursorTests.CheckWrongCursorCallablecCsUGdd�d�}|�}y tj|�}|jd�Wntk
rPYnXdS)Nc@seZdZdS)z.CursorTests.CheckCursorWrongClass.<locals>.FooN)r%r&r'rrrr	�Foo�sr�zshould have raised a ValueError)rZCursorr9r�)rr�r)r�rrr	�CheckCursorWrongClass�s	
z!CursorTests.CheckCursorWrongClassN)1r%r&r'r/r1rIrJrKrLrMrPrQrSrUrWrZr[r\r]rcrerjrkrlrmr<rprrrtrur{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	rH�s\				

	
		
	rHzThis test requires threading.c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�ThreadTestscCs8tjd�|_|jj�|_|jjd�dS)Nz:memory:z\create table test(id integer primary key, name text, bin binary, ratio number, ts timestamp))rr*r:r,r�r-)rrrr	r/szThreadTests.setUpcCs|jj�|jj�dS)N)r�r0r:)rrrr	r1	s
zThreadTests.tearDowncCs~dd�}g}tjd|di|jd6|d6�}|j�|j�t|�dkrz|jdj|��ndS)	NcSsUy!|j�}|jd�dSWn-tjk
r<dSYn|jd�YnXdS)Nzdid not raise ProgrammingErrorzraised wrong exception)r,r�rr!)r:�errorsr�rrr	�runs
z'ThreadTests.CheckConCursor.<locals>.run�target�kwargsr:r�r�
)�	threading�Threadr:�start�joinr�r9)rr�r��trrr	�CheckConCursor
s
)

zThreadTests.CheckConCursorcCs~dd�}g}tjd|di|jd6|d6�}|j�|j�t|�dkrz|jdj|��ndS)	NcSsSy|j�|jd�dSWn-tjk
r:dSYn|jd�YnXdS)Nzdid not raise ProgrammingErrorzraised wrong exception)r2r�rr!)r:r�rrr	r� s

z'ThreadTests.CheckConCommit.<locals>.runr�r�r:r�rr�)r�r�r:r�r�r�r9)rr�r�r�rrr	�CheckConCommits
)

zThreadTests.CheckConCommitcCs~dd�}g}tjd|di|jd6|d6�}|j�|j�t|�dkrz|jdj|��ndS)	NcSsSy|j�|jd�dSWn-tjk
r:dSYn|jd�YnXdS)Nzdid not raise ProgrammingErrorzraised wrong exception)r5r�rr!)r:r�rrr	r�2s

z)ThreadTests.CheckConRollback.<locals>.runr�r�r:r�rr�)r�r�r:r�r�r�r9)rr�r�r�rrr	�CheckConRollback1s
)

zThreadTests.CheckConRollbackcCs~dd�}g}tjd|di|jd6|d6�}|j�|j�t|�dkrz|jdj|��ndS)	NcSsSy|j�|jd�dSWn-tjk
r:dSYn|jd�YnXdS)Nzdid not raise ProgrammingErrorzraised wrong exception)r0r�rr!)r:r�rrr	r�Ds

z&ThreadTests.CheckConClose.<locals>.runr�r�r:r�rr�)r�r�r:r�r�r�r9)rr�r�r�rrr	�
CheckConCloseCs
)

zThreadTests.CheckConClosecCs~dd�}g}tjd|di|jd6|d6�}|j�|j�t|�dkrz|jdj|��ndS)	NcSsVy"|jd�|jd�dSWn-tjk
r=dSYn|jd�YnXdS)Nz#insert into test(name) values ('a')zdid not raise ProgrammingErrorzraised wrong exception)r-r�rr!)r�r�rrr	r�Vs

z.ThreadTests.CheckCurImplicitBegin.<locals>.runr�r�r�r�rr�)r�r�r�r�r�r�r9)rr�r�r�rrr	�CheckCurImplicitBeginUs
)

z!ThreadTests.CheckCurImplicitBegincCs~dd�}g}tjd|di|jd6|d6�}|j�|j�t|�dkrz|jdj|��ndS)	NcSsSy|j�|jd�dSWn-tjk
r:dSYn|jd�YnXdS)Nzdid not raise ProgrammingErrorzraised wrong exception)r0r�rr!)r�r�rrr	r�hs

z&ThreadTests.CheckCurClose.<locals>.runr�r�r�r�rr�)r�r�r�r�r�r�r9)rr�r�r�rrr	�
CheckCurClosegs
)

zThreadTests.CheckCurClosecCs�dd�}g}|jjd�tjd|di|jd6|d6�}|j�|j�t|�dkr�|jd	j|��ndS)
NcSsVy"|jd�|jd�dSWn-tjk
r=dSYn|jd�YnXdS)Nzselect name from testzdid not raise ProgrammingErrorzraised wrong exception)r-r�rr!)r�r�rrr	r�zs

z(ThreadTests.CheckCurExecute.<locals>.runz#insert into test(name) values ('a')r�r�r�r�rr�)r�r-r�r�r�r�r�r9)rr�r�r�rrr	�CheckCurExecuteys
)

zThreadTests.CheckCurExecutecCs�dd�}g}|jjd�|jjd�tjd|di|jd6|d6�}|j�|j�t|�d	kr�|jd
j|��ndS)NcSsUy!|j�}|jd�dSWn-tjk
r<dSYn|jd�YnXdS)Nzdid not raise ProgrammingErrorzraised wrong exception)r?r�rr!)r�r�r@rrr	r��s
z)ThreadTests.CheckCurIterNext.<locals>.runz#insert into test(name) values ('a')zselect name from testr�r�r�r�rr�)r�r-r�r�r�r�r�r9)rr�r�r�rrr	�CheckCurIterNext�s
)

zThreadTests.CheckCurIterNextN)
r%r&r'r/r1r�r�r�r�r�r�r�r�rrrr	r�sr�c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�ConstructorTestscCstjddd�}dS)Ni�r�)rZDate)r�drrr	�	CheckDate�szConstructorTests.CheckDatecCstjddd�}dS)N��'�#)rZTime)rr�rrr	�	CheckTime�szConstructorTests.CheckTimecCs"tjdddddd�}dS)Ni�rr�r�r�r�)rZ	Timestamp)r�tsrrr	�CheckTimestamp�szConstructorTests.CheckTimestampcCstjd�}dS)NrN)rZ
DateFromTicks)rr�rrr	�CheckDateFromTicks�sz#ConstructorTests.CheckDateFromTickscCstjd�}dS)NrN)rZ
TimeFromTicks)rr�rrr	�CheckTimeFromTicks�sz#ConstructorTests.CheckTimeFromTickscCstjd�}dS)NrN)rZTimestampFromTicks)rr�rrr	�CheckTimestampFromTicks�sz(ConstructorTests.CheckTimestampFromTickscCstjd�}dS)Ns')rZBinary)r�brrr	�CheckBinary�szConstructorTests.CheckBinaryN)
r%r&r'r�r�r�r�r�r�r�rrrr	r��sr�c@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�ExtensionTestscCsYtjd�}|j�}|jd�|jd�|j�d}|j|d�dS)Nz:memory:z�
            -- bla bla
            /* a stupid comment */
            create table a(i);
            insert into a(i) values (5);
            zselect i from arr|)rr*r,�
executescriptr-r?r)rr:r�r�rrr	�CheckScriptStringSql�s
z#ExtensionTests.CheckScriptStringSqlcCsgtjd�}|j�}d}y|jd�Wntjk
rOd}YnX|j|dd�dS)Nz:memory:Fz1create table test(x); asdf; create table test2(x)Tzshould have raised an exception)rr*r,r�rr)rr:r�r�rrr	�CheckScriptSyntaxError�sz%ExtensionTests.CheckScriptSyntaxErrorcCsgtjd�}|j�}d}y|jd�Wntjk
rOd}YnX|j|dd�dS)Nz:memory:Fz5create table test(sadfsadfdsa); select foo from hurz;Tzshould have raised an exception)rr*r,r�rr)rr:r�r�rrr	�CheckScriptErrorNormal�sz%ExtensionTests.CheckScriptErrorNormalcCs?tjd�}|jd�j�d}|j|dd�dS)Nz:memory:zselect 5rr|z Basic test of Connection.execute)rr*r-r?r)rr:�resultrrr	�CheckConnectionExecute�sz%ExtensionTests.CheckConnectionExecutecCs�tjd�}|jd�|jdd
dg�|jd�j�}|j|dddd�|j|d	ddd�dS)Nz:memory:zcreate table test(foo)z insert into test(foo) values (?)rEr�z!select foo from test order by foorz$Basic test of Connection.executemanyr)rE)r�)rr*r-rsr�r)rr:r�rrr	�CheckConnectionExecutemany�s
z)ExtensionTests.CheckConnectionExecutemanycCsLtjd�}|jd�|jd�j�d}|j|dd�dS)Nz:memory:z9create table test(foo); insert into test(foo) values (5);zselect foo from testrr|z&Basic test of Connection.executescript)rr*r�r-r?r)rr:r�rrr	�CheckConnectionExecutescript�s
z+ExtensionTests.CheckConnectionExecutescriptN)	r%r&r'r�r�r�r�r�r�rrrr	r��s


r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�ClosedConTestscCsdS)Nr)rrrr	r/�szClosedConTests.setUpcCsdS)Nr)rrrr	r1�szClosedConTests.tearDowncCsftjd�}|j�y|j�}|jd�Wn)tjk
rMYn|jd�YnXdS)Nz:memory:z%Should have raised a ProgrammingError)rr*r0r,r9r!)rr:r�rrr	�CheckClosedConCursor�s
z#ClosedConTests.CheckClosedConCursorcCsdtjd�}|j�y|j�|jd�Wn)tjk
rKYn|jd�YnXdS)Nz:memory:z%Should have raised a ProgrammingError)rr*r0r2r9r!)rr:rrr	�CheckClosedConCommit�s

z#ClosedConTests.CheckClosedConCommitcCsdtjd�}|j�y|j�|jd�Wn)tjk
rKYn|jd�YnXdS)Nz:memory:z%Should have raised a ProgrammingError)rr*r0r5r9r!)rr:rrr	�CheckClosedConRollbacks

z%ClosedConTests.CheckClosedConRollbackcCsstjd�}|j�}|j�y|jd�|jd�Wn)tjk
rZYn|jd�YnXdS)Nz:memory:zselect 4z%Should have raised a ProgrammingError)rr*r,r0r-r9r!)rr:r�rrr	�CheckClosedCurExecutes

z$ClosedConTests.CheckClosedCurExecutecCsytjd�}|j�dd�}y$|jdd|�|jd�Wn)tjk
r`Yn|jd�YnXdS)Nz:memory:cSsdS)NrXr)r_rrr	r�"sz3ClosedConTests.CheckClosedCreateFunction.<locals>.fr)rz%Should have raised a ProgrammingError)rr*r0Zcreate_functionr9r!)rr:r�rrr	�CheckClosedCreateFunctions
z(ClosedConTests.CheckClosedCreateFunctioncCs�tjd�}|j�Gdd�d�}y$|jdd|�|jd�Wn)tjk
rgYn|jd�YnXdS)Nz:memory:c@s4eZdZdd�Zdd�Zdd�ZdS)z6ClosedConTests.CheckClosedCreateAggregate.<locals>.AggcSsdS)Nr)rrrr	r~/sz?ClosedConTests.CheckClosedCreateAggregate.<locals>.Agg.__init__cSsdS)Nr)rr_rrr	�step1sz;ClosedConTests.CheckClosedCreateAggregate.<locals>.Agg.stepcSsdS)NrXr)rrrr	�finalize3sz?ClosedConTests.CheckClosedCreateAggregate.<locals>.Agg.finalizeN)r%r&r'r~r�r�rrrr	�Agg.sr�r)rz%Should have raised a ProgrammingError)rr*r0Zcreate_aggregater9r!)rr:r�rrr	�CheckClosedCreateAggregate+s
z)ClosedConTests.CheckClosedCreateAggregatecCsstjd�}|j�dd�}y|j|�|jd�Wn)tjk
rZYn|jd�YnXdS)Nz:memory:cWstjS)N)rZDENY)�argsrrr	�
authorizer@sz;ClosedConTests.CheckClosedSetAuthorizer.<locals>.authorizerz%Should have raised a ProgrammingError)rr*r0Zset_authorizerr9r!)rr:r�rrr	�CheckClosedSetAuthorizer=s

z'ClosedConTests.CheckClosedSetAuthorizercCsvtjd�}|j�dd�}y!|j|d�|jd�Wn)tjk
r]Yn|jd�YnXdS)Nz:memory:cSsdS)Nrrrrr	�progressMsz?ClosedConTests.CheckClosedSetProgressCallback.<locals>.progressrxz%Should have raised a ProgrammingError)rr*r0Zset_progress_handlerr9r!)rr:r�rrr	�CheckClosedSetProgressCallbackJs
z-ClosedConTests.CheckClosedSetProgressCallbackcCsatjd�}|j�y|�|jd�Wn)tjk
rHYn|jd�YnXdS)Nz:memory:z%Should have raised a ProgrammingError)rr*r0r9r!)rr:rrr	�CheckClosedCallVs
zClosedConTests.CheckClosedCallN)r%r&r'r/r1r�r�r�r�r�r�r�r�r�rrrr	r��s
r�c@s4eZdZdd�Zdd�Zdd�ZdS)�ClosedCurTestscCsdS)Nr)rrrr	r/bszClosedCurTests.setUpcCsdS)Nr)rrrr	r1eszClosedCurTests.tearDowncCs�tjd�}|j�}|j�x�dD]�}|dkrGd}n'|dkrhd	ddgf}ng}y.t||�}||�|jd|�Wq,tjk
r�Yq,|jd
|�Yq,Xq,WdS)Nz:memory:r-rsr�r�r�r?�select 4 union select 5zinsert into foo(bar) values (?)rEr�z.Should have raised a ProgrammingError: method z'Should have raised a ProgrammingError: )�executezexecutemany�
executescriptzfetchallz	fetchmanyzfetchone)r�r�)r�)rE)r�)rr*r,r0�getattrr9r!)rr:r�Zmethod_nameZparams�methodrrr	�CheckClosedhs"

	
zClosedCurTests.CheckClosedN)r%r&r'r/r1r�rrrr	r�asr�c	Cs�tjtd�}tjtd�}tjtd�}tjtd�}tjtd�}tjtd�}tjtd�}tjt	d�}tj
||||||||f�S)NZCheck)�unittestZ	makeSuiterr(rHr�r�r�r�r�Z	TestSuite)Zmodule_suiteZconnection_suiteZcursor_suiteZthread_suiteZconstructor_suiteZ	ext_suiteZclosed_con_suiteZclosed_cur_suiterrr	�suitesr�cCs tj�}|jt��dS)N)r�ZTextTestRunnerr�r�)Zrunnerrrr	�test�sr��__main__)r�Zsqlite3rr��ImportErrorZtest.supportrrZTestCaserr(rHZ
skipUnlessr�r�r�r�r�r�r�r%rrrr	�<module>s(
7_�K�5v