Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/sqlite3/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/sqlite3/test/__pycache__/regression.cpython-38.pyc
U

?��g�C�@s�ddlZddlZddlZddlZddlZddlmZddlm	Z	Gdd�dej
�ZGdd�dej
�Zdd	�Z
d
d�Zedkr�e�dS)
�N)�support)�patchc@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�6/opt/cppython/lib/python3.8/sqlite3/test/regression.py�setUp#szRegressionTests.setUpcCs|j��dS�N)r�closer	rrr�tearDown&szRegressionTests.tearDowncCs|j��}|�d�dS)Nzpragma user_version)r�cursor�execute�r
�currrr�CheckPragmaUserVersion)s
z&RegressionTests.CheckPragmaUserVersioncCs@tjdtjd�}z|j��}|�d�W5|��|��XdS)Nr�Zdetect_typeszpragma schema_version)rr�PARSE_COLNAMESrrrr�r
rrrrr�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�rrr�
<listcomp>=sz7RegressionTests.CheckStatementReset.<locals>.<listcomp>rzcreate table test(x)�
�insert into test(x) values (?)cSsg|]
}|f�qSrrrrrrr@s� zselect x from test)rr�ranger�executemany�rollback)r
�cursors�irrr�CheckStatementReset8s 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�descriptionrrrr�CheckColumnNameWithSpacesGs



z)RegressionTests.CheckColumnNameWithSpacescCsLt�d�}g}td�D](}|��}|�|�|�dt|��q|��dS)Nr�izselect 1 x union select )rrr#r�appendr�strr)r
rr&r'rrrr�#CheckStatementFinalizationOnCloseDbOs

z3RegressionTests.CheckStatementFinalizationOnCloseDb)��r1zneeds 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
rrrr�CheckOnConflictRollback]s



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�rrr	rrr�-CheckWorkaroundForBuggySqliteTransferBindingslsz=RegressionTests.CheckWorkaroundForBuggySqliteTransferBindingscCs|j�d�dS)z
        pysqlite used to segfault with SQLite versions 3.5.x. These return NULL
        for "no-operation" statements
        �Nr8r	rrr�CheckEmptyStatementusz#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 (?)r7zcreate table foo(bar integer)�insert into foo(bar) values (5)N)rr�PARSE_DECLTYPESr�datetimeZnow)r
ZSELECTrrrr�CheckTypeMapUsage|s




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
parametersrr�__conform__�sz<RegressionTests.CheckBindMutatingList.<locals>.X.__conform__N)�__name__�
__module__�__qualname__rCrrBrr�X�srGrrrz$create table foo(bar X, baz integer)z'insert into foo(bar, baz) values (?, ?))rrr=r�assertRaises�
IndexError)r
rGrrrBr�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)rHrr3rr�bytes�	bytearray�fetchoneZassertInr.�	exception)r
�cm�msgrrr�CheckErrorMsgDecodeError�s�z(RegressionTests.CheckErrorMsgDecodeErrorcCs|�ttjid�dS)z!
        See issue 3312.
        N)rH�	TypeErrorrZregister_adapterr	rrr�CheckRegisterAdapter�sz$RegressionTests.CheckRegisterAdaptercs�G�fdd�dt�}t�d��d�_dD]@}|j|d��*|�_|���_|���_||��_W5QRXq(d�_d�_dtfdtfd	tfd
tfdtfg}|D]J\}}|j|d��0|�	|��|�_W5QRX|�
�jd�W5QRXq�dS)Ncs eZdZdd�Z�fdd�ZdS)z9RegressionTests.CheckSetIsolationLevel.<locals>.CustomStrcSsdSrrr	rrr�upper�sz?RegressionTests.CheckSetIsolationLevel.<locals>.CustomStr.uppercs
d�_dS)Nr:��isolation_levelr	rrr�__del__�szARegressionTests.CheckSetIsolationLevel.<locals>.CustomStr.__del__N)rDrErFrUrXrrrr�	CustomStr�srYr)r:�DEFERREDZ	IMMEDIATEZ	EXCLUSIVE)�levelrZ���abczIMMEDIATEEXCLUSIVE�é)r.rrrW�subTest�lower�
capitalizerS�
ValueErrorrHr))r
rYr[Zpairs�value�excrrr�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>.CursorcSsdSrrr4rrr�__init__�szHRegressionTests.CheckCursorConstructorCallCheck.<locals>.Cursor.__init__N�rDrErFrgrrrr�Cursor�srirz
select 4+5z$^Base Cursor\.__init__ not called\.$N)	rrirrH�ProgrammingErrorr�fetchall�assertRaisesRegexr)r
rirrrrr�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)rDrErFrrrr�MyStr�srnzselect ?r^N)r.rr)r
rnrrr�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>.ConnectioncSsdSrr)r
�namerrrrg�szPRegressionTests.CheckConnectionConstructorCallCheck.<locals>.Connection.__init__Nrhrrrr�
Connection�srqrN)rrqrHrjr�r
rqrrrrr�#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�|�Srrr	�rirrr�szBRegressionTests.CheckCursorRegistration.<locals>.Connection.cursorN)rDrErFrrrtrrrq�srqc@seZdZdd�ZdS)z7RegressionTests.CheckCursorRegistration.<locals>.CursorcSstj�||�dSr)rrirgr4rrrrg�sz@RegressionTests.CheckCursorRegistration.<locals>.Cursor.__init__Nrhrrrrri�srirzcreate table foo(x)zinsert into foo(x) values (?))r0)�)rzselect x from fooN)
rrqrirrr$r%rHZInterfaceErrorrkrrrrtr�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.
        rNrV)rrr4rrr�CheckAutoCommitszRegressionTests.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.
        r6r<zpragma page_sizeN)rrrrN)r
r�rowrrr�CheckPragmaAutocommits




z%RegressionTests.CheckPragmaAutocommitcCs|�tj|jd�dS)z}
        Call a connection with a non-string SQL request: check error handling
        of the statement constructor.
        r\N)rHr�Warningrr	rrr�CheckConnectionCallsz#RegressionTests.CheckConnectionCallcCs"dd�}|�tj|jjd|�dS)NcSsdS)Nr\r)�a�brrr�collation_cbsz4RegressionTests.CheckCollation.<locals>.collation_cbu�)rHrrjrZcreate_collation)r
r~rrr�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 (?))r\r\)rr�rrr�foo/sz4RegressionTests.CheckRecursiveCursorUse.<locals>.foozinsert into b (baz) values (?)css|]}|fVqdSrr)rr'rrr�	<genexpr>5sz:RegressionTests.CheckRecursiveCursorUse.<locals>.<genexpr>N)rrrrrHrjr$)r
rr�rr�r�CheckRecursiveCursorUse"s


�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)rrrrrrrJszKRegressionTests.CheckConvertTimestampMicrosecondPadding.<locals>.<listcomp>i�ru��ri@�i@�N)rrr=rrrkr)r>)r
rr�valuesrrr�'CheckConvertTimestampMicrosecondPadding7s



�z7RegressionTests.CheckConvertTimestampMicrosecondPaddingcCs|jttjddd�dS)Nr�{rV)rHrSrrr	rrr�CheckInvalidIsolationLevelTypeQs
�z.RegressionTests.CheckInvalidIsolationLevelTypecCsRt�d�}|�t|d�|�t|d�|��}|�t|jd�|�t|jd�dS)Nrz	select 1z	select 1z
 select 2z	select 2)rrrHrcrrrrrr�CheckNullCharacterWs
z"RegressionTests.CheckNullCharacterc
Cs�t�d�}|�d�|�|jd�d}t|�d��D]�\}}|j||d��p|�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);
        r:rzselect c from t)r'rxzinsert into t2(c) values (?)r\r1r0z'should have returned exactly three rowsN)	rrZ
executescriptr)rW�	enumeraterr`r2)r
rZcounterr'rxrrr�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.
        cWsdSrr)�argsrrr�callback�sz/RegressionTests.CheckBpo31770.<locals>.callbackrN)rrri�weakref�refrgr�
gc_collect)r
r�rrr�rrr�
CheckBpo31770s


zRegressionTests.CheckBpo31770c	Cs |�t��|j`W5QRXdSr)rH�AttributeErrorrrWr	rrr�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�rrr�log�sz2RegressionTests.CheckBpo37347.<locals>.Printer.logN)rDrErFr�rrrr�Printer�sr�r\)�nzselect 1)rZset_trace_callback�	functools�partialZset_progress_handlerZset_authorizerr�r)r
r��methodZprinter_instancerrr�
CheckBpo37347�s�

zRegressionTests.CheckBpo37347N)&rDrErFr
rrrr(r+r/�unittestZskipIfrZsqlite_version_infor5r9r;r?rJrRrTrfrmrorsrvrwryr{rr�r�r�r�r�r�r�r�rrrrr"s@

	
	
	rc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�RecursiveUseOfCursorsz$Recursive use of cursors not allowedcCs@tjdtjd�|_|j��|_|j�d�|j�dddg�dS)Nrrzcreate table test(x foo)r!)r�)Zbar)rrrrrrrr$r	rrrr
�s��zRecursiveUseOfCursors.setUpcCs |j��|j��|`|`dSr)rrrr	rrrr�s

zRecursiveUseOfCursors.tearDownc
sV�fdd�}t�tjd|i��.��tj�j���j�d�W5QRXW5QRXdS)Ncs�j��j�Sr)rrgr�rr	rr�<lambda>�r]zBRecursiveUseOfCursors.test_recursive_cursor_init.<locals>.<lambda>ZINITz#select x as "x [INIT]", x from test�	r�dictr�
convertersrlrjrQrr�r
�convrr	r�test_recursive_cursor_init�sz0RecursiveUseOfCursors.test_recursive_cursor_initc
sV�fdd�}t�tjd|i��.��tj�j���j�d�W5QRXW5QRXdS)Ncs
�j��Sr)rrr�r	rrr��r]zCRecursiveUseOfCursors.test_recursive_cursor_close.<locals>.<lambda>ZCLOSEz$select x as "x [CLOSE]", x from testr�r�rr	r�test_recursive_cursor_close�sz1RecursiveUseOfCursors.test_recursive_cursor_closec
sdgf�fdd�	}t�tjd|i��8�j�d���tj�j���j�	�W5QRXW5QRXdS)Ncs|r�j��S|�d�Sr)rrNr-)r�lr	rrr��r]zCRecursiveUseOfCursors.test_recursive_cursor_fetch.<locals>.<lambda>ZITERz#select x as "x [ITER]", x from test)
rr�rr�rrrlrjrQrkr�rr	r�test_recursive_cursor_fetch�s
z1RecursiveUseOfCursors.test_recursive_cursor_fetchN)	rDrErFrQr
rr�r�r�rrrrr��sr�cCs$t�td�}t�t�}t�||f�S)NZCheck)r�Z	makeSuiterr�Z	TestSuite)Zregression_suiteZrecursive_cursorrrr�suite�s
�r�cCst��}|�t��dSr)r�ZTextTestRunner�runr�)Zrunnerrrr�test�sr��__main__)r>r�Zsqlite3rr�r�r�rZ
unittest.mockrZTestCaserr�r�rDrrrr�<module>s&

F1le Man4ger